WordPress Charts and Graphs Lite - Version 3.0.0

Version Description

  • 2017-09-05
Download this release

Release Info

Developer codeinwp
Plugin Icon WordPress Charts and Graphs Lite
Version 3.0.0
Comparing to
See all releases

Code changes from version 2.2.0 to 3.0.0

Files changed (109) hide show
  1. CHANGELOG.md +4 -2
  2. classes/Visualizer/Module.php +2 -2
  3. classes/Visualizer/Module/Admin.php +2 -2
  4. classes/Visualizer/Module/Chart.php +30 -5
  5. classes/Visualizer/Module/Frontend.php +20 -6
  6. classes/Visualizer/Module/Setup.php +51 -0
  7. classes/Visualizer/Module/Sources.php +3 -2
  8. classes/Visualizer/Plugin.php +8 -1
  9. classes/Visualizer/Render/Library.php +2 -0
  10. classes/Visualizer/Render/Page/Data.php +137 -6
  11. classes/Visualizer/Render/Sidebar.php +88 -17
  12. css/frame.css +86 -11
  13. css/front.css +22 -0
  14. css/lib/chosen.min.css +3 -0
  15. css/media.css +1 -1
  16. images/chosen-sprite.png +0 -0
  17. images/chosen-sprite@2x.png +0 -0
  18. index.php +1 -1
  19. js/frame.js +80 -1
  20. js/lib/chosen.jquery.min.js +2 -0
  21. js/preview.js +12 -0
  22. js/render.js +69 -2
  23. languages/visualizer.pot +156 -95
  24. package-lock.json +7398 -0
  25. readme.txt +11 -0
  26. vendor/autoload.php +1 -1
  27. vendor/autoload_52.php +1 -1
  28. vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-deactivate.php +3 -3
  29. vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-logger.php +2 -2
  30. vendor/codeinwp/themeisle-sdk/load.php +1 -1
  31. vendor/composer/autoload_real.php +5 -5
  32. vendor/composer/autoload_real_52.php +3 -3
  33. vendor/composer/installed.json +4 -4
  34. vendor/phpoffice/phpexcel/Examples/01pharSimple.php +0 -112
  35. vendor/phpoffice/phpexcel/Examples/01simple-download-ods.php +0 -89
  36. vendor/phpoffice/phpexcel/Examples/01simple-download-pdf.php +0 -104
  37. vendor/phpoffice/phpexcel/Examples/01simple-download-xls.php +0 -89
  38. vendor/phpoffice/phpexcel/Examples/01simple-download-xlsx.php +0 -89
  39. vendor/phpoffice/phpexcel/Examples/01simple.php +0 -118
  40. vendor/phpoffice/phpexcel/Examples/01simplePCLZip.php +0 -106
  41. vendor/phpoffice/phpexcel/Examples/02types-xls.php +0 -183
  42. vendor/phpoffice/phpexcel/Examples/02types.php +0 -183
  43. vendor/phpoffice/phpexcel/Examples/03formulas.php +0 -149
  44. vendor/phpoffice/phpexcel/Examples/04printing.php +0 -125
  45. vendor/phpoffice/phpexcel/Examples/05featuredemo.inc.php +0 -394
  46. vendor/phpoffice/phpexcel/Examples/05featuredemo.php +0 -78
  47. vendor/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite.php +0 -129
  48. vendor/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite3.php +0 -129
  49. vendor/phpoffice/phpexcel/Examples/06largescale-with-cellcaching.php +0 -128
  50. vendor/phpoffice/phpexcel/Examples/06largescale-xls.php +0 -136
  51. vendor/phpoffice/phpexcel/Examples/06largescale.php +0 -136
  52. vendor/phpoffice/phpexcel/Examples/07reader.php +0 -76
  53. vendor/phpoffice/phpexcel/Examples/07readerPCLZip.php +0 -79
  54. vendor/phpoffice/phpexcel/Examples/08conditionalformatting.php +0 -189
  55. vendor/phpoffice/phpexcel/Examples/08conditionalformatting2.php +0 -136
  56. vendor/phpoffice/phpexcel/Examples/09pagebreaks.php +0 -134
  57. vendor/phpoffice/phpexcel/Examples/10autofilter-selection-1.php +0 -221
  58. vendor/phpoffice/phpexcel/Examples/10autofilter-selection-2.php +0 -213
  59. vendor/phpoffice/phpexcel/Examples/10autofilter-selection-display.php +0 -198
  60. vendor/phpoffice/phpexcel/Examples/10autofilter.php +0 -171
  61. vendor/phpoffice/phpexcel/Examples/11documentsecurity-xls.php +0 -109
  62. vendor/phpoffice/phpexcel/Examples/11documentsecurity.php +0 -109
  63. vendor/phpoffice/phpexcel/Examples/12cellProtection.php +0 -107
  64. vendor/phpoffice/phpexcel/Examples/13calculation.php +0 -235
  65. vendor/phpoffice/phpexcel/Examples/14excel5.php +0 -63
  66. vendor/phpoffice/phpexcel/Examples/15datavalidation-xls.php +0 -142
  67. vendor/phpoffice/phpexcel/Examples/15datavalidation.php +0 -143
  68. vendor/phpoffice/phpexcel/Examples/16csv.php +0 -107
  69. vendor/phpoffice/phpexcel/Examples/17html.php +0 -64
  70. vendor/phpoffice/phpexcel/Examples/18extendedcalculation.php +0 -108
  71. vendor/phpoffice/phpexcel/Examples/19namedrange.php +0 -129
  72. vendor/phpoffice/phpexcel/Examples/20readexcel5.php +0 -79
  73. vendor/phpoffice/phpexcel/Examples/21pdf.php +0 -94
  74. vendor/phpoffice/phpexcel/Examples/22heavilyformatted.php +0 -116
  75. vendor/phpoffice/phpexcel/Examples/23sharedstyles.php +0 -124
  76. vendor/phpoffice/phpexcel/Examples/24readfilter.php +0 -77
  77. vendor/phpoffice/phpexcel/Examples/25inmemoryimage.php +0 -83
  78. vendor/phpoffice/phpexcel/Examples/26utf8.php +0 -122
  79. vendor/phpoffice/phpexcel/Examples/27imagesexcel5.php +0 -64
  80. vendor/phpoffice/phpexcel/Examples/28iterator.php +0 -68
  81. vendor/phpoffice/phpexcel/Examples/29advancedvaluebinder.php +0 -183
  82. vendor/phpoffice/phpexcel/Examples/30template.php +0 -91
  83. vendor/phpoffice/phpexcel/Examples/31docproperties_write-xls.php +0 -119
  84. vendor/phpoffice/phpexcel/Examples/31docproperties_write.php +0 -119
  85. vendor/phpoffice/phpexcel/Examples/32chartreadwrite.php +0 -131
  86. vendor/phpoffice/phpexcel/Examples/33chartcreate-area.php +0 -142
  87. vendor/phpoffice/phpexcel/Examples/33chartcreate-bar-stacked.php +0 -145
  88. vendor/phpoffice/phpexcel/Examples/33chartcreate-bar.php +0 -145
  89. vendor/phpoffice/phpexcel/Examples/33chartcreate-column-2.php +0 -154
  90. vendor/phpoffice/phpexcel/Examples/33chartcreate-column.php +0 -145
  91. vendor/phpoffice/phpexcel/Examples/33chartcreate-composite.php +0 -203
  92. vendor/phpoffice/phpexcel/Examples/33chartcreate-line.php +0 -142
  93. vendor/phpoffice/phpexcel/Examples/33chartcreate-multiple-charts.php +0 -220
  94. vendor/phpoffice/phpexcel/Examples/33chartcreate-pie.php +0 -215
  95. vendor/phpoffice/phpexcel/Examples/33chartcreate-radar.php +0 -154
  96. vendor/phpoffice/phpexcel/Examples/33chartcreate-scatter.php +0 -138
  97. vendor/phpoffice/phpexcel/Examples/33chartcreate-stock.php +0 -151
  98. vendor/phpoffice/phpexcel/Examples/34chartupdate.php +0 -78
  99. vendor/phpoffice/phpexcel/Examples/35chartrender.php +0 -134
  100. vendor/phpoffice/phpexcel/Examples/36chartreadwriteHTML.php +0 -151
  101. vendor/phpoffice/phpexcel/Examples/36chartreadwritePDF.php +0 -174
  102. vendor/phpoffice/phpexcel/Examples/37page_layout_view.php +0 -83
  103. vendor/phpoffice/phpexcel/Examples/38cloneWorksheet.php +0 -118
  104. vendor/phpoffice/phpexcel/Examples/39dropdown.php +0 -175
  105. vendor/phpoffice/phpexcel/Examples/40duplicateStyle.php +0 -51
  106. vendor/phpoffice/phpexcel/Examples/41password.php +0 -84
  107. vendor/phpoffice/phpexcel/Examples/42richText.php +0 -159
  108. vendor/phpoffice/phpexcel/Examples/Excel2003XMLReader.php +0 -61
  109. vendor/phpoffice/phpexcel/Examples/Excel2003XMLTest.xml +0 -1
CHANGELOG.md CHANGED
@@ -1,7 +1,9 @@
1
 
2
- ### v2.2.0 - 2017-08-16
3
  **Changes:**
4
-
 
 
5
  ### v2.2.0 - 2017-08-16
6
  **Changes:**
7
  * Added custom number format for pie chart.
1
 
2
+ ### v3.0.0 - 2017-09-05
3
  **Changes:**
4
+ * Adds support manual configuration according to Google Visualization API.
5
+ * Improves compatibility with more features from the pro version.
6
+
7
  ### v2.2.0 - 2017-08-16
8
  **Changes:**
9
  * Added custom number format for pie chart.
classes/Visualizer/Module.php CHANGED
@@ -146,11 +146,11 @@ class Visualizer_Module {
146
  /**
147
  * Extracts the data for a chart and prepares it for the given type.
148
  *
149
- * @access protected
150
  * @param int $chart_id The chart id.
151
  * @param string $type The exported type.
152
  */
153
- protected function _getDataAs( $chart_id, $type ) {
154
  $final = null;
155
  $success = false;
156
  if ( $chart_id ) {
146
  /**
147
  * Extracts the data for a chart and prepares it for the given type.
148
  *
149
+ * @access public
150
  * @param int $chart_id The chart id.
151
  * @param string $type The exported type.
152
  */
153
+ public function _getDataAs( $chart_id, $type ) {
154
  $final = null;
155
  $success = false;
156
  if ( $chart_id ) {
classes/Visualizer/Module/Admin.php CHANGED
@@ -58,10 +58,10 @@ class Visualizer_Module_Admin extends Visualizer_Module {
58
  $this->_addAction( 'admin_menu', 'registerAdminMenu' );
59
  $this->_addFilter( 'media_view_strings', 'setupMediaViewStrings' );
60
  $this->_addFilter( 'plugin_action_links', 'getPluginActionLinks', 10, 2 );
61
- $this->_addFilter( 'plugin_row_meta', 'getPluginMetaLinks', 10, 2 );
 
62
  }
63
 
64
-
65
  /**
66
  * Enqueues media scripts and styles.
67
  *
58
  $this->_addAction( 'admin_menu', 'registerAdminMenu' );
59
  $this->_addFilter( 'media_view_strings', 'setupMediaViewStrings' );
60
  $this->_addFilter( 'plugin_action_links', 'getPluginActionLinks', 10, 2 );
61
+ $this->_addFilter( 'visualizer_logger_data', 'getLoggerData' );
62
+ $this->_addFilter( 'visualizer_get_chart_counts', 'getChartCountsByTypeAndMeta' );
63
  }
64
 
 
65
  /**
66
  * Enqueues media scripts and styles.
67
  *
classes/Visualizer/Module/Chart.php CHANGED
@@ -228,13 +228,17 @@ class Visualizer_Module_Chart extends Visualizer_Module {
228
  'focusTarget' => 'datum',
229
  )
230
  );
 
231
  }
232
  wp_redirect( add_query_arg( 'chart', (int) $chart_id ) );
233
  defined( 'WP_TESTS_DOMAIN' ) ? wp_die() : exit();
234
  }
235
  // enqueue and register scripts and styles
236
- wp_register_style( 'visualizer-frame', VISUALIZER_ABSURL . 'css/frame.css', array(), Visualizer_Plugin::VERSION );
237
- wp_register_script( 'visualizer-frame', VISUALIZER_ABSURL . 'js/frame.js', array( 'jquery' ), Visualizer_Plugin::VERSION, true );
 
 
 
238
  wp_register_script( 'google-jsapi-new', '//www.gstatic.com/charts/loader.js', array(), null, true );
239
  wp_register_script( 'google-jsapi-old', '//www.google.com/jsapi', array( 'google-jsapi-new' ), null, true );
240
  wp_register_script(
@@ -257,15 +261,19 @@ class Visualizer_Module_Chart extends Visualizer_Module {
257
  }
258
  // dispatch pages
259
  $this->_chart = get_post( $chart_id );
260
- switch ( isset( $_GET['tab'] ) ? $_GET['tab'] : '' ) {
 
261
  case 'settings':
262
  // changed by Ash/Upwork
263
  $this->_handleDataAndSettingsPage();
264
  break;
265
- case 'type':
266
- default:
267
  $this->_handleTypesPage();
268
  break;
 
 
 
269
  }
270
  defined( 'WP_TESTS_DOMAIN' ) ? wp_die() : exit();
271
  }
@@ -313,11 +321,21 @@ class Visualizer_Module_Chart extends Visualizer_Module {
313
  'visualizer-render', 'visualizer', array(
314
  'l10n' => array(
315
  'invalid_source' => esc_html__( 'You have entered invalid URL. Please, insert proper URL.', 'visualizer' ),
 
316
  ),
317
  'charts' => array(
318
  'canvas' => $data,
319
  ),
320
  'map_api_key' => get_option( 'visualizer-map-api-key' ),
 
 
 
 
 
 
 
 
 
321
  )
322
  );
323
  $render = new Visualizer_Render_Page_Data();
@@ -412,6 +430,12 @@ class Visualizer_Module_Chart extends Visualizer_Module {
412
  if ( ! isset( $_POST['vz-import-time'] ) ) {
413
  apply_filters( 'visualizer_pro_remove_schedule', $chart_id );
414
  }
 
 
 
 
 
 
415
  $source = null;
416
  $render = new Visualizer_Render_Page_Update();
417
  if ( isset( $_POST['remote_data'] ) && filter_var( $_POST['remote_data'], FILTER_VALIDATE_URL ) ) {
@@ -548,6 +572,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
548
  'visualizer-render', 'visualizer', array(
549
  'l10n' => array(
550
  'invalid_source' => esc_html__( 'You have entered invalid URL. Please, insert proper URL.', 'visualizer' ),
 
551
  ),
552
  'charts' => array(
553
  'canvas' => $data,
228
  'focusTarget' => 'datum',
229
  )
230
  );
231
+ do_action( 'visualizer_pro_new_chart_defaults', $chart_id );
232
  }
233
  wp_redirect( add_query_arg( 'chart', (int) $chart_id ) );
234
  defined( 'WP_TESTS_DOMAIN' ) ? wp_die() : exit();
235
  }
236
  // enqueue and register scripts and styles
237
+ wp_register_script( 'visualizer-chosen', VISUALIZER_ABSURL . 'js/lib/chosen.jquery.min.js', array( 'jquery' ), Visualizer_Plugin::VERSION );
238
+ wp_register_style( 'visualizer-chosen', VISUALIZER_ABSURL . 'css/lib/chosen.min.css', array(), Visualizer_Plugin::VERSION );
239
+
240
+ wp_register_style( 'visualizer-frame', VISUALIZER_ABSURL . 'css/frame.css', array( 'visualizer-chosen' ), Visualizer_Plugin::VERSION );
241
+ wp_register_script( 'visualizer-frame', VISUALIZER_ABSURL . 'js/frame.js', array( 'visualizer-chosen' ), Visualizer_Plugin::VERSION, true );
242
  wp_register_script( 'google-jsapi-new', '//www.gstatic.com/charts/loader.js', array(), null, true );
243
  wp_register_script( 'google-jsapi-old', '//www.google.com/jsapi', array( 'google-jsapi-new' ), null, true );
244
  wp_register_script(
261
  }
262
  // dispatch pages
263
  $this->_chart = get_post( $chart_id );
264
+ $tab = isset( $_GET['tab'] ) || empty( $_GET['tab'] ) ? $_GET['tab'] : 'visualizer';
265
+ switch ( $tab ) {
266
  case 'settings':
267
  // changed by Ash/Upwork
268
  $this->_handleDataAndSettingsPage();
269
  break;
270
+ case 'type': // fall through.
271
+ case 'visualizer': // fall through.
272
  $this->_handleTypesPage();
273
  break;
274
+ default:
275
+ do_action( 'visualizer_pro_handle_tab', $tab, $this->_chart );
276
+ break;
277
  }
278
  defined( 'WP_TESTS_DOMAIN' ) ? wp_die() : exit();
279
  }
321
  'visualizer-render', 'visualizer', array(
322
  'l10n' => array(
323
  'invalid_source' => esc_html__( 'You have entered invalid URL. Please, insert proper URL.', 'visualizer' ),
324
+ 'loading' => esc_html__( 'Loading...', 'visualizer' ),
325
  ),
326
  'charts' => array(
327
  'canvas' => $data,
328
  ),
329
  'map_api_key' => get_option( 'visualizer-map-api-key' ),
330
+ 'ajax' => array(
331
+ 'url' => admin_url( 'admin-ajax.php' ),
332
+ 'nonces' => array(
333
+ 'permissions' => wp_create_nonce( Visualizer_Plugin::ACTION_FETCH_PERMISSIONS_DATA ),
334
+ ),
335
+ 'actions' => array(
336
+ 'permissions' => Visualizer_Plugin::ACTION_FETCH_PERMISSIONS_DATA,
337
+ ),
338
+ ),
339
  )
340
  );
341
  $render = new Visualizer_Render_Page_Data();
430
  if ( ! isset( $_POST['vz-import-time'] ) ) {
431
  apply_filters( 'visualizer_pro_remove_schedule', $chart_id );
432
  }
433
+
434
+ if ( ! isset( $_POST['chart_data_src'] ) || Visualizer_Plugin::CF_SOURCE_FILTER !== $_POST['chart_data_src'] ) {
435
+ // delete the filters in case this chart is being uploaded from other data sources
436
+ delete_post_meta( $chart_id, 'visualizer-filter-config' );
437
+ }
438
+
439
  $source = null;
440
  $render = new Visualizer_Render_Page_Update();
441
  if ( isset( $_POST['remote_data'] ) && filter_var( $_POST['remote_data'], FILTER_VALIDATE_URL ) ) {
572
  'visualizer-render', 'visualizer', array(
573
  'l10n' => array(
574
  'invalid_source' => esc_html__( 'You have entered invalid URL. Please, insert proper URL.', 'visualizer' ),
575
+ 'loading' => esc_html__( 'Loading...', 'visualizer' ),
576
  ),
577
  'charts' => array(
578
  'canvas' => $data,
classes/Visualizer/Module/Frontend.php CHANGED
@@ -77,7 +77,7 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
77
  'visualizer/v' . VISUALIZER_REST_VERSION,
78
  '/action/(?P<chart>\d+)/(?P<type>.+)/',
79
  array(
80
- 'methods' => 'GET',
81
  'callback' => array( $this, 'perform_action' ),
82
  )
83
  );
@@ -130,7 +130,7 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
130
  $data = $this->_getDataAs( $chart_id, 'xls' );
131
  break;
132
  default:
133
- $data = apply_filters( 'visualizer_action_data', $data, $chart_id, $type );
134
  break;
135
  }
136
 
@@ -151,6 +151,8 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
151
  wp_register_script( 'visualizer-render', VISUALIZER_ABSURL . 'js/render.js', array( 'visualizer-google-jsapi-old', 'jquery' ), Visualizer_Plugin::VERSION, true );
152
  wp_register_script( 'visualizer-clipboardjs', VISUALIZER_ABSURL . 'js/lib/clipboardjs/clipboard.min.js', array( 'jquery' ), Visualizer_Plugin::VERSION, true );
153
  wp_enqueue_script( 'visualizer-clipboardjs' );
 
 
154
  }
155
 
156
  /**
@@ -182,6 +184,10 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
182
  return '';
183
  }
184
 
 
 
 
 
185
  $id = 'visualizer-' . $atts['id'];
186
  $defaultClass = 'visualizer-front';
187
  $class = apply_filters( Visualizer_Plugin::FILTER_CHART_WRAPPER_CLASS, $atts['class'], $atts['id'] );
@@ -213,7 +219,11 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
213
  $data = apply_filters( $atts['data'], $data, $chart->ID, $type );
214
  }
215
 
216
- $id = $id . '-' . rand();
 
 
 
 
217
 
218
  // add chart to the array
219
  $this->_charts[ $id ] = array(
@@ -235,12 +245,14 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
235
  ),
236
  )
237
  );
 
238
 
239
  $actions_div = '';
240
- if ( ! empty( $settings['actions'] ) ) {
 
241
  $actions = $this->get_actions();
242
  $actions_div = '<div class="visualizer-actions">';
243
- foreach ( $settings['actions'] as $action_type ) {
244
  $key = $action_type;
245
  $mime = '';
246
  if ( strpos( $action_type, ';' ) !== false ) {
@@ -262,8 +274,10 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
262
 
263
  $actions_div .= '</div>';
264
  }
 
 
 
265
  // return placeholder div
266
  return $actions_div . '<div id="' . $id . '"' . $class . '></div>';
267
  }
268
-
269
  }
77
  'visualizer/v' . VISUALIZER_REST_VERSION,
78
  '/action/(?P<chart>\d+)/(?P<type>.+)/',
79
  array(
80
+ 'methods' => array( 'GET', 'POST' ),
81
  'callback' => array( $this, 'perform_action' ),
82
  )
83
  );
130
  $data = $this->_getDataAs( $chart_id, 'xls' );
131
  break;
132
  default:
133
+ $data = apply_filters( 'visualizer_action_data', $data, $chart_id, $type, $params, $this );
134
  break;
135
  }
136
 
151
  wp_register_script( 'visualizer-render', VISUALIZER_ABSURL . 'js/render.js', array( 'visualizer-google-jsapi-old', 'jquery' ), Visualizer_Plugin::VERSION, true );
152
  wp_register_script( 'visualizer-clipboardjs', VISUALIZER_ABSURL . 'js/lib/clipboardjs/clipboard.min.js', array( 'jquery' ), Visualizer_Plugin::VERSION, true );
153
  wp_enqueue_script( 'visualizer-clipboardjs' );
154
+ wp_register_style( 'visualizer-front', VISUALIZER_ABSURL . 'css/front.css', array(), Visualizer_Plugin::VERSION );
155
+ do_action( 'visualizer_pro_frontend_load_resources' );
156
  }
157
 
158
  /**
184
  return '';
185
  }
186
 
187
+ if ( ! apply_filters( 'visualizer_pro_show_chart', true, $atts['id'] ) ) {
188
+ return '';
189
+ }
190
+
191
  $id = 'visualizer-' . $atts['id'];
192
  $defaultClass = 'visualizer-front';
193
  $class = apply_filters( Visualizer_Plugin::FILTER_CHART_WRAPPER_CLASS, $atts['class'], $atts['id'] );
219
  $data = apply_filters( $atts['data'], $data, $chart->ID, $type );
220
  }
221
 
222
+ $id = $id . '-' . rand();
223
+ $arguments = array( '', $id, $settings );
224
+ apply_filters_ref_array( 'visualizer_pro_inline_css', array( &$arguments ) );
225
+ $css = $arguments[0];
226
+ $settings = $arguments[2];
227
 
228
  // add chart to the array
229
  $this->_charts[ $id ] = array(
245
  ),
246
  )
247
  );
248
+ wp_enqueue_style( 'visualizer-front' );
249
 
250
  $actions_div = '';
251
+ $actions_visible = apply_filters( 'visualizer_pro_add_actions', isset( $settings['actions'] ) ? $settings['actions'] : array(), $atts['id'] );
252
+ if ( ! empty( $actions_visible ) ) {
253
  $actions = $this->get_actions();
254
  $actions_div = '<div class="visualizer-actions">';
255
+ foreach ( $actions_visible as $action_type ) {
256
  $key = $action_type;
257
  $mime = '';
258
  if ( strpos( $action_type, ';' ) !== false ) {
274
 
275
  $actions_div .= '</div>';
276
  }
277
+
278
+ $actions_div .= $css;
279
+
280
  // return placeholder div
281
  return $actions_div . '<div id="' . $id . '"' . $class . '></div>';
282
  }
 
283
  }
classes/Visualizer/Module/Setup.php CHANGED
@@ -44,6 +44,57 @@ class Visualizer_Module_Setup extends Visualizer_Module {
44
 
45
  $this->_addAction( 'init', 'setupCustomPostTypes' );
46
  $this->_addAction( 'plugins_loaded', 'loadTextDomain' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  }
48
 
49
  /**
44
 
45
  $this->_addAction( 'init', 'setupCustomPostTypes' );
46
  $this->_addAction( 'plugins_loaded', 'loadTextDomain' );
47
+ $this->_addFilter( 'visualizer_logger_data', 'getLoggerData' );
48
+ $this->_addFilter( 'visualizer_get_chart_counts', 'getChartCountsByTypeAndMeta' );
49
+ }
50
+ /**
51
+ * Fetches the SDK logger data.
52
+ *
53
+ * @param array $data The default data that needs to be sent.
54
+ *
55
+ * @access public
56
+ */
57
+ public function getLoggerData( $data ) {
58
+ return $this->getChartCountsByTypeAndMeta();
59
+ }
60
+
61
+ /**
62
+ * Fetches the types of charts created and their counts.
63
+ *
64
+ * @param array $meta_keys An array of name vs. meta keys - to return how many charts have these keys.
65
+ * @access private
66
+ */
67
+ public function getChartCountsByTypeAndMeta( $meta_keys = array() ) {
68
+ $charts = array();
69
+ $charts['chart_types'] = array();
70
+ // the initial query arguments to fetch charts
71
+ $query_args = array(
72
+ 'post_type' => Visualizer_Plugin::CPT_VISUALIZER,
73
+ 'posts_per_page' => 300,
74
+ 'fields' => 'ids',
75
+ 'no_rows_found' => false,
76
+ 'update_post_meta_cache' => false,
77
+ 'update_post_term_cache' => false,
78
+
79
+ );
80
+
81
+ $query = new WP_Query( $query_args );
82
+ while ( $query->have_posts() ) {
83
+ $chart_id = $query->next_post();
84
+ $type = get_post_meta( $chart_id, Visualizer_Plugin::CF_CHART_TYPE, true );
85
+ $charts['chart_types'][ $type ] = isset( $charts['chart_types'][ $type ] ) ? $charts['chart_types'][ $type ] + 1 : 1;
86
+ if ( ! empty( $meta_keys ) ) {
87
+ foreach ( $meta_keys as $name => $key ) {
88
+ $data = get_post_meta( $chart_id, $key, true );
89
+ if ( ! empty( $data ) ) {
90
+ $charts[ $name ] = isset( $charts[ $name ] ) ? $charts[ $name ] + 1 : 1;
91
+ } else {
92
+ $charts[ $name ] = 0;
93
+ }
94
+ }
95
+ }
96
+ }
97
+ return $charts;
98
  }
99
 
100
  /**
classes/Visualizer/Module/Sources.php CHANGED
@@ -130,11 +130,12 @@ class Visualizer_Module_Sources extends Visualizer_Module {
130
  * @return string The new html code.
131
  */
132
  public function addProUpsell( $old, $feature = null ) {
 
133
  $return = '';
134
  $feature = strval( $feature );
135
- if ( empty( $feature ) || ( $feature == 'schedule-chart' && ! apply_filters( 'visualizer_is_business', false ) ) ) {
136
  $plan = 'PRO';
137
- if ( $feature === 'schedule-chart' ) {
138
  $plan = 'BUSINESS';
139
  }
140
  $return = '<div class="only-pro-content">';
130
  * @return string The new html code.
131
  */
132
  public function addProUpsell( $old, $feature = null ) {
133
+ $biz_features = array( 'schedule-chart', 'chart-permissions' );
134
  $return = '';
135
  $feature = strval( $feature );
136
+ if ( empty( $feature ) || ( in_array( $feature, $biz_features ) && ! apply_filters( 'visualizer_is_business', false ) ) ) {
137
  $plan = 'PRO';
138
+ if ( in_array( $feature, $biz_features ) ) {
139
  $plan = 'BUSINESS';
140
  }
141
  $return = '<div class="only-pro-content">';
classes/Visualizer/Plugin.php CHANGED
@@ -28,7 +28,7 @@
28
  class Visualizer_Plugin {
29
 
30
  const NAME = 'visualizer';
31
- const VERSION = '2.2.0';
32
 
33
  // custom post types
34
  const CPT_VISUALIZER = 'visualizer';
@@ -40,6 +40,8 @@ class Visualizer_Plugin {
40
  const CF_DEFAULT_DATA = 'visualizer-default-data';
41
  const CF_SETTINGS = 'visualizer-settings';
42
 
 
 
43
  // custom actions
44
  const ACTION_GET_CHARTS = 'visualizer-get-charts';
45
  const ACTION_CREATE_CHART = 'visualizer-create-chart';
@@ -50,6 +52,11 @@ class Visualizer_Plugin {
50
  // Added by Ash/Upwork
51
  const ACTION_EXPORT_DATA = 'visualizer-export-data';
52
 
 
 
 
 
 
53
  // custom filters
54
  const FILTER_CHART_WRAPPER_CLASS = 'visualizer-chart-wrapper-class';
55
  const FILTER_GET_CHART_SERIES = 'visualizer-get-chart-series';
28
  class Visualizer_Plugin {
29
 
30
  const NAME = 'visualizer';
31
+ const VERSION = '3.0.0';
32
 
33
  // custom post types
34
  const CPT_VISUALIZER = 'visualizer';
40
  const CF_DEFAULT_DATA = 'visualizer-default-data';
41
  const CF_SETTINGS = 'visualizer-settings';
42
 
43
+ const CF_SOURCE_FILTER = 'visualizer-source-filter';
44
+
45
  // custom actions
46
  const ACTION_GET_CHARTS = 'visualizer-get-charts';
47
  const ACTION_CREATE_CHART = 'visualizer-create-chart';
52
  // Added by Ash/Upwork
53
  const ACTION_EXPORT_DATA = 'visualizer-export-data';
54
 
55
+ /**
56
+ *Action used for fetching specific users/roles for permissions.
57
+ */
58
+ const ACTION_FETCH_PERMISSIONS_DATA = 'visualizer-fetch-permissions-data';
59
+
60
  // custom filters
61
  const FILTER_CHART_WRAPPER_CLASS = 'visualizer-chart-wrapper-class';
62
  const FILTER_GET_CHART_SERIES = 'visualizer-get-chart-series';
classes/Visualizer/Render/Library.php CHANGED
@@ -217,6 +217,8 @@ class Visualizer_Render_Library extends Visualizer_Render {
217
  echo '<h3>' . __( 'Gain more editing power', 'visualizer' ) . '</h3><ul>';
218
  echo '<li>' . __( 'Spreadsheet like editor', 'visualizer' ) . '</li>';
219
  echo '<li>' . __( 'Import from other charts', 'visualizer' ) . '</li>';
 
 
220
  echo '<li>' . __( 'Auto-sync with online files', 'visualizer' ) . '</li>';
221
  echo '<li>' . __( '3 more chart types', 'visualizer' ) . '</li></ul>';
222
  echo '<a href="' . Visualizer_Plugin::PRO_TEASER_URL . '" target="_blank" class="button button-primary">' . __( 'View more features', 'visualizer' ) . '</a>';
217
  echo '<h3>' . __( 'Gain more editing power', 'visualizer' ) . '</h3><ul>';
218
  echo '<li>' . __( 'Spreadsheet like editor', 'visualizer' ) . '</li>';
219
  echo '<li>' . __( 'Import from other charts', 'visualizer' ) . '</li>';
220
+ echo '<li>' . __( 'Frontend editor', 'visualizer' ) . '</li>';
221
+ echo '<li>' . __( 'Private charts', 'visualizer' ) . '</li>';
222
  echo '<li>' . __( 'Auto-sync with online files', 'visualizer' ) . '</li>';
223
  echo '<li>' . __( '3 more chart types', 'visualizer' ) . '</li></ul>';
224
  echo '<a href="' . Visualizer_Plugin::PRO_TEASER_URL . '" target="_blank" class="button button-primary">' . __( 'View more features', 'visualizer' ) . '</a>';
classes/Visualizer/Render/Page/Data.php CHANGED
@@ -222,6 +222,7 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
222
  class="dashicons dashicons-lock"></span></h2>
223
  <form id="editor-form" action="<?php echo $upload_link; ?>" method="post" target="thehole">
224
  <input type="hidden" id="chart-data" name="chart_data">
 
225
  </form>
226
 
227
  <div class="group-content edit-data-content">
@@ -239,8 +240,8 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
239
  </ul>
240
  </li>
241
  </ul>
242
- <li class="group group-category bottom-fixed " id="vz-chart-settings">
243
- <h2><?php _e( 'Advanced Settings', 'visualizer' ); ?></h2>
244
  <div class="group-header">
245
  <button class="customize-section-back" tabindex="0"></button>
246
  <h3 class="group-title main-group"><?php _e( 'Chart Settings', 'visualizer' ); ?></h3>
@@ -252,16 +253,146 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
252
  </form>
253
  </ul>
254
  </li>
255
- <li class=" group bottom-fixed" id="vz-chart-review">
256
- <a href="https://wordpress.org/support/plugin/visualizer/reviews/?filter=5#new-post"
257
- target="_blank"><?php _e( 'Rate our plugin', 'visualizer' ); ?></a>
258
- </li>
259
  <li class="group bottom-fixed" id="vz-chart-copyright">Visualizer &copy; <?php echo date( 'Y', current_time( 'timestamp' ) ); ?></li>
260
  </ul>
261
  <?php
262
  // changed by Ash/Upwork
263
  }
264
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
265
  /**
266
  * Renders toolbar content.
267
  *
222
  class="dashicons dashicons-lock"></span></h2>
223
  <form id="editor-form" action="<?php echo $upload_link; ?>" method="post" target="thehole">
224
  <input type="hidden" id="chart-data" name="chart_data">
225
+ <input type="hidden" id="chart-data-src" name="chart_data_src">
226
  </form>
227
 
228
  <div class="group-content edit-data-content">
240
  </ul>
241
  </li>
242
  </ul>
243
+ <li class="group group-category bottom-fixed sidebar-footer-link" id="vz-chart-settings">
244
+ <h2><span class="dashicons dashicons-admin-tools"></span><?php _e( 'Advanced', 'visualizer' ); ?></h2>
245
  <div class="group-header">
246
  <button class="customize-section-back" tabindex="0"></button>
247
  <h3 class="group-title main-group"><?php _e( 'Chart Settings', 'visualizer' ); ?></h3>
253
  </form>
254
  </ul>
255
  </li>
256
+
257
+ <?php $this->getPermissionsLink( $this->chart->ID ); ?>
258
+
 
259
  <li class="group bottom-fixed" id="vz-chart-copyright">Visualizer &copy; <?php echo date( 'Y', current_time( 'timestamp' ) ); ?></li>
260
  </ul>
261
  <?php
262
  // changed by Ash/Upwork
263
  }
264
 
265
+ /**
266
+ * Generates the permissions link.
267
+ *
268
+ * @access private
269
+ * @param int $id The chart id.
270
+ */
271
+ private function getPermissionsLink( $id ) {
272
+ $permissions = apply_filters( 'visualizer_pro_get_permissions', null, $id );
273
+ if ( $permissions ) {
274
+ foreach ( $permissions as $k => $v ) {
275
+ $this->$k = $v;
276
+ }
277
+ }
278
+ ?>
279
+ <li class="group group-category bottom-fixed sidebar-footer-link" id="vz-chart-permissions">
280
+ <h2><span class="dashicons dashicons-admin-users"></span><?php _e( 'Permissions', 'visualizer' ); ?></h2>
281
+ <div class="group-header">
282
+ <button class="customize-section-back" tabindex="0"></button>
283
+ <h3 class="group-title main-group"><?php _e( 'Chart Settings', 'visualizer' ); ?></h3>
284
+ </div>
285
+ <ul class="group-content">
286
+ <form id="permissions-form" target="thehole" action="
287
+ <?php
288
+ echo add_query_arg(
289
+ array(
290
+ 'nonce' => wp_create_nonce(),
291
+ 'tab' => 'permissions',
292
+ ), remove_query_arg( 'tab', $_SERVER['REQUEST_URI'] )
293
+ );
294
+ ?>
295
+ " method="post">
296
+ <?php $this->permissionsSidebar(); ?>
297
+ </form>
298
+ </ul>
299
+ </li>
300
+ <?php
301
+ }
302
+
303
+ /**
304
+ * Generates the permissions form.
305
+ *
306
+ * @access private
307
+ */
308
+ private function permissionsSidebar() {
309
+ Visualizer_Render_Sidebar::_renderGroupStart(
310
+ esc_html__( 'Who can see this chart?', 'visualizer' ) . '<span
311
+ class="dashicons dashicons-lock"></span>', '', apply_filters( 'visualizer_pro_upsell_class', 'only-pro-feature', 'chart-permissions' )
312
+ );
313
+ Visualizer_Render_Sidebar::_renderSectionStart();
314
+ Visualizer_Render_Sidebar::_renderSectionDescription( esc_html__( 'Select who can view the chart on the front-end.', 'visualizer' ) );
315
+
316
+ if ( ! isset( $this->permissions['read'] ) ) {
317
+ $this->permissions['read'] = 'all';
318
+ }
319
+
320
+ Visualizer_Render_Sidebar::_renderSelectItem(
321
+ '',
322
+ 'permissions[read]',
323
+ $this->permissions['read'],
324
+ array(
325
+ 'all' => esc_html__( 'All Users', 'visualizer' ),
326
+ 'users' => esc_html__( 'Select Users', 'visualizer' ),
327
+ 'roles' => esc_html__( 'Select Roles', 'visualizer' ),
328
+ ),
329
+ '',
330
+ false,
331
+ array( 'visualizer-permission', 'visualizer-permission-type', 'visualizer-permission-read' ),
332
+ array(
333
+ 'permission-type' => 'read',
334
+ )
335
+ );
336
+
337
+ $options = apply_filters( 'visualizer_pro_get_permissions_data', array(), isset( $this->permissions['read'] ) ? $this->permissions['read'] : 'roles' );
338
+
339
+ Visualizer_Render_Sidebar::_renderSelectItem(
340
+ '',
341
+ 'permissions[read-specific][]',
342
+ isset( $this->permissions['read-specific'] ) ? $this->permissions['read-specific'] : array(),
343
+ $options,
344
+ '',
345
+ true,
346
+ array( 'visualizer-permission', 'visualizer-permission-specific', 'visualizer-permission-read-specific' )
347
+ );
348
+ Visualizer_Render_Sidebar::_renderSectionEnd( apply_filters( 'visualizer_pro_upsell', 'only-pro-feature', 'chart-permissions' ) );
349
+ Visualizer_Render_Sidebar::_renderGroupEnd();
350
+
351
+ Visualizer_Render_Sidebar::_renderGroupStart(
352
+ esc_html__( 'Who can edit this chart?', 'visualizer' ) . '<span
353
+ class="dashicons dashicons-lock"></span>', '', apply_filters( 'visualizer_pro_upsell_class', 'only-pro-feature', 'chart-permissions' )
354
+ );
355
+ Visualizer_Render_Sidebar::_renderSectionStart();
356
+ Visualizer_Render_Sidebar::_renderSectionDescription( esc_html__( 'Select who can edit the chart on the front-end.', 'visualizer' ) );
357
+
358
+ if ( ! isset( $this->permissions['edit'] ) ) {
359
+ $this->permissions['edit'] = 'roles';
360
+ $this->permissions['edit-specific'] = 'administrator';
361
+ }
362
+
363
+ Visualizer_Render_Sidebar::_renderSelectItem(
364
+ '',
365
+ 'permissions[edit]',
366
+ $this->permissions['edit'],
367
+ array(
368
+ 'all' => esc_html__( 'All Users', 'visualizer' ),
369
+ 'users' => esc_html__( 'Select Users', 'visualizer' ),
370
+ 'roles' => esc_html__( 'Select Roles', 'visualizer' ),
371
+ ),
372
+ '',
373
+ false,
374
+ array( 'visualizer-permission', 'visualizer-permission-type', 'visualizer-permission-edit' ),
375
+ array(
376
+ 'permission-type' => 'edit',
377
+ )
378
+ );
379
+
380
+ $options = apply_filters( 'visualizer_pro_get_permissions_data', array(), isset( $this->permissions['edit'] ) ? $this->permissions['edit'] : 'roles' );
381
+
382
+ Visualizer_Render_Sidebar::_renderSelectItem(
383
+ '',
384
+ 'permissions[edit-specific][]',
385
+ isset( $this->permissions['edit-specific'] ) ? $this->permissions['edit-specific'] : array(),
386
+ $options,
387
+ '',
388
+ true,
389
+ array( 'visualizer-permission', 'visualizer-permission-specific', 'visualizer-permission-edit-specific' )
390
+ );
391
+ Visualizer_Render_Sidebar::_renderSectionEnd( apply_filters( 'visualizer_pro_upsell', 'only-pro-feature', 'chart-permissions' ) );
392
+ Visualizer_Render_Sidebar::_renderGroupEnd();
393
+
394
+ }
395
+
396
  /**
397
  * Renders toolbar content.
398
  *
classes/Visualizer/Render/Sidebar.php CHANGED
@@ -154,6 +154,36 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
154
 
155
  $this->_renderActionSettings();
156
  self::_renderGroupEnd();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  }
158
 
159
  /**
@@ -428,20 +458,30 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
428
  * @since 1.0.0
429
  *
430
  * @static
431
- * @access protected
432
  * @param string $title The title of the select item.
433
  * @param string $name The name of the select item.
434
  * @param string $value The actual value of the select item.
435
  * @param array $options The array of select options.
436
  * @param string $desc The description of the select item.
 
 
 
437
  */
438
- protected static function _renderSelectItem( $title, $name, $value, array $options, $desc ) {
 
 
 
 
 
 
439
  echo '<div class="section-item">';
440
  echo '<a class="more-info" href="javascript:;">[?]</a>';
441
  echo '<b>', $title, '</b>';
442
- echo '<select class="control-select" name="', $name, '">';
443
  foreach ( $options as $key => $label ) {
444
- echo '<option value="', $key, '"', selected( $key, $value, false ), '>';
 
445
  echo $label;
446
  echo '</option>';
447
  }
@@ -483,12 +523,20 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
483
  * @param string $value The actual value of the select item.
484
  * @param string $desc The description of the select item.
485
  * @param string $placeholder The placeholder for the input.
 
 
486
  */
487
- protected static function _renderTextItem( $title, $name, $value, $desc, $placeholder = '' ) {
 
 
 
 
 
 
488
  echo '<div class="section-item">';
489
  echo '<a class="more-info" href="javascript:;">[?]</a>';
490
  echo '<b>', $title, '</b>';
491
- echo '<input type="text" class="control-text" name="', $name, '" value="', esc_attr( $value ), '" placeholder="', $placeholder, '">';
492
  echo '<p class="section-description">', $desc, '</p>';
493
  echo '</div>';
494
  }
@@ -499,12 +547,15 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
499
  * @since 1.0.0
500
  *
501
  * @static
502
- * @access protected
503
  * @param string $title The title of this group.
 
 
504
  */
505
- protected static function _renderGroupStart( $title ) {
506
- echo '<li class="group">';
507
  echo '<h3 class="group-title">', $title, '</h3>';
 
508
  echo '<ul class="group-content">';
509
  }
510
 
@@ -514,9 +565,9 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
514
  * @since 1.0.0
515
  *
516
  * @static
517
- * @access protected
518
  */
519
- protected static function _renderGroupEnd() {
520
  echo '</ul>';
521
  echo '</li>';
522
  }
@@ -527,11 +578,11 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
527
  * @since 1.0.0
528
  *
529
  * @static
530
- * @access protected
531
  * @param string $title The title of this section. If the title is empty, no title will be displayed.
532
  * @param boolean $open Determines whether the section items block has to be expanded or collapsed.
533
  */
534
- protected static function _renderSectionStart( $title = false, $open = true ) {
535
 
536
  if ( ! empty( $title ) ) {
537
  echo '<li class="subsection">';
@@ -547,11 +598,13 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
547
  *
548
  * @since 1.0.0
549
  *
550
- * @static
551
  * @access protected
 
552
  */
553
- protected static function _renderSectionEnd() {
554
  echo '</div>';
 
555
  echo '</li>';
556
  }
557
 
@@ -561,10 +614,10 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
561
  * @since 1.0.0
562
  *
563
  * @static
564
- * @access protected
565
  * @param string $description The description text.
566
  */
567
- protected static function _renderSectionDescription( $description ) {
568
  echo '<div class="section-item">';
569
  echo '<div class="section-description">', $description, '</div>';
570
  echo '</div>';
@@ -615,4 +668,22 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
615
  echo '</div>';
616
  }
617
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
618
  }
154
 
155
  $this->_renderActionSettings();
156
  self::_renderGroupEnd();
157
+
158
+ self::_renderGroupStart( esc_html__( 'Manual Configuration', 'visualizer' ) );
159
+ self::_renderSectionStart();
160
+ self::_renderSectionDescription( __( 'Configure the graph by providing configuration variables right from the','visualizer' ) . ' <a href="https://developers.google.com/chart/interactive/docs/reference" target="_blank">Google Visualization</a> API.' );
161
+
162
+ $example = '
163
+ {
164
+ "vAxis": {
165
+ "ticks": [5, 10, 15, 20],
166
+ "titleTextStyle": {
167
+ "color": "red"
168
+ },
169
+ "textPosition": "in"
170
+ }
171
+ }';
172
+
173
+ self::_renderTextAreaItem(
174
+ esc_html__( 'Configuration', 'visualizer' ),
175
+ 'manual',
176
+ $this->manual,
177
+ sprintf(
178
+ esc_html__( 'One per line in valid JSON (key:value) format e.g. %s', 'visualizer' ), '<br><code>' . $example . '</code>'
179
+ ),
180
+ '',
181
+ array( 'rows' => 5 )
182
+ );
183
+
184
+ self::_renderSectionEnd();
185
+ self::_renderGroupEnd();
186
+
187
  }
188
 
189
  /**
458
  * @since 1.0.0
459
  *
460
  * @static
461
+ * @access public
462
  * @param string $title The title of the select item.
463
  * @param string $name The name of the select item.
464
  * @param string $value The actual value of the select item.
465
  * @param array $options The array of select options.
466
  * @param string $desc The description of the select item.
467
+ * @param bool $multiple Is this a multiple select box.
468
+ * @param array $classes Any additional classes.
469
+ * @param array $attributes Custom attributes.
470
  */
471
+ public static function _renderSelectItem( $title, $name, $value, array $options, $desc, $multiple = false, $classes = array(), $attributes = array() ) {
472
+ $atts = '';
473
+ if ( $attributes ) {
474
+ foreach ( $attributes as $k => $v ) {
475
+ $atts .= ' data-visualizer-' . $k . '=' . esc_attr( $v );
476
+ }
477
+ }
478
  echo '<div class="section-item">';
479
  echo '<a class="more-info" href="javascript:;">[?]</a>';
480
  echo '<b>', $title, '</b>';
481
+ echo '<select class="control-select ', implode( ' ', $classes ) , '" name="', $name, '" ', ( $multiple ? 'multiple' : '' ), ' ' , $atts, '>';
482
  foreach ( $options as $key => $label ) {
483
+ $extra = $multiple && is_array( $value ) ? ( in_array( $key, $value ) ? 'selected' : '' ) : selected( $key, $value, false );
484
+ echo '<option value="', $key, '"', $extra, '>';
485
  echo $label;
486
  echo '</option>';
487
  }
523
  * @param string $value The actual value of the select item.
524
  * @param string $desc The description of the select item.
525
  * @param string $placeholder The placeholder for the input.
526
+ * @param string $type The type for the input (out of number, email, tel etc., default is text).
527
+ * @param array $custom_attributes The custom attributes.
528
  */
529
+ protected static function _renderTextItem( $title, $name, $value, $desc, $placeholder = '', $type = 'text', $custom_attributes = array() ) {
530
+ $attributes = '';
531
+ if ( $custom_attributes ) {
532
+ foreach ( $custom_attributes as $k => $v ) {
533
+ $attributes .= ' ' . $k . '="' . esc_attr( $v ) . '"';
534
+ }
535
+ }
536
  echo '<div class="section-item">';
537
  echo '<a class="more-info" href="javascript:;">[?]</a>';
538
  echo '<b>', $title, '</b>';
539
+ echo '<input type="', $type, '" class="control-text" ', $attributes, ' name="', $name, '" value="', esc_attr( $value ), '" placeholder="', $placeholder, '">';
540
  echo '<p class="section-description">', $desc, '</p>';
541
  echo '</div>';
542
  }
547
  * @since 1.0.0
548
  *
549
  * @static
550
+ * @access public
551
  * @param string $title The title of this group.
552
+ * @param string $html Any additional HTML.
553
+ * @param string $class Any additional classes.
554
  */
555
+ public static function _renderGroupStart( $title, $html = '', $class = '' ) {
556
+ echo '<li class="group ' . $class . '">';
557
  echo '<h3 class="group-title">', $title, '</h3>';
558
+ echo $html;
559
  echo '<ul class="group-content">';
560
  }
561
 
565
  * @since 1.0.0
566
  *
567
  * @static
568
+ * @access public
569
  */
570
+ public static function _renderGroupEnd() {
571
  echo '</ul>';
572
  echo '</li>';
573
  }
578
  * @since 1.0.0
579
  *
580
  * @static
581
+ * @access public
582
  * @param string $title The title of this section. If the title is empty, no title will be displayed.
583
  * @param boolean $open Determines whether the section items block has to be expanded or collapsed.
584
  */
585
+ public static function _renderSectionStart( $title = false, $open = true ) {
586
 
587
  if ( ! empty( $title ) ) {
588
  echo '<li class="subsection">';
598
  *
599
  * @since 1.0.0
600
  *
601
+ * @public
602
  * @access protected
603
+ * @param string $html Any addition HTML to add.
604
  */
605
+ public static function _renderSectionEnd( $html = '' ) {
606
  echo '</div>';
607
+ echo $html;
608
  echo '</li>';
609
  }
610
 
614
  * @since 1.0.0
615
  *
616
  * @static
617
+ * @access public
618
  * @param string $description The description text.
619
  */
620
+ public static function _renderSectionDescription( $description ) {
621
  echo '<div class="section-item">';
622
  echo '<div class="section-description">', $description, '</div>';
623
  echo '</div>';
668
  echo '</div>';
669
  }
670
 
671
+ /**
672
+ * Render a textarea item.
673
+ */
674
+ protected static function _renderTextAreaItem( $title, $name, $value, $desc, $placeholder = '', $custom_attributes = array() ) {
675
+ $attributes = '';
676
+ if ( $custom_attributes ) {
677
+ foreach ( $custom_attributes as $k => $v ) {
678
+ $attributes .= ' ' . $k . '="' . esc_attr( $v ) . '"';
679
+ }
680
+ }
681
+ echo '<div class="section-item">';
682
+ echo '<a class="more-info" href="javascript:;">[?]</a>';
683
+ echo '<b>', $title, '</b>';
684
+ echo '<textarea class="control-text" ', $attributes, ' name="', $name, '" placeholder="', $placeholder, '">', $value, '</textarea>';
685
+ echo '<p class="section-description">', $desc, '</p>';
686
+ echo '</div>';
687
+ }
688
+
689
  }
css/frame.css CHANGED
@@ -164,7 +164,8 @@
164
  padding: 7px 15px 7px 35px;
165
  }
166
 
167
- .group h2 .dashicons {
 
168
  margin-right: 5px;
169
  vertical-align: -5px;
170
  }
@@ -404,7 +405,7 @@ div.group-content .group-description {
404
  }
405
 
406
  #type-picker {
407
- width: 952px;
408
  margin: 50px auto;
409
  }
410
 
@@ -809,8 +810,10 @@ button#editor-chart-button {
809
  }
810
 
811
  #vz-chart-settings h2:hover,
 
 
812
  #vz-chart-review a:hover {
813
- text-decoration: underline;
814
  }
815
 
816
  #vz-chart-review a {
@@ -819,6 +822,8 @@ button#editor-chart-button {
819
  }
820
 
821
  #vz-chart-settings h2,
 
 
822
  #vz-chart-review h2 {
823
  padding: 0;
824
  border: none;
@@ -828,16 +833,16 @@ button#editor-chart-button {
828
 
829
  #vz-chart-review {
830
  right: 0;
831
- bottom: 40px;
832
  -webkit-box-sizing: border-box;
833
  box-sizing: border-box;
834
- width: 50%;
835
- padding-right: 20px;
836
  text-align: right;
837
  }
838
 
839
  #vz-chart-settings.bottom-fixed h2 {
840
- padding-left: 20px;
841
  }
842
 
843
  #vz-chart-settings {
@@ -845,12 +850,29 @@ button#editor-chart-button {
845
  left: 0;
846
  -webkit-box-sizing: border-box;
847
  box-sizing: border-box;
848
- width: 50%;
849
  text-align: left;
850
  }
851
 
852
- #vz-chart-review,
853
- #vz-chart-settings h2 {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
854
  display: inline;
855
  color: #00a0d2;
856
  background: none;
@@ -858,13 +880,18 @@ button#editor-chart-button {
858
  cursor: pointer;
859
  }
860
 
 
 
 
861
  #vz-chart-settings {
862
  display: inline;
863
  background: none;
864
  cursor: pointer;
865
  }
866
 
 
867
  #vz-chart-source > ul,
 
868
  #vz-chart-settings > ul {
869
  position: relative;
870
  z-index: 10;
@@ -881,20 +908,45 @@ button#editor-chart-button {
881
  background: #f3f3f3;
882
  }
883
 
 
 
 
 
 
 
 
 
 
884
  #vz-chart-settings.open h2 {
885
  position: absolute;
886
  bottom: 28px;
887
- left: 20px;
888
  }
889
 
 
890
  #vz-chart-settings.open .group-header {
891
  display: block;
892
  }
893
 
 
894
  #vz-chart-settings .group-header {
895
  display: none;
896
  }
897
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
898
  #vz-csv-file-form,
899
  #vz-one-time-import,
900
  #vz-schedule-import,
@@ -1000,3 +1052,26 @@ button#editor-chart-button {
1000
  span.section-error {
1001
  color: #ff000;
1002
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
164
  padding: 7px 15px 7px 35px;
165
  }
166
 
167
+ .group h2 .dashicons,
168
+ .group h3 .dashicons {
169
  margin-right: 5px;
170
  vertical-align: -5px;
171
  }
405
  }
406
 
407
  #type-picker {
408
+ width: 954px;
409
  margin: 50px auto;
410
  }
411
 
810
  }
811
 
812
  #vz-chart-settings h2:hover,
813
+ #vz-chart-permissions h2:hover,
814
+ .sidebar-footer-link h2:hover,
815
  #vz-chart-review a:hover {
816
+ text-decoration: none;
817
  }
818
 
819
  #vz-chart-review a {
822
  }
823
 
824
  #vz-chart-settings h2,
825
+ #vz-chart-permissions h2,
826
+ .sidebar-footer-link h2,
827
  #vz-chart-review h2 {
828
  padding: 0;
829
  border: none;
833
 
834
  #vz-chart-review {
835
  right: 0;
836
+ bottom: 10px;
837
  -webkit-box-sizing: border-box;
838
  box-sizing: border-box;
839
+ width: 40%;
840
+ padding-right: 6px;
841
  text-align: right;
842
  }
843
 
844
  #vz-chart-settings.bottom-fixed h2 {
845
+ padding-left: 6px;
846
  }
847
 
848
  #vz-chart-settings {
850
  left: 0;
851
  -webkit-box-sizing: border-box;
852
  box-sizing: border-box;
853
+ width: 33%;
854
  text-align: left;
855
  }
856
 
857
+ #vz-chart-permissions:not(.open) h2 {
858
+ display: inline-block;
859
+ width: 100%;
860
+ margin: 0;
861
+ text-align: right;
862
+ }
863
+
864
+ #vz-chart-permissions {
865
+ right: 0;
866
+ bottom: 40px;
867
+ -webkit-box-sizing: border-box;
868
+ box-sizing: border-box;
869
+ width: 33%;
870
+ text-align: left;
871
+ }
872
+
873
+ #vz-chart-permissions h2,
874
+ #vz-chart-settings h2,
875
+ .sidebar-footer-link h2 {
876
  display: inline;
877
  color: #00a0d2;
878
  background: none;
880
  cursor: pointer;
881
  }
882
 
883
+ .sidebar-footer-link,
884
+ #vz-chart-review,
885
+ #vz-chart-permissions,
886
  #vz-chart-settings {
887
  display: inline;
888
  background: none;
889
  cursor: pointer;
890
  }
891
 
892
+ .sidebar-footer-link > ul,
893
  #vz-chart-source > ul,
894
+ #vz-chart-permissions > ul,
895
  #vz-chart-settings > ul {
896
  position: relative;
897
  z-index: 10;
908
  background: #f3f3f3;
909
  }
910
 
911
+ #vz-chart-permissions.open h2 {
912
+ position: absolute;
913
+ right: 6px;
914
+ bottom: 28px;
915
+ left: auto;
916
+ width: 50%;
917
+ text-align: right;
918
+ }
919
+
920
  #vz-chart-settings.open h2 {
921
  position: absolute;
922
  bottom: 28px;
923
+ left: 6px;
924
  }
925
 
926
+ #vz-chart-permissions .group-header,
927
  #vz-chart-settings.open .group-header {
928
  display: block;
929
  }
930
 
931
+ #vz-chart-permissions .group-header,
932
  #vz-chart-settings .group-header {
933
  display: none;
934
  }
935
 
936
+ .sidebar-footer-link.open h2 {
937
+ position: absolute;
938
+ bottom: 28px;
939
+ left: 20px;
940
+ }
941
+
942
+ .sidebar-footer-link.open .group-header {
943
+ display: block;
944
+ }
945
+
946
+ .sidebar-footer-link .group-header {
947
+ display: none;
948
+ }
949
+
950
  #vz-csv-file-form,
951
  #vz-one-time-import,
952
  #vz-schedule-import,
1052
  span.section-error {
1053
  color: #ff000;
1054
  }
1055
+
1056
+ #visualizer-error-manual {
1057
+ color: #ff595e;
1058
+ }
1059
+
1060
+ #vz-chart-permissions {
1061
+ width: 43%;
1062
+ }
1063
+
1064
+ #vz-chart-permissions {
1065
+ color: #ce484c;
1066
+ }
1067
+
1068
+ #vz-chart-permissions {
1069
+ right: 6px;
1070
+ bottom: 40px;
1071
+ width: 35%;
1072
+ }
1073
+
1074
+ #permissions-form .only-pro-feature > ul {
1075
+ position: relative;
1076
+ text-align: center;
1077
+ }
css/front.css ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .locker,
2
+ .locker-loader {
3
+ position: absolute;
4
+ top: 0;
5
+ left: 0;
6
+ width: 100%;
7
+ height: 100%;
8
+ }
9
+
10
+ .locker {
11
+ z-index: 1000;
12
+ opacity: 0.8;
13
+ background-color: white;
14
+
15
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
16
+ filter: alpha(opacity=80);
17
+ }
18
+
19
+ .locker-loader {
20
+ z-index: 1001;
21
+ background: url(../images/ajax-loader.gif) no-repeat center center;
22
+ }
css/lib/chosen.min.css ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ /* Chosen v1.5.1 | (c) 2011-2016 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
2
+
3
+ .chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chosen-container *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15)}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container .search-choice .group-name,.chosen-container .chosen-single .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container .search-choice .group-name:after,.chosen-container .chosen-single .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#fff),color-stop(50%,#f6f6f6),color-stop(52%,#eee),color-stop(100%,#f4f4f4));background:-webkit-linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-moz-linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-o-linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;background:url(../../images/chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-single .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%;background:url(../../images/chosen-sprite.png) no-repeat 0 2px}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;background:#fff url(../../images/chosen-sprite.png) no-repeat 100% -20px;background:url(../../images/chosen-sprite.png) no-repeat 100% -20px;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#3875d7),color-stop(90%,#2a62bc));background-image:-webkit-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-moz-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-o-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto!important;height:1%;border:1px solid #aaa;background-color:#fff;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(1%,#eee),color-stop(15%,#fff));background-image:-webkit-linear-gradient(#eee 1%,#fff 15%);background-image:-moz-linear-gradient(#eee 1%,#fff 15%);background-image:-o-linear-gradient(#eee 1%,#fff 15%);background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;height:25px;outline:0;border:0!important;background:transparent!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 5px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:4px;right:3px;display:block;width:12px;height:12px;background:url(../../images/chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{background-position:-42px -10px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;-moz-border-radius-bottomright:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#eee),color-stop(80%,#fff));background-image:-webkit-linear-gradient(#eee 20%,#fff 80%);background-image:-moz-linear-gradient(#eee 20%,#fff 80%);background-image:-o-linear-gradient(#eee 20%,#fff 80%);background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:0;background:transparent}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single-nosearch .chosen-search,.chosen-rtl .chosen-drop{left:9999px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:0}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;background:#fff url(../../images/chosen-sprite.png) no-repeat -30px -20px;background:url(../../images/chosen-sprite.png) no-repeat -30px -20px;direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:144dpi),only screen and (min-resolution:1.5dppx){.chosen-rtl .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-container-single .chosen-search input[type=text],.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span{background-image:url(../../images/chosen-sprite@2x.png)!important;background-size:52px 37px!important;background-repeat:no-repeat!important}}
css/media.css CHANGED
@@ -1,5 +1,5 @@
1
  /*
2
- Version: 2.2.0
3
  */
4
  #visualizer-library-view {
5
  padding: 30px 10px 10px 30px;
1
  /*
2
+ Version: 3.0.0
3
  */
4
  #visualizer-library-view {
5
  padding: 30px 10px 10px 30px;
images/chosen-sprite.png ADDED
Binary file
images/chosen-sprite@2x.png ADDED
Binary file
index.php CHANGED
@@ -4,7 +4,7 @@
4
  Plugin Name: Visualizer: Charts and Graphs Lite
5
  Plugin URI: https://themeisle.com/plugins/visualizer-charts-and-graphs-lite/
6
  Description: A simple, easy to use and quite powerful tool to create, manage and embed interactive charts into your WordPress posts and pages. The plugin uses Google Visualization API to render charts, which supports cross-browser compatibility (adopting VML for older IE versions) and cross-platform portability to iOS and new Android releases.
7
- Version: 2.2.0
8
  Author: Themeisle
9
  Author URI: http://themeisle.com
10
  License: GPL v2.0 or later
4
  Plugin Name: Visualizer: Charts and Graphs Lite
5
  Plugin URI: https://themeisle.com/plugins/visualizer-charts-and-graphs-lite/
6
  Description: A simple, easy to use and quite powerful tool to create, manage and embed interactive charts into your WordPress posts and pages. The plugin uses Google Visualization API to render charts, which supports cross-browser compatibility (adopting VML for older IE versions) and cross-platform portability to iOS and new Android releases.
7
+ Version: 3.0.0
8
  Author: Themeisle
9
  Author URI: http://themeisle.com
10
  License: GPL v2.0 or later
js/frame.js CHANGED
@@ -4,6 +4,8 @@
4
 
5
  (function ($) {
6
  $(document).ready(function () {
 
 
7
  $('.type-radio').change(function () {
8
  $('.type-label-selected').removeClass('type-label-selected');
9
  $(this).parent().addClass('type-label-selected');
@@ -11,8 +13,9 @@
11
 
12
  $('#vz-chart-settings h2').click(function () {
13
  $("#vz-chart-source").hide();
 
14
  $(this).parent().removeClass('bottom-fixed').addClass('open');
15
-
16
  return false;
17
  });
18
  $('#vz-chart-settings .customize-section-back').click(function () {
@@ -70,6 +73,82 @@
70
  });
71
 
72
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  })(jQuery);
74
 
75
  (function ($) {
4
 
5
  (function ($) {
6
  $(document).ready(function () {
7
+ init_permissions();
8
+
9
  $('.type-radio').change(function () {
10
  $('.type-label-selected').removeClass('type-label-selected');
11
  $(this).parent().addClass('type-label-selected');
13
 
14
  $('#vz-chart-settings h2').click(function () {
15
  $("#vz-chart-source").hide();
16
+ $("#vz-chart-permissions").removeClass('open').addClass('bottom-fixed');
17
  $(this).parent().removeClass('bottom-fixed').addClass('open');
18
+ $("#vz-chart-permissions .group-header").hide();
19
  return false;
20
  });
21
  $('#vz-chart-settings .customize-section-back').click(function () {
73
  });
74
 
75
  });
76
+
77
+ function init_permissions(){
78
+ $('#vz-chart-permissions h2').click(function () {
79
+ $("#vz-chart-source").hide();
80
+ $("#vz-chart-permissions .group-header").show();
81
+ $("#vz-chart-settings").removeClass('open').addClass('bottom-fixed');
82
+
83
+ $('#settings-button').click(function(e) {
84
+ e.preventDefault();
85
+ $('#permissions-form').submit();
86
+ $('#settings-form').submit();
87
+ });
88
+
89
+ $(this).parent().removeClass('bottom-fixed').addClass('open');
90
+
91
+ return false;
92
+ });
93
+ $('#vz-chart-permissions .customize-section-back').click(function () {
94
+ $("#vz-chart-source").show();
95
+
96
+ $("#vz-chart-permissions .group-header").hide();
97
+ $('#settings-button').click(function(e) {
98
+ e.preventDefault();
99
+ $('#settings-form').submit();
100
+ });
101
+
102
+ $(this).parent().parent().removeClass('open').addClass('bottom-fixed');
103
+
104
+ return false;
105
+ });
106
+
107
+ $('.visualizer-permission').chosen({
108
+ width : '50%',
109
+ search_contains : true
110
+ });
111
+
112
+ $('.visualizer-permission-type').each(function(x, y){
113
+ var type = $(y).attr('data-visualizer-permission-type');
114
+ var child = $('.visualizer-permission-' + type + '-specific');
115
+ if($(y).val() === 'all'){
116
+ child.next('div.chosen-container').hide();
117
+ return;
118
+ }
119
+ });
120
+
121
+ $('.visualizer-permission-type').on('change', function(evt, params) {
122
+ var type = $(this).attr('data-visualizer-permission-type');
123
+ var child = $('.visualizer-permission-' + type + '-specific');
124
+ child.empty();
125
+ if(params.selected === 'all'){
126
+ child.next('div.chosen-container').hide();
127
+ return;
128
+ } else {
129
+ child.next('div.chosen-container').show();
130
+ }
131
+ child.append('<option value="">' + visualizer.l10n['loading'] + '</option>').trigger('chosen:updated');
132
+ $.ajax({
133
+ url : visualizer.ajax['url'],
134
+ method : 'post',
135
+ data : {
136
+ 'action' : visualizer.ajax['actions']['permissions'],
137
+ 'nonce' : visualizer.ajax['nonces']['permissions'],
138
+ 'type' : params.selected
139
+ },
140
+ success : function(d, textStatus, XMLHttpRequest){
141
+ if(d.success) {
142
+ child.empty();
143
+ $.each(d.data, function(k, v){
144
+ child.append('<option value="' + k + '">' + v + '</option>');
145
+ });
146
+ child.trigger('chosen:updated');
147
+ }
148
+ }
149
+ });
150
+ });
151
+ }
152
  })(jQuery);
153
 
154
  (function ($) {
js/lib/chosen.jquery.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /* Chosen v1.5.1 | (c) 2011-2016 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
2
+ (function(){var a,AbstractChosen,Chosen,SelectParser,b,c={}.hasOwnProperty,d=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a};SelectParser=function(){function SelectParser(){this.options_index=0,this.parsed=[]}return SelectParser.prototype.add_node=function(a){return"OPTGROUP"===a.nodeName.toUpperCase()?this.add_group(a):this.add_option(a)},SelectParser.prototype.add_group=function(a){var b,c,d,e,f,g;for(b=this.parsed.length,this.parsed.push({array_index:b,group:!0,label:this.escapeExpression(a.label),title:a.title?a.title:void 0,children:0,disabled:a.disabled,classes:a.className}),f=a.childNodes,g=[],d=0,e=f.length;e>d;d++)c=f[d],g.push(this.add_option(c,b,a.disabled));return g},SelectParser.prototype.add_option=function(a,b,c){return"OPTION"===a.nodeName.toUpperCase()?(""!==a.text?(null!=b&&(this.parsed[b].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:a.value,text:a.text,html:a.innerHTML,title:a.title?a.title:void 0,selected:a.selected,disabled:c===!0?c:a.disabled,group_array_index:b,group_label:null!=b?this.parsed[b].label:null,classes:a.className,style:a.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1):void 0},SelectParser.prototype.escapeExpression=function(a){var b,c;return null==a||a===!1?"":/[\&\<\>\"\'\`]/.test(a)?(b={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},c=/&(?!\w+;)|[\<\>\"\'\`]/g,a.replace(c,function(a){return b[a]||"&amp;"})):a},SelectParser}(),SelectParser.select_to_array=function(a){var b,c,d,e,f;for(c=new SelectParser,f=a.childNodes,d=0,e=f.length;e>d;d++)b=f[d],c.add_node(b);return c.parsed},AbstractChosen=function(){function AbstractChosen(a,b){this.form_field=a,this.options=null!=b?b:{},AbstractChosen.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return AbstractChosen.prototype.set_default_values=function(){var a=this;return this.click_test_action=function(b){return a.test_active_click(b)},this.activate_action=function(b){return a.activate_field(b)},this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text?this.options.allow_single_deselect:!1,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null!=this.options.enable_split_word_search?this.options.enable_split_word_search:!0,this.group_search=null!=this.options.group_search?this.options.group_search:!0,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null!=this.options.single_backstroke_delete?this.options.single_backstroke_delete:!0,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null!=this.options.display_selected_options?this.options.display_selected_options:!0,this.display_disabled_options=null!=this.options.display_disabled_options?this.options.display_disabled_options:!0,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY},AbstractChosen.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||AbstractChosen.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||AbstractChosen.default_single_text,this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||AbstractChosen.default_no_result_text},AbstractChosen.prototype.choice_label=function(a){return this.include_group_label_in_selected&&null!=a.group_label?"<b class='group-name'>"+a.group_label+"</b>"+a.html:a.html},AbstractChosen.prototype.mouse_enter=function(){return this.mouse_on_container=!0},AbstractChosen.prototype.mouse_leave=function(){return this.mouse_on_container=!1},AbstractChosen.prototype.input_focus=function(a){var b=this;if(this.is_multiple){if(!this.active_field)return setTimeout(function(){return b.container_mousedown()},50)}else if(!this.active_field)return this.activate_field()},AbstractChosen.prototype.input_blur=function(a){var b=this;return this.mouse_on_container?void 0:(this.active_field=!1,setTimeout(function(){return b.blur_test()},100))},AbstractChosen.prototype.results_option_build=function(a){var b,c,d,e,f,g,h;for(b="",e=0,h=this.results_data,f=0,g=h.length;g>f&&(c=h[f],d="",d=c.group?this.result_add_group(c):this.result_add_option(c),""!==d&&(e++,b+=d),(null!=a?a.first:void 0)&&(c.selected&&this.is_multiple?this.choice_build(c):c.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(c))),!(e>=this.max_shown_results));f++);return b},AbstractChosen.prototype.result_add_option=function(a){var b,c;return a.search_match&&this.include_option_in_results(a)?(b=[],a.disabled||a.selected&&this.is_multiple||b.push("active-result"),!a.disabled||a.selected&&this.is_multiple||b.push("disabled-result"),a.selected&&b.push("result-selected"),null!=a.group_array_index&&b.push("group-option"),""!==a.classes&&b.push(a.classes),c=document.createElement("li"),c.className=b.join(" "),c.style.cssText=a.style,c.setAttribute("data-option-array-index",a.array_index),c.innerHTML=a.search_text,a.title&&(c.title=a.title),this.outerHTML(c)):""},AbstractChosen.prototype.result_add_group=function(a){var b,c;return(a.search_match||a.group_match)&&a.active_options>0?(b=[],b.push("group-result"),a.classes&&b.push(a.classes),c=document.createElement("li"),c.className=b.join(" "),c.innerHTML=a.search_text,a.title&&(c.title=a.title),this.outerHTML(c)):""},AbstractChosen.prototype.results_update_field=function(){return this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing?this.winnow_results():void 0},AbstractChosen.prototype.reset_single_select_options=function(){var a,b,c,d,e;for(d=this.results_data,e=[],b=0,c=d.length;c>b;b++)a=d[b],a.selected?e.push(a.selected=!1):e.push(void 0);return e},AbstractChosen.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},AbstractChosen.prototype.results_search=function(a){return this.results_showing?this.winnow_results():this.results_show()},AbstractChosen.prototype.winnow_results=function(){var a,b,c,d,e,f,g,h,i,j,k,l;for(this.no_results_clear(),d=0,f=this.get_search_text(),a=f.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),i=new RegExp(a,"i"),c=this.get_search_regex(a),l=this.results_data,j=0,k=l.length;k>j;j++)b=l[j],b.search_match=!1,e=null,this.include_option_in_results(b)&&(b.group&&(b.group_match=!1,b.active_options=0),null!=b.group_array_index&&this.results_data[b.group_array_index]&&(e=this.results_data[b.group_array_index],0===e.active_options&&e.search_match&&(d+=1),e.active_options+=1),b.search_text=b.group?b.label:b.html,(!b.group||this.group_search)&&(b.search_match=this.search_string_match(b.search_text,c),b.search_match&&!b.group&&(d+=1),b.search_match?(f.length&&(g=b.search_text.search(i),h=b.search_text.substr(0,g+f.length)+"</em>"+b.search_text.substr(g+f.length),b.search_text=h.substr(0,g)+"<em>"+h.substr(g)),null!=e&&(e.group_match=!0)):null!=b.group_array_index&&this.results_data[b.group_array_index].search_match&&(b.search_match=!0)));return this.result_clear_highlight(),1>d&&f.length?(this.update_results_content(""),this.no_results(f)):(this.update_results_content(this.results_option_build()),this.winnow_results_set_highlight())},AbstractChosen.prototype.get_search_regex=function(a){var b;return b=this.search_contains?"":"^",new RegExp(b+a,"i")},AbstractChosen.prototype.search_string_match=function(a,b){var c,d,e,f;if(b.test(a))return!0;if(this.enable_split_word_search&&(a.indexOf(" ")>=0||0===a.indexOf("["))&&(d=a.replace(/\[|\]/g,"").split(" "),d.length))for(e=0,f=d.length;f>e;e++)if(c=d[e],b.test(c))return!0},AbstractChosen.prototype.choices_count=function(){var a,b,c,d;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,d=this.form_field.options,b=0,c=d.length;c>b;b++)a=d[b],a.selected&&(this.selected_option_count+=1);return this.selected_option_count},AbstractChosen.prototype.choices_click=function(a){return a.preventDefault(),this.results_showing||this.is_disabled?void 0:this.results_show()},AbstractChosen.prototype.keyup_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),b){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:if(a.preventDefault(),this.results_showing)return this.result_select(a);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:case 18:break;default:return this.results_search()}},AbstractChosen.prototype.clipboard_event_checker=function(a){var b=this;return setTimeout(function(){return b.results_search()},50)},AbstractChosen.prototype.container_width=function(){return null!=this.options.width?this.options.width:""+this.form_field.offsetWidth+"px"},AbstractChosen.prototype.include_option_in_results=function(a){return this.is_multiple&&!this.display_selected_options&&a.selected?!1:!this.display_disabled_options&&a.disabled?!1:a.empty?!1:!0},AbstractChosen.prototype.search_results_touchstart=function(a){return this.touch_started=!0,this.search_results_mouseover(a)},AbstractChosen.prototype.search_results_touchmove=function(a){return this.touch_started=!1,this.search_results_mouseout(a)},AbstractChosen.prototype.search_results_touchend=function(a){return this.touch_started?this.search_results_mouseup(a):void 0},AbstractChosen.prototype.outerHTML=function(a){var b;return a.outerHTML?a.outerHTML:(b=document.createElement("div"),b.appendChild(a),b.innerHTML)},AbstractChosen.browser_is_supported=function(){return/iP(od|hone)/i.test(window.navigator.userAgent)?!1:/Android/i.test(window.navigator.userAgent)&&/Mobile/i.test(window.navigator.userAgent)?!1:/IEMobile/i.test(window.navigator.userAgent)?!1:/Windows Phone/i.test(window.navigator.userAgent)?!1:/BlackBerry/i.test(window.navigator.userAgent)?!1:/BB10/i.test(window.navigator.userAgent)?!1:"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!0},AbstractChosen.default_multiple_text="Select Some Options",AbstractChosen.default_single_text="Select an Option",AbstractChosen.default_no_result_text="No results match",AbstractChosen}(),a=jQuery,a.fn.extend({chosen:function(b){return AbstractChosen.browser_is_supported()?this.each(function(c){var d,e;return d=a(this),e=d.data("chosen"),"destroy"===b?void(e instanceof Chosen&&e.destroy()):void(e instanceof Chosen||d.data("chosen",new Chosen(this,b)))}):this}}),Chosen=function(c){function Chosen(){return b=Chosen.__super__.constructor.apply(this,arguments)}return d(Chosen,c),Chosen.prototype.setup=function(){return this.form_field_jq=a(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex,this.is_rtl=this.form_field_jq.hasClass("chosen-rtl")},Chosen.prototype.set_up_html=function(){var b,c;return b=["chosen-container"],b.push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&b.push(this.form_field.className),this.is_rtl&&b.push("chosen-rtl"),c={"class":b.join(" "),style:"width: "+this.container_width()+";",title:this.form_field.title},this.form_field.id.length&&(c.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=a("<div />",c),this.is_multiple?this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="'+this.default_text+'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>'):this.container.html('<a class="chosen-single chosen-default"><span>'+this.default_text+'</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>'),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},Chosen.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},Chosen.prototype.register_observers=function(){var a=this;return this.container.bind("touchstart.chosen",function(b){return a.container_mousedown(b),b.preventDefault()}),this.container.bind("touchend.chosen",function(b){return a.container_mouseup(b),b.preventDefault()}),this.container.bind("mousedown.chosen",function(b){a.container_mousedown(b)}),this.container.bind("mouseup.chosen",function(b){a.container_mouseup(b)}),this.container.bind("mouseenter.chosen",function(b){a.mouse_enter(b)}),this.container.bind("mouseleave.chosen",function(b){a.mouse_leave(b)}),this.search_results.bind("mouseup.chosen",function(b){a.search_results_mouseup(b)}),this.search_results.bind("mouseover.chosen",function(b){a.search_results_mouseover(b)}),this.search_results.bind("mouseout.chosen",function(b){a.search_results_mouseout(b)}),this.search_results.bind("mousewheel.chosen DOMMouseScroll.chosen",function(b){a.search_results_mousewheel(b)}),this.search_results.bind("touchstart.chosen",function(b){a.search_results_touchstart(b)}),this.search_results.bind("touchmove.chosen",function(b){a.search_results_touchmove(b)}),this.search_results.bind("touchend.chosen",function(b){a.search_results_touchend(b)}),this.form_field_jq.bind("chosen:updated.chosen",function(b){a.results_update_field(b)}),this.form_field_jq.bind("chosen:activate.chosen",function(b){a.activate_field(b)}),this.form_field_jq.bind("chosen:open.chosen",function(b){a.container_mousedown(b)}),this.form_field_jq.bind("chosen:close.chosen",function(b){a.input_blur(b)}),this.search_field.bind("blur.chosen",function(b){a.input_blur(b)}),this.search_field.bind("keyup.chosen",function(b){a.keyup_checker(b)}),this.search_field.bind("keydown.chosen",function(b){a.keydown_checker(b)}),this.search_field.bind("focus.chosen",function(b){a.input_focus(b)}),this.search_field.bind("cut.chosen",function(b){a.clipboard_event_checker(b)}),this.search_field.bind("paste.chosen",function(b){a.clipboard_event_checker(b)}),this.is_multiple?this.search_choices.bind("click.chosen",function(b){a.choices_click(b)}):this.container.bind("click.chosen",function(a){a.preventDefault()})},Chosen.prototype.destroy=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},Chosen.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field_jq[0].disabled,this.is_disabled?(this.container.addClass("chosen-disabled"),this.search_field[0].disabled=!0,this.is_multiple||this.selected_item.unbind("focus.chosen",this.activate_action),this.close_field()):(this.container.removeClass("chosen-disabled"),this.search_field[0].disabled=!1,this.is_multiple?void 0:this.selected_item.bind("focus.chosen",this.activate_action))},Chosen.prototype.container_mousedown=function(b){return this.is_disabled||(b&&"mousedown"===b.type&&!this.results_showing&&b.preventDefault(),null!=b&&a(b.target).hasClass("search-choice-close"))?void 0:(this.active_field?this.is_multiple||!b||a(b.target)[0]!==this.selected_item[0]&&!a(b.target).parents("a.chosen-single").length||(b.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),a(this.container[0].ownerDocument).bind("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},Chosen.prototype.container_mouseup=function(a){return"ABBR"!==a.target.nodeName||this.is_disabled?void 0:this.results_reset(a)},Chosen.prototype.search_results_mousewheel=function(a){var b;return a.originalEvent&&(b=a.originalEvent.deltaY||-a.originalEvent.wheelDelta||a.originalEvent.detail),null!=b?(a.preventDefault(),"DOMMouseScroll"===a.type&&(b=40*b),this.search_results.scrollTop(b+this.search_results.scrollTop())):void 0},Chosen.prototype.blur_test=function(a){return!this.active_field&&this.container.hasClass("chosen-container-active")?this.close_field():void 0},Chosen.prototype.close_field=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale()},Chosen.prototype.activate_field=function(){return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},Chosen.prototype.test_active_click=function(b){var c;return c=a(b.target).closest(".chosen-container"),c.length&&this.container[0]===c[0]?this.active_field=!0:this.close_field()},Chosen.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=SelectParser.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():this.is_multiple||(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},Chosen.prototype.result_do_highlight=function(a){var b,c,d,e,f;if(a.length){if(this.result_clear_highlight(),this.result_highlight=a,this.result_highlight.addClass("highlighted"),d=parseInt(this.search_results.css("maxHeight"),10),f=this.search_results.scrollTop(),e=d+f,c=this.result_highlight.position().top+this.search_results.scrollTop(),b=c+this.result_highlight.outerHeight(),b>=e)return this.search_results.scrollTop(b-d>0?b-d:0);if(f>c)return this.search_results.scrollTop(c)}},Chosen.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},Chosen.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.search_field.val()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},Chosen.prototype.update_results_content=function(a){return this.search_results.html(a)},Chosen.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},Chosen.prototype.set_tab_index=function(a){var b;return this.form_field.tabIndex?(b=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=b):void 0},Chosen.prototype.set_label_behavior=function(){var b=this;return this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=a("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0?this.form_field_label.bind("click.chosen",function(a){return b.is_multiple?b.container_mousedown(a):b.activate_field()}):void 0},Chosen.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},Chosen.prototype.search_results_mouseup=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c.length?(this.result_highlight=c,this.result_select(b),this.search_field.focus()):void 0},Chosen.prototype.search_results_mouseover=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c?this.result_do_highlight(c):void 0},Chosen.prototype.search_results_mouseout=function(b){return a(b.target).hasClass("active-result")?this.result_clear_highlight():void 0},Chosen.prototype.choice_build=function(b){var c,d,e=this;return c=a("<li />",{"class":"search-choice"}).html("<span>"+this.choice_label(b)+"</span>"),b.disabled?c.addClass("search-choice-disabled"):(d=a("<a />",{"class":"search-choice-close","data-option-array-index":b.array_index}),d.bind("click.chosen",function(a){return e.choice_destroy_link_click(a)}),c.append(d)),this.search_container.before(c)},Chosen.prototype.choice_destroy_link_click=function(b){return b.preventDefault(),b.stopPropagation(),this.is_disabled?void 0:this.choice_destroy(a(b.target))},Chosen.prototype.choice_destroy=function(a){return this.result_deselect(a[0].getAttribute("data-option-array-index"))?(this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.search_field.val().length<1&&this.results_hide(),a.parents("li").first().remove(),this.search_field_scale()):void 0},Chosen.prototype.results_reset=function(){return this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.form_field_jq.trigger("change"),this.active_field?this.results_hide():void 0},Chosen.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},Chosen.prototype.result_select=function(a){var b,c;return this.result_highlight?(b=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?b.removeClass("active-result"):this.reset_single_select_options(),b.addClass("result-selected"),c=this.results_data[b[0].getAttribute("data-option-array-index")],c.selected=!0,this.form_field.options[c.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(c):this.single_set_selected_text(this.choice_label(c)),(a.metaKey||a.ctrlKey)&&this.is_multiple||this.results_hide(),this.show_search_field_default(),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.form_field_jq.trigger("change",{selected:this.form_field.options[c.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,a.preventDefault(),this.search_field_scale())):void 0},Chosen.prototype.single_set_selected_text=function(a){return null==a&&(a=this.default_text),a===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(a)},Chosen.prototype.result_deselect=function(a){var b;return b=this.results_data[a],this.form_field.options[b.options_index].disabled?!1:(b.selected=!1,this.form_field.options[b.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.form_field_jq.trigger("change",{deselected:this.form_field.options[b.options_index].value}),this.search_field_scale(),!0)},Chosen.prototype.single_deselect_control_build=function(){return this.allow_single_deselect?(this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")):void 0},Chosen.prototype.get_search_text=function(){return a("<div/>").text(a.trim(this.search_field.val())).html()},Chosen.prototype.winnow_results_set_highlight=function(){var a,b;return b=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),a=b.length?b.first():this.search_results.find(".active-result").first(),null!=a?this.result_do_highlight(a):void 0},Chosen.prototype.no_results=function(b){var c;return c=a('<li class="no-results">'+this.results_none_found+' "<span></span>"</li>'),c.find("span").first().html(b),this.search_results.append(c),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},Chosen.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},Chosen.prototype.keydown_arrow=function(){var a;return this.results_showing&&this.result_highlight?(a=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(a):void 0:this.results_show()},Chosen.prototype.keyup_arrow=function(){var a;return this.results_showing||this.is_multiple?this.result_highlight?(a=this.result_highlight.prevAll("li.active-result"),a.length?this.result_do_highlight(a.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight())):void 0:this.results_show()},Chosen.prototype.keydown_backstroke=function(){var a;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(a=this.search_container.siblings("li.search-choice").last(),a.length&&!a.hasClass("search-choice-disabled")?(this.pending_backstroke=a,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0)},Chosen.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},Chosen.prototype.keydown_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),8!==b&&this.pending_backstroke&&this.clear_backstroke(),b){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(a),this.mouse_on_container=!1;break;case 13:this.results_showing&&a.preventDefault();break;case 32:this.disable_search&&a.preventDefault();break;case 38:a.preventDefault(),this.keyup_arrow();break;case 40:a.preventDefault(),this.keydown_arrow()}},Chosen.prototype.search_field_scale=function(){var b,c,d,e,f,g,h,i,j;if(this.is_multiple){for(d=0,h=0,f="position:absolute; left: -1000px; top: -1000px; display:none;",g=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"],i=0,j=g.length;j>i;i++)e=g[i],f+=e+":"+this.search_field.css(e)+";";return b=a("<div />",{style:f}),b.text(this.search_field.val()),a("body").append(b),h=b.width()+25,b.remove(),c=this.container.outerWidth(),h>c-10&&(h=c-10),this.search_field.css({width:h+"px"})}},Chosen}(AbstractChosen)}).call(this);
js/preview.js CHANGED
@@ -1,4 +1,5 @@
1
  /* global visualizer */
 
2
  (function($, v) {
3
  var timeout;
4
 
@@ -20,12 +21,23 @@
20
  }, 1000);
21
  }
22
 
 
 
 
 
 
 
 
 
 
23
  $('.control-text').change(updateChart).keyup(updateChart);
24
  $('.control-select, .control-checkbox').change(updateChart);
25
  $('.color-picker-hex').wpColorPicker({
26
  change: updateChart,
27
  clear: updateChart
28
  });
 
 
29
  });
30
  })(jQuery, visualizer);
31
 
1
  /* global visualizer */
2
+ /* global console */
3
  (function($, v) {
4
  var timeout;
5
 
21
  }, 1000);
22
  }
23
 
24
+ function validateJSON() {
25
+ $('#visualizer-error-manual').remove();
26
+ try{
27
+ var options = JSON.parse($(this).val());
28
+ }catch(error){
29
+ $('<div class="visualizer-error" id="visualizer-error-manual">Invalid JSON: ' + error + '</div>').insertAfter($(this));
30
+ }
31
+ }
32
+
33
  $('.control-text').change(updateChart).keyup(updateChart);
34
  $('.control-select, .control-checkbox').change(updateChart);
35
  $('.color-picker-hex').wpColorPicker({
36
  change: updateChart,
37
  clear: updateChart
38
  });
39
+ $('textarea[name="manual"]').change(validateJSON).keyup(validateJSON);
40
+
41
  });
42
  })(jQuery, visualizer);
43
 
js/render.js CHANGED
@@ -1,5 +1,6 @@
1
  /* global google */
2
  /* global visualizer */
 
3
  (function(v, g) {
4
  var gv;
5
 
@@ -198,9 +199,23 @@
198
  formatter.format(table, 1);
199
  }
200
 
 
 
201
  render.draw(table, settings);
202
  };
203
 
 
 
 
 
 
 
 
 
 
 
 
 
204
  v.render = function() {
205
  for (var id in (v.charts || {})) {
206
  v.renderChart(id);
@@ -241,6 +256,8 @@
241
  $('a.visualizer-action[data-visualizer-type!=copy]').on('click', function(e) {
242
  var type = $(this).attr( 'data-visualizer-type' );
243
  var chart = $(this).attr( 'data-visualizer-chart-id' );
 
 
244
  e.preventDefault();
245
  $.ajax({
246
  url : v.rest_url.replace('#id#', chart).replace('#type#', type),
@@ -283,11 +300,12 @@
283
  break;
284
  default:
285
  if(window.visualizer_perform_action) {
286
- window.visualizer_perform_action(type, data.data);
287
  }
288
  break;
289
  }
290
  }
 
291
  }
292
  });
293
  });
@@ -319,4 +337,53 @@
319
  });
320
  }
321
 
322
- })(jQuery, visualizer);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  /* global google */
2
  /* global visualizer */
3
+ /* global console */
4
  (function(v, g) {
5
  var gv;
6
 
199
  formatter.format(table, 1);
200
  }
201
 
202
+ v.override(settings);
203
+
204
  render.draw(table, settings);
205
  };
206
 
207
+ v.override = function(settings) {
208
+ if (settings.manual) {
209
+ try{
210
+ var options = JSON.parse(settings.manual);
211
+ jQuery.extend(settings, options);
212
+ delete settings.manual;
213
+ }catch(error){
214
+ console.error("Error while adding manual configuration override " + settings.manual);
215
+ }
216
+ }
217
+ };
218
+
219
  v.render = function() {
220
  for (var id in (v.charts || {})) {
221
  v.renderChart(id);
256
  $('a.visualizer-action[data-visualizer-type!=copy]').on('click', function(e) {
257
  var type = $(this).attr( 'data-visualizer-type' );
258
  var chart = $(this).attr( 'data-visualizer-chart-id' );
259
+ var lock = $('.visualizer-front.visualizer-front-' + chart);
260
+ lock.lock();
261
  e.preventDefault();
262
  $.ajax({
263
  url : v.rest_url.replace('#id#', chart).replace('#type#', type),
300
  break;
301
  default:
302
  if(window.visualizer_perform_action) {
303
+ window.visualizer_perform_action(type, chart, data.data);
304
  }
305
  break;
306
  }
307
  }
308
+ lock.unlock();
309
  }
310
  });
311
  });
337
  });
338
  }
339
 
340
+ })(jQuery, visualizer);
341
+
342
+ (function ($) {
343
+ $.fn.lock = function () {
344
+ $(this).each(function () {
345
+ var $this = $(this);
346
+ var position = $this.css('position');
347
+
348
+ if (!position) {
349
+ position = 'static';
350
+ }
351
+
352
+ switch (position) {
353
+ case 'absolute':
354
+ case 'relative':
355
+ break;
356
+ default:
357
+ $this.css('position', 'relative');
358
+ break;
359
+ }
360
+ $this.data('position', position);
361
+
362
+ var width = $this.width(),
363
+ height = $this.height();
364
+
365
+ var locker = $('<div class="locker"></div>');
366
+ locker.width(width).height(height);
367
+
368
+ var loader = $('<div class="locker-loader"></div>');
369
+ loader.width(width).height(height);
370
+
371
+ locker.append(loader);
372
+ $this.append(locker);
373
+ $(window).resize(function () {
374
+ $this.find('.locker,.locker-loader').width($this.width()).height($this.height());
375
+ });
376
+ });
377
+
378
+ return $(this);
379
+ };
380
+
381
+ $.fn.unlock = function () {
382
+ $(this).each(function () {
383
+ $(this).find('.locker').remove();
384
+ $(this).css('position', $(this).data('position'));
385
+ });
386
+
387
+ return $(this);
388
+ };
389
+ })(jQuery);
languages/visualizer.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the GPL v2.0 or later.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Visualizer: Charts and Graphs Lite 2.2.0\n"
6
  "Report-Msgid-Bugs-To: https://github.com/Codeinwp/visualizer/issues\n"
7
- "POT-Creation-Date: 2017-08-16 11:04:21+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -24,125 +24,130 @@ msgstr ""
24
  "X-Poedit-Bookmarks: \n"
25
  "X-Textdomain-Support: yes\n"
26
 
27
- #: classes/Visualizer/Module/Admin.php:107
28
  msgid "Visualizations"
29
  msgstr ""
30
 
31
- #: classes/Visualizer/Module/Admin.php:110
32
  msgid "From Library"
33
  msgstr ""
34
 
35
- #: classes/Visualizer/Module/Admin.php:111
36
  msgid "Create New"
37
  msgstr ""
38
 
39
- #: classes/Visualizer/Module/Admin.php:136
40
  msgid "Pie"
41
  msgstr ""
42
 
43
- #: classes/Visualizer/Module/Admin.php:140
44
  msgid "Line"
45
  msgstr ""
46
 
47
- #: classes/Visualizer/Module/Admin.php:144
48
  msgid "Area"
49
  msgstr ""
50
 
51
- #: classes/Visualizer/Module/Admin.php:148
52
  msgid "Geo"
53
  msgstr ""
54
 
55
- #: classes/Visualizer/Module/Admin.php:152
56
  msgid "Bar"
57
  msgstr ""
58
 
59
- #: classes/Visualizer/Module/Admin.php:156
60
  msgid "Column"
61
  msgstr ""
62
 
63
- #: classes/Visualizer/Module/Admin.php:160
64
  msgid "Gauge"
65
  msgstr ""
66
 
67
- #: classes/Visualizer/Module/Admin.php:164
68
  msgid "Scatter"
69
  msgstr ""
70
 
71
- #: classes/Visualizer/Module/Admin.php:168
72
  msgid "Candlestick"
73
  msgstr ""
74
 
75
- #: classes/Visualizer/Module/Admin.php:173
76
  msgid "Table"
77
  msgstr ""
78
 
79
- #: classes/Visualizer/Module/Admin.php:177
80
  msgid "Timeline"
81
  msgstr ""
82
 
83
- #: classes/Visualizer/Module/Admin.php:181
84
  msgid "Combo"
85
  msgstr ""
86
 
87
- #: classes/Visualizer/Module/Admin.php:291
88
  #: classes/Visualizer/Render/Library.php:42
89
  msgid "Visualizer Library"
90
  msgstr ""
91
 
92
- #: classes/Visualizer/Module/Admin.php:423
93
  msgid "Library"
94
  msgstr ""
95
 
96
- #: classes/Visualizer/Module/Admin.php:448
97
  msgid "Knowledge Base"
98
  msgstr ""
99
 
100
- #: classes/Visualizer/Module/Admin.php:453
101
  msgid "Pro Addon"
102
  msgstr ""
103
 
104
- #: classes/Visualizer/Module/Chart.php:315
105
- #: classes/Visualizer/Module/Chart.php:550
106
  msgid "You have entered invalid URL. Please, insert proper URL."
107
  msgstr ""
108
 
109
- #: classes/Visualizer/Module/Chart.php:329
 
 
 
 
 
110
  msgid "Save Chart"
111
  msgstr ""
112
 
113
- #: classes/Visualizer/Module/Chart.php:330
114
  msgid "Create Chart"
115
  msgstr ""
116
 
117
- #: classes/Visualizer/Module/Chart.php:332
118
  msgid "Insert Chart"
119
  msgstr ""
120
 
121
- #: classes/Visualizer/Module/Chart.php:429
122
  msgid "CSV file with chart data was not uploaded. Please, try again."
123
  msgstr ""
124
 
125
- #: classes/Visualizer/Module/Chart.php:441
126
  msgid "CSV file is broken or invalid. Please, try again."
127
  msgstr ""
128
 
129
  #: classes/Visualizer/Module/Frontend.php:94
130
- #: classes/Visualizer/Render/Sidebar.php:167
131
  msgid "Print"
132
  msgstr ""
133
 
134
  #: classes/Visualizer/Module/Frontend.php:95
135
- #: classes/Visualizer/Render/Sidebar.php:174
136
  msgid "CSV"
137
  msgstr ""
138
 
139
  #: classes/Visualizer/Module/Frontend.php:96
140
- #: classes/Visualizer/Render/Sidebar.php:183
141
  msgid "Excel"
142
  msgstr ""
143
 
144
  #: classes/Visualizer/Module/Frontend.php:97
145
- #: classes/Visualizer/Render/Sidebar.php:191
146
  msgid "Copy"
147
  msgstr ""
148
 
@@ -154,15 +159,15 @@ msgstr ""
154
  msgid "Invalid action"
155
  msgstr ""
156
 
157
- #: classes/Visualizer/Module/Frontend.php:234
158
  msgid "Copied!"
159
  msgstr ""
160
 
161
- #: classes/Visualizer/Module/Sources.php:143
162
  msgid "Enable this feature in %s version!"
163
  msgstr ""
164
 
165
- #: classes/Visualizer/Module/Sources.php:144
166
  msgid "Buy now"
167
  msgstr ""
168
 
@@ -220,14 +225,22 @@ msgid "Import from other charts"
220
  msgstr ""
221
 
222
  #: classes/Visualizer/Render/Library.php:220
223
- msgid "Auto-sync with online files"
224
  msgstr ""
225
 
226
  #: classes/Visualizer/Render/Library.php:221
227
- msgid "3 more chart types"
228
  msgstr ""
229
 
230
  #: classes/Visualizer/Render/Library.php:222
 
 
 
 
 
 
 
 
231
  msgid "View more features"
232
  msgstr ""
233
 
@@ -357,7 +370,7 @@ msgid "Create Filters"
357
  msgstr ""
358
 
359
  #: classes/Visualizer/Render/Page/Data.php:212
360
- #: classes/Visualizer/Render/Page/Data.php:232
361
  msgid "Show Chart"
362
  msgstr ""
363
 
@@ -365,28 +378,60 @@ msgstr ""
365
  msgid "Add data manually"
366
  msgstr ""
367
 
368
- #: classes/Visualizer/Render/Page/Data.php:229
369
  msgid "You can manually edit the chart data using the spreadsheet like editor."
370
  msgstr ""
371
 
372
- #: classes/Visualizer/Render/Page/Data.php:231
373
- #: classes/Visualizer/Render/Page/Data.php:233
374
  msgid "View Editor"
375
  msgstr ""
376
 
377
- #: classes/Visualizer/Render/Page/Data.php:243
378
- msgid "Advanced Settings"
379
  msgstr ""
380
 
381
- #: classes/Visualizer/Render/Page/Data.php:246
 
382
  msgid "Chart Settings"
383
  msgstr ""
384
 
385
- #: classes/Visualizer/Render/Page/Data.php:257
386
- msgid "Rate our plugin"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
387
  msgstr ""
388
 
389
- #: classes/Visualizer/Render/Page/Data.php:276
390
  #: classes/Visualizer/Render/Page/Settings.php:55
391
  msgid "Back"
392
  msgstr ""
@@ -549,7 +594,7 @@ msgstr ""
549
  #: classes/Visualizer/Render/Sidebar/Graph.php:179
550
  #: classes/Visualizer/Render/Sidebar/Graph.php:291
551
  #: classes/Visualizer/Render/Sidebar/Type/Gauge.php:57
552
- #: classes/Visualizer/Render/Sidebar.php:208
553
  msgid "General Settings"
554
  msgstr ""
555
 
@@ -673,7 +718,7 @@ msgstr ""
673
  #: classes/Visualizer/Render/Sidebar/Graph.php:422
674
  #: classes/Visualizer/Render/Sidebar/Graph.php:451
675
  #: classes/Visualizer/Render/Sidebar/Type/Pie.php:61
676
- #: classes/Visualizer/Render/Sidebar.php:585
677
  msgid "Number Format"
678
  msgstr ""
679
 
@@ -832,7 +877,7 @@ msgstr ""
832
  #: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:102
833
  #: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:126
834
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:377
835
- #: classes/Visualizer/Render/Sidebar.php:349
836
  msgid "Stroke Width"
837
  msgstr ""
838
 
@@ -843,7 +888,7 @@ msgstr ""
843
  #: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:110
844
  #: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:134
845
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:385
846
- #: classes/Visualizer/Render/Sidebar.php:357
847
  msgid "Stroke Color"
848
  msgstr ""
849
 
@@ -922,13 +967,13 @@ msgid "The lowest and highest values for a range marked by a red color."
922
  msgstr ""
923
 
924
  #: classes/Visualizer/Render/Sidebar/Type/Gauge.php:228
925
- #: classes/Visualizer/Render/Sidebar.php:320
926
  msgid "Layout & Chart Area"
927
  msgstr ""
928
 
929
  #: classes/Visualizer/Render/Sidebar/Type/Gauge.php:230
930
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:341
931
- #: classes/Visualizer/Render/Sidebar.php:322
932
  msgid ""
933
  "Configure the total size of the chart. Two formats are supported: a number, "
934
  "or a number followed by %. A simple number is a value in pixels; a number "
@@ -937,13 +982,13 @@ msgstr ""
937
 
938
  #: classes/Visualizer/Render/Sidebar/Type/Gauge.php:234
939
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:345
940
- #: classes/Visualizer/Render/Sidebar.php:326
941
  msgid "Width And Height Of Chart"
942
  msgstr ""
943
 
944
  #: classes/Visualizer/Render/Sidebar/Type/Gauge.php:248
945
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:359
946
- #: classes/Visualizer/Render/Sidebar.php:340
947
  msgid "Determines the total width and height of the chart."
948
  msgstr ""
949
 
@@ -1065,27 +1110,27 @@ msgid "Markers"
1065
  msgstr ""
1066
 
1067
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:143
1068
- #: classes/Visualizer/Render/Sidebar.php:276
1069
  msgid "Tooltip"
1070
  msgstr ""
1071
 
1072
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:158
1073
- #: classes/Visualizer/Render/Sidebar.php:291
1074
  msgid "Trigger"
1075
  msgstr ""
1076
 
1077
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:163
1078
- #: classes/Visualizer/Render/Sidebar.php:296
1079
  msgid "The tooltip will be displayed when the user hovers over an element"
1080
  msgstr ""
1081
 
1082
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:164
1083
- #: classes/Visualizer/Render/Sidebar.php:298
1084
  msgid "The tooltip will not be displayed"
1085
  msgstr ""
1086
 
1087
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:166
1088
- #: classes/Visualizer/Render/Sidebar.php:300
1089
  msgid "Determines the user interaction that causes the tooltip to be displayed."
1090
  msgstr ""
1091
 
@@ -1202,19 +1247,19 @@ msgid ""
1202
  msgstr ""
1203
 
1204
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:374
1205
- #: classes/Visualizer/Render/Sidebar.php:346
1206
  msgid ""
1207
  "Configure the background color for the main area of the chart and the chart "
1208
  "border width and color."
1209
  msgstr ""
1210
 
1211
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:380
1212
- #: classes/Visualizer/Render/Sidebar.php:352
1213
  msgid "The chart border width in pixels."
1214
  msgstr ""
1215
 
1216
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:392
1217
- #: classes/Visualizer/Render/Sidebar.php:365
1218
  msgid "Background Color"
1219
  msgstr ""
1220
 
@@ -1412,103 +1457,119 @@ msgstr ""
1412
  msgid "Configure frontend actions here."
1413
  msgstr ""
1414
 
1415
- #: classes/Visualizer/Render/Sidebar.php:165
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1416
  msgid "Actions"
1417
  msgstr ""
1418
 
1419
- #: classes/Visualizer/Render/Sidebar.php:171
1420
  msgid "To enable printing the data."
1421
  msgstr ""
1422
 
1423
- #: classes/Visualizer/Render/Sidebar.php:178
1424
  msgid "To enable downloading the data as a CSV."
1425
  msgstr ""
1426
 
1427
- #: classes/Visualizer/Render/Sidebar.php:187
1428
  msgid "Enable the ZIP and XML extensions to use this setting."
1429
  msgstr ""
1430
 
1431
- #: classes/Visualizer/Render/Sidebar.php:187
1432
  msgid "To enable downloading the data as an Excel spreadsheet."
1433
  msgstr ""
1434
 
1435
- #: classes/Visualizer/Render/Sidebar.php:195
1436
  msgid "To enable copying the data to the clipboard."
1437
  msgstr ""
1438
 
1439
- #: classes/Visualizer/Render/Sidebar.php:210
1440
  msgid ""
1441
  "Configure title, font styles, tooltip, legend and else settings for the "
1442
  "chart."
1443
  msgstr ""
1444
 
1445
- #: classes/Visualizer/Render/Sidebar.php:213
1446
  msgid "Title"
1447
  msgstr ""
1448
 
1449
- #: classes/Visualizer/Render/Sidebar.php:217
1450
  msgid "Font Styles"
1451
  msgstr ""
1452
 
1453
- #: classes/Visualizer/Render/Sidebar.php:220
1454
  msgid "Family And Size"
1455
  msgstr ""
1456
 
1457
- #: classes/Visualizer/Render/Sidebar.php:246
1458
  msgid "The default font family and size for all text in the chart."
1459
  msgstr ""
1460
 
1461
- #: classes/Visualizer/Render/Sidebar.php:251
1462
  msgid "Legend"
1463
  msgstr ""
1464
 
1465
- #: classes/Visualizer/Render/Sidebar.php:253
1466
  msgid "Position"
1467
  msgstr ""
1468
 
1469
- #: classes/Visualizer/Render/Sidebar.php:257
1470
  msgid "Determines where to place the legend, compared to the chart area."
1471
  msgstr ""
1472
 
1473
- #: classes/Visualizer/Render/Sidebar.php:261
1474
  msgid "Alignment"
1475
  msgstr ""
1476
 
1477
- #: classes/Visualizer/Render/Sidebar.php:265
1478
  msgid "Determines the alignment of the legend."
1479
  msgstr ""
1480
 
1481
- #: classes/Visualizer/Render/Sidebar.php:269
1482
  msgid "Font Color"
1483
  msgstr ""
1484
 
1485
- #: classes/Visualizer/Render/Sidebar.php:297
1486
  msgid "The tooltip will be displayed when the user selects an element"
1487
  msgstr ""
1488
 
1489
- #: classes/Visualizer/Render/Sidebar.php:304
1490
  msgid "Show Color Code"
1491
  msgstr ""
1492
 
1493
- #: classes/Visualizer/Render/Sidebar.php:308
1494
  msgid ""
1495
  "If set to yes, will show colored squares next to the slice information in "
1496
  "the tooltip."
1497
  msgstr ""
1498
 
1499
- #: classes/Visualizer/Render/Sidebar.php:321
1500
  msgid "Layout"
1501
  msgstr ""
1502
 
1503
- #: classes/Visualizer/Render/Sidebar.php:374
1504
  msgid "Transparent background"
1505
  msgstr ""
1506
 
1507
- #: classes/Visualizer/Render/Sidebar.php:379
1508
  msgid "Chart Area"
1509
  msgstr ""
1510
 
1511
- #: classes/Visualizer/Render/Sidebar.php:380
1512
  msgid ""
1513
  "Configure the placement and size of the chart area (where the chart itself "
1514
  "is drawn, excluding axis and legends). Two formats are supported: a number, "
@@ -1516,27 +1577,27 @@ msgid ""
1516
  "followed by % is a percentage."
1517
  msgstr ""
1518
 
1519
- #: classes/Visualizer/Render/Sidebar.php:384
1520
  msgid "Left And Top Margins"
1521
  msgstr ""
1522
 
1523
- #: classes/Visualizer/Render/Sidebar.php:398
1524
  msgid "Determines how far to draw the chart from the left and top borders."
1525
  msgstr ""
1526
 
1527
- #: classes/Visualizer/Render/Sidebar.php:404
1528
  msgid "Width And Height Of Chart Area"
1529
  msgstr ""
1530
 
1531
- #: classes/Visualizer/Render/Sidebar.php:418
1532
  msgid "Determines the width and hight of the chart area."
1533
  msgstr ""
1534
 
1535
- #: classes/Visualizer/Render/Sidebar.php:469
1536
  msgid "Hex Value"
1537
  msgstr ""
1538
 
1539
- #: classes/Visualizer/Render/Sidebar.php:588
1540
  msgid ""
1541
  "Enter custom format pattern to apply to this series value, similar to the "
1542
  "%1$sICU pattern set%2$s. Use something like #,### to get 1,234 as output, "
@@ -1544,11 +1605,11 @@ msgid ""
1544
  "percentage format then your values will be multiplied by 100."
1545
  msgstr ""
1546
 
1547
- #: classes/Visualizer/Render/Sidebar.php:596
1548
  msgid "Date Format"
1549
  msgstr ""
1550
 
1551
- #: classes/Visualizer/Render/Sidebar.php:599
1552
  msgid ""
1553
  "Enter custom format pattern to apply to this series value, similar to the "
1554
  "%1$sICU date and time format%2$s."
2
  # This file is distributed under the GPL v2.0 or later.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Visualizer: Charts and Graphs Lite 3.0.0\n"
6
  "Report-Msgid-Bugs-To: https://github.com/Codeinwp/visualizer/issues\n"
7
+ "POT-Creation-Date: 2017-09-05 13:05:22+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
24
  "X-Poedit-Bookmarks: \n"
25
  "X-Textdomain-Support: yes\n"
26
 
27
+ #: classes/Visualizer/Module/Admin.php:157
28
  msgid "Visualizations"
29
  msgstr ""
30
 
31
+ #: classes/Visualizer/Module/Admin.php:160
32
  msgid "From Library"
33
  msgstr ""
34
 
35
+ #: classes/Visualizer/Module/Admin.php:161
36
  msgid "Create New"
37
  msgstr ""
38
 
39
+ #: classes/Visualizer/Module/Admin.php:186
40
  msgid "Pie"
41
  msgstr ""
42
 
43
+ #: classes/Visualizer/Module/Admin.php:190
44
  msgid "Line"
45
  msgstr ""
46
 
47
+ #: classes/Visualizer/Module/Admin.php:194
48
  msgid "Area"
49
  msgstr ""
50
 
51
+ #: classes/Visualizer/Module/Admin.php:198
52
  msgid "Geo"
53
  msgstr ""
54
 
55
+ #: classes/Visualizer/Module/Admin.php:202
56
  msgid "Bar"
57
  msgstr ""
58
 
59
+ #: classes/Visualizer/Module/Admin.php:206
60
  msgid "Column"
61
  msgstr ""
62
 
63
+ #: classes/Visualizer/Module/Admin.php:210
64
  msgid "Gauge"
65
  msgstr ""
66
 
67
+ #: classes/Visualizer/Module/Admin.php:214
68
  msgid "Scatter"
69
  msgstr ""
70
 
71
+ #: classes/Visualizer/Module/Admin.php:218
72
  msgid "Candlestick"
73
  msgstr ""
74
 
75
+ #: classes/Visualizer/Module/Admin.php:223
76
  msgid "Table"
77
  msgstr ""
78
 
79
+ #: classes/Visualizer/Module/Admin.php:227
80
  msgid "Timeline"
81
  msgstr ""
82
 
83
+ #: classes/Visualizer/Module/Admin.php:231
84
  msgid "Combo"
85
  msgstr ""
86
 
87
+ #: classes/Visualizer/Module/Admin.php:341
88
  #: classes/Visualizer/Render/Library.php:42
89
  msgid "Visualizer Library"
90
  msgstr ""
91
 
92
+ #: classes/Visualizer/Module/Admin.php:473
93
  msgid "Library"
94
  msgstr ""
95
 
96
+ #: classes/Visualizer/Module/Admin.php:498
97
  msgid "Knowledge Base"
98
  msgstr ""
99
 
100
+ #: classes/Visualizer/Module/Admin.php:503
101
  msgid "Pro Addon"
102
  msgstr ""
103
 
104
+ #: classes/Visualizer/Module/Chart.php:323
105
+ #: classes/Visualizer/Module/Chart.php:574
106
  msgid "You have entered invalid URL. Please, insert proper URL."
107
  msgstr ""
108
 
109
+ #: classes/Visualizer/Module/Chart.php:324
110
+ #: classes/Visualizer/Module/Chart.php:575
111
+ msgid "Loading..."
112
+ msgstr ""
113
+
114
+ #: classes/Visualizer/Module/Chart.php:347
115
  msgid "Save Chart"
116
  msgstr ""
117
 
118
+ #: classes/Visualizer/Module/Chart.php:348
119
  msgid "Create Chart"
120
  msgstr ""
121
 
122
+ #: classes/Visualizer/Module/Chart.php:350
123
  msgid "Insert Chart"
124
  msgstr ""
125
 
126
+ #: classes/Visualizer/Module/Chart.php:453
127
  msgid "CSV file with chart data was not uploaded. Please, try again."
128
  msgstr ""
129
 
130
+ #: classes/Visualizer/Module/Chart.php:465
131
  msgid "CSV file is broken or invalid. Please, try again."
132
  msgstr ""
133
 
134
  #: classes/Visualizer/Module/Frontend.php:94
135
+ #: classes/Visualizer/Render/Sidebar.php:197
136
  msgid "Print"
137
  msgstr ""
138
 
139
  #: classes/Visualizer/Module/Frontend.php:95
140
+ #: classes/Visualizer/Render/Sidebar.php:204
141
  msgid "CSV"
142
  msgstr ""
143
 
144
  #: classes/Visualizer/Module/Frontend.php:96
145
+ #: classes/Visualizer/Render/Sidebar.php:213
146
  msgid "Excel"
147
  msgstr ""
148
 
149
  #: classes/Visualizer/Module/Frontend.php:97
150
+ #: classes/Visualizer/Render/Sidebar.php:221
151
  msgid "Copy"
152
  msgstr ""
153
 
159
  msgid "Invalid action"
160
  msgstr ""
161
 
162
+ #: classes/Visualizer/Module/Frontend.php:244
163
  msgid "Copied!"
164
  msgstr ""
165
 
166
+ #: classes/Visualizer/Module/Sources.php:144
167
  msgid "Enable this feature in %s version!"
168
  msgstr ""
169
 
170
+ #: classes/Visualizer/Module/Sources.php:145
171
  msgid "Buy now"
172
  msgstr ""
173
 
225
  msgstr ""
226
 
227
  #: classes/Visualizer/Render/Library.php:220
228
+ msgid "Frontend editor"
229
  msgstr ""
230
 
231
  #: classes/Visualizer/Render/Library.php:221
232
+ msgid "Private charts"
233
  msgstr ""
234
 
235
  #: classes/Visualizer/Render/Library.php:222
236
+ msgid "Auto-sync with online files"
237
+ msgstr ""
238
+
239
+ #: classes/Visualizer/Render/Library.php:223
240
+ msgid "3 more chart types"
241
+ msgstr ""
242
+
243
+ #: classes/Visualizer/Render/Library.php:224
244
  msgid "View more features"
245
  msgstr ""
246
 
370
  msgstr ""
371
 
372
  #: classes/Visualizer/Render/Page/Data.php:212
373
+ #: classes/Visualizer/Render/Page/Data.php:233
374
  msgid "Show Chart"
375
  msgstr ""
376
 
378
  msgid "Add data manually"
379
  msgstr ""
380
 
381
+ #: classes/Visualizer/Render/Page/Data.php:230
382
  msgid "You can manually edit the chart data using the spreadsheet like editor."
383
  msgstr ""
384
 
385
+ #: classes/Visualizer/Render/Page/Data.php:232
386
+ #: classes/Visualizer/Render/Page/Data.php:234
387
  msgid "View Editor"
388
  msgstr ""
389
 
390
+ #: classes/Visualizer/Render/Page/Data.php:244
391
+ msgid "Advanced"
392
  msgstr ""
393
 
394
+ #: classes/Visualizer/Render/Page/Data.php:247
395
+ #: classes/Visualizer/Render/Page/Data.php:283
396
  msgid "Chart Settings"
397
  msgstr ""
398
 
399
+ #: classes/Visualizer/Render/Page/Data.php:280
400
+ msgid "Permissions"
401
+ msgstr ""
402
+
403
+ #: classes/Visualizer/Render/Page/Data.php:310
404
+ msgid "Who can see this chart?"
405
+ msgstr ""
406
+
407
+ #: classes/Visualizer/Render/Page/Data.php:314
408
+ msgid "Select who can view the chart on the front-end."
409
+ msgstr ""
410
+
411
+ #: classes/Visualizer/Render/Page/Data.php:325
412
+ #: classes/Visualizer/Render/Page/Data.php:368
413
+ msgid "All Users"
414
+ msgstr ""
415
+
416
+ #: classes/Visualizer/Render/Page/Data.php:326
417
+ #: classes/Visualizer/Render/Page/Data.php:369
418
+ msgid "Select Users"
419
+ msgstr ""
420
+
421
+ #: classes/Visualizer/Render/Page/Data.php:327
422
+ #: classes/Visualizer/Render/Page/Data.php:370
423
+ msgid "Select Roles"
424
+ msgstr ""
425
+
426
+ #: classes/Visualizer/Render/Page/Data.php:352
427
+ msgid "Who can edit this chart?"
428
+ msgstr ""
429
+
430
+ #: classes/Visualizer/Render/Page/Data.php:356
431
+ msgid "Select who can edit the chart on the front-end."
432
  msgstr ""
433
 
434
+ #: classes/Visualizer/Render/Page/Data.php:407
435
  #: classes/Visualizer/Render/Page/Settings.php:55
436
  msgid "Back"
437
  msgstr ""
594
  #: classes/Visualizer/Render/Sidebar/Graph.php:179
595
  #: classes/Visualizer/Render/Sidebar/Graph.php:291
596
  #: classes/Visualizer/Render/Sidebar/Type/Gauge.php:57
597
+ #: classes/Visualizer/Render/Sidebar.php:238
598
  msgid "General Settings"
599
  msgstr ""
600
 
718
  #: classes/Visualizer/Render/Sidebar/Graph.php:422
719
  #: classes/Visualizer/Render/Sidebar/Graph.php:451
720
  #: classes/Visualizer/Render/Sidebar/Type/Pie.php:61
721
+ #: classes/Visualizer/Render/Sidebar.php:638
722
  msgid "Number Format"
723
  msgstr ""
724
 
877
  #: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:102
878
  #: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:126
879
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:377
880
+ #: classes/Visualizer/Render/Sidebar.php:379
881
  msgid "Stroke Width"
882
  msgstr ""
883
 
888
  #: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:110
889
  #: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:134
890
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:385
891
+ #: classes/Visualizer/Render/Sidebar.php:387
892
  msgid "Stroke Color"
893
  msgstr ""
894
 
967
  msgstr ""
968
 
969
  #: classes/Visualizer/Render/Sidebar/Type/Gauge.php:228
970
+ #: classes/Visualizer/Render/Sidebar.php:350
971
  msgid "Layout & Chart Area"
972
  msgstr ""
973
 
974
  #: classes/Visualizer/Render/Sidebar/Type/Gauge.php:230
975
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:341
976
+ #: classes/Visualizer/Render/Sidebar.php:352
977
  msgid ""
978
  "Configure the total size of the chart. Two formats are supported: a number, "
979
  "or a number followed by %. A simple number is a value in pixels; a number "
982
 
983
  #: classes/Visualizer/Render/Sidebar/Type/Gauge.php:234
984
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:345
985
+ #: classes/Visualizer/Render/Sidebar.php:356
986
  msgid "Width And Height Of Chart"
987
  msgstr ""
988
 
989
  #: classes/Visualizer/Render/Sidebar/Type/Gauge.php:248
990
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:359
991
+ #: classes/Visualizer/Render/Sidebar.php:370
992
  msgid "Determines the total width and height of the chart."
993
  msgstr ""
994
 
1110
  msgstr ""
1111
 
1112
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:143
1113
+ #: classes/Visualizer/Render/Sidebar.php:306
1114
  msgid "Tooltip"
1115
  msgstr ""
1116
 
1117
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:158
1118
+ #: classes/Visualizer/Render/Sidebar.php:321
1119
  msgid "Trigger"
1120
  msgstr ""
1121
 
1122
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:163
1123
+ #: classes/Visualizer/Render/Sidebar.php:326
1124
  msgid "The tooltip will be displayed when the user hovers over an element"
1125
  msgstr ""
1126
 
1127
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:164
1128
+ #: classes/Visualizer/Render/Sidebar.php:328
1129
  msgid "The tooltip will not be displayed"
1130
  msgstr ""
1131
 
1132
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:166
1133
+ #: classes/Visualizer/Render/Sidebar.php:330
1134
  msgid "Determines the user interaction that causes the tooltip to be displayed."
1135
  msgstr ""
1136
 
1247
  msgstr ""
1248
 
1249
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:374
1250
+ #: classes/Visualizer/Render/Sidebar.php:376
1251
  msgid ""
1252
  "Configure the background color for the main area of the chart and the chart "
1253
  "border width and color."
1254
  msgstr ""
1255
 
1256
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:380
1257
+ #: classes/Visualizer/Render/Sidebar.php:382
1258
  msgid "The chart border width in pixels."
1259
  msgstr ""
1260
 
1261
  #: classes/Visualizer/Render/Sidebar/Type/Geo.php:392
1262
+ #: classes/Visualizer/Render/Sidebar.php:395
1263
  msgid "Background Color"
1264
  msgstr ""
1265
 
1457
  msgid "Configure frontend actions here."
1458
  msgstr ""
1459
 
1460
+ #: classes/Visualizer/Render/Sidebar.php:158
1461
+ msgid "Manual Configuration"
1462
+ msgstr ""
1463
+
1464
+ #: classes/Visualizer/Render/Sidebar.php:160
1465
+ msgid "Configure the graph by providing configuration variables right from the"
1466
+ msgstr ""
1467
+
1468
+ #: classes/Visualizer/Render/Sidebar.php:174
1469
+ msgid "Configuration"
1470
+ msgstr ""
1471
+
1472
+ #: classes/Visualizer/Render/Sidebar.php:178
1473
+ msgid "One per line in valid JSON (key:value) format e.g. %s"
1474
+ msgstr ""
1475
+
1476
+ #: classes/Visualizer/Render/Sidebar.php:195
1477
  msgid "Actions"
1478
  msgstr ""
1479
 
1480
+ #: classes/Visualizer/Render/Sidebar.php:201
1481
  msgid "To enable printing the data."
1482
  msgstr ""
1483
 
1484
+ #: classes/Visualizer/Render/Sidebar.php:208
1485
  msgid "To enable downloading the data as a CSV."
1486
  msgstr ""
1487
 
1488
+ #: classes/Visualizer/Render/Sidebar.php:217
1489
  msgid "Enable the ZIP and XML extensions to use this setting."
1490
  msgstr ""
1491
 
1492
+ #: classes/Visualizer/Render/Sidebar.php:217
1493
  msgid "To enable downloading the data as an Excel spreadsheet."
1494
  msgstr ""
1495
 
1496
+ #: classes/Visualizer/Render/Sidebar.php:225
1497
  msgid "To enable copying the data to the clipboard."
1498
  msgstr ""
1499
 
1500
+ #: classes/Visualizer/Render/Sidebar.php:240
1501
  msgid ""
1502
  "Configure title, font styles, tooltip, legend and else settings for the "
1503
  "chart."
1504
  msgstr ""
1505
 
1506
+ #: classes/Visualizer/Render/Sidebar.php:243
1507
  msgid "Title"
1508
  msgstr ""
1509
 
1510
+ #: classes/Visualizer/Render/Sidebar.php:247
1511
  msgid "Font Styles"
1512
  msgstr ""
1513
 
1514
+ #: classes/Visualizer/Render/Sidebar.php:250
1515
  msgid "Family And Size"
1516
  msgstr ""
1517
 
1518
+ #: classes/Visualizer/Render/Sidebar.php:276
1519
  msgid "The default font family and size for all text in the chart."
1520
  msgstr ""
1521
 
1522
+ #: classes/Visualizer/Render/Sidebar.php:281
1523
  msgid "Legend"
1524
  msgstr ""
1525
 
1526
+ #: classes/Visualizer/Render/Sidebar.php:283
1527
  msgid "Position"
1528
  msgstr ""
1529
 
1530
+ #: classes/Visualizer/Render/Sidebar.php:287
1531
  msgid "Determines where to place the legend, compared to the chart area."
1532
  msgstr ""
1533
 
1534
+ #: classes/Visualizer/Render/Sidebar.php:291
1535
  msgid "Alignment"
1536
  msgstr ""
1537
 
1538
+ #: classes/Visualizer/Render/Sidebar.php:295
1539
  msgid "Determines the alignment of the legend."
1540
  msgstr ""
1541
 
1542
+ #: classes/Visualizer/Render/Sidebar.php:299
1543
  msgid "Font Color"
1544
  msgstr ""
1545
 
1546
+ #: classes/Visualizer/Render/Sidebar.php:327
1547
  msgid "The tooltip will be displayed when the user selects an element"
1548
  msgstr ""
1549
 
1550
+ #: classes/Visualizer/Render/Sidebar.php:334
1551
  msgid "Show Color Code"
1552
  msgstr ""
1553
 
1554
+ #: classes/Visualizer/Render/Sidebar.php:338
1555
  msgid ""
1556
  "If set to yes, will show colored squares next to the slice information in "
1557
  "the tooltip."
1558
  msgstr ""
1559
 
1560
+ #: classes/Visualizer/Render/Sidebar.php:351
1561
  msgid "Layout"
1562
  msgstr ""
1563
 
1564
+ #: classes/Visualizer/Render/Sidebar.php:404
1565
  msgid "Transparent background"
1566
  msgstr ""
1567
 
1568
+ #: classes/Visualizer/Render/Sidebar.php:409
1569
  msgid "Chart Area"
1570
  msgstr ""
1571
 
1572
+ #: classes/Visualizer/Render/Sidebar.php:410
1573
  msgid ""
1574
  "Configure the placement and size of the chart area (where the chart itself "
1575
  "is drawn, excluding axis and legends). Two formats are supported: a number, "
1577
  "followed by % is a percentage."
1578
  msgstr ""
1579
 
1580
+ #: classes/Visualizer/Render/Sidebar.php:414
1581
  msgid "Left And Top Margins"
1582
  msgstr ""
1583
 
1584
+ #: classes/Visualizer/Render/Sidebar.php:428
1585
  msgid "Determines how far to draw the chart from the left and top borders."
1586
  msgstr ""
1587
 
1588
+ #: classes/Visualizer/Render/Sidebar.php:434
1589
  msgid "Width And Height Of Chart Area"
1590
  msgstr ""
1591
 
1592
+ #: classes/Visualizer/Render/Sidebar.php:448
1593
  msgid "Determines the width and hight of the chart area."
1594
  msgstr ""
1595
 
1596
+ #: classes/Visualizer/Render/Sidebar.php:509
1597
  msgid "Hex Value"
1598
  msgstr ""
1599
 
1600
+ #: classes/Visualizer/Render/Sidebar.php:641
1601
  msgid ""
1602
  "Enter custom format pattern to apply to this series value, similar to the "
1603
  "%1$sICU pattern set%2$s. Use something like #,### to get 1,234 as output, "
1605
  "percentage format then your values will be multiplied by 100."
1606
  msgstr ""
1607
 
1608
+ #: classes/Visualizer/Render/Sidebar.php:649
1609
  msgid "Date Format"
1610
  msgstr ""
1611
 
1612
+ #: classes/Visualizer/Render/Sidebar.php:652
1613
  msgid ""
1614
  "Enter custom format pattern to apply to this series value, similar to the "
1615
  "%1$sICU date and time format%2$s."
package-lock.json ADDED
@@ -0,0 +1,7398 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "visualizer",
3
+ "version": "2.2.0",
4
+ "lockfileVersion": 1,
5
+ "requires": true,
6
+ "dependencies": {
7
+ "abbrev": {
8
+ "version": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
9
+ "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=",
10
+ "dev": true
11
+ },
12
+ "ansi-regex": {
13
+ "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz",
14
+ "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc=",
15
+ "dev": true
16
+ },
17
+ "ansi-styles": {
18
+ "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
19
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
20
+ "dev": true
21
+ },
22
+ "archive-type": {
23
+ "version": "https://registry.npmjs.org/archive-type/-/archive-type-3.2.0.tgz",
24
+ "integrity": "sha1-nNnABpV+vpX62tW9YJiUKoE3N/Y=",
25
+ "dev": true,
26
+ "requires": {
27
+ "file-type": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz"
28
+ }
29
+ },
30
+ "archiver": {
31
+ "version": "1.3.0",
32
+ "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz",
33
+ "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=",
34
+ "dev": true,
35
+ "requires": {
36
+ "archiver-utils": "1.3.0",
37
+ "async": "2.5.0",
38
+ "buffer-crc32": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
39
+ "glob": "7.1.2",
40
+ "lodash": "4.17.4",
41
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
42
+ "tar-stream": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.2.tgz",
43
+ "walkdir": "0.0.11",
44
+ "zip-stream": "1.2.0"
45
+ },
46
+ "dependencies": {
47
+ "async": {
48
+ "version": "2.5.0",
49
+ "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz",
50
+ "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==",
51
+ "dev": true,
52
+ "requires": {
53
+ "lodash": "4.17.4"
54
+ }
55
+ },
56
+ "balanced-match": {
57
+ "version": "1.0.0",
58
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
59
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
60
+ "dev": true
61
+ },
62
+ "brace-expansion": {
63
+ "version": "1.1.8",
64
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
65
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
66
+ "dev": true,
67
+ "requires": {
68
+ "balanced-match": "1.0.0",
69
+ "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
70
+ }
71
+ },
72
+ "glob": {
73
+ "version": "7.1.2",
74
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
75
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
76
+ "dev": true,
77
+ "requires": {
78
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
79
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
80
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
81
+ "minimatch": "3.0.4",
82
+ "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
83
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
84
+ }
85
+ },
86
+ "lodash": {
87
+ "version": "4.17.4",
88
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
89
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
90
+ "dev": true
91
+ },
92
+ "minimatch": {
93
+ "version": "3.0.4",
94
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
95
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
96
+ "dev": true,
97
+ "requires": {
98
+ "brace-expansion": "1.1.8"
99
+ }
100
+ }
101
+ }
102
+ },
103
+ "archiver-utils": {
104
+ "version": "1.3.0",
105
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz",
106
+ "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=",
107
+ "dev": true,
108
+ "requires": {
109
+ "glob": "7.1.2",
110
+ "graceful-fs": "4.1.11",
111
+ "lazystream": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
112
+ "lodash": "4.17.4",
113
+ "normalize-path": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz",
114
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz"
115
+ },
116
+ "dependencies": {
117
+ "balanced-match": {
118
+ "version": "1.0.0",
119
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
120
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
121
+ "dev": true
122
+ },
123
+ "brace-expansion": {
124
+ "version": "1.1.8",
125
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
126
+ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
127
+ "dev": true,
128
+ "requires": {
129
+ "balanced-match": "1.0.0",
130
+ "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
131
+ }
132
+ },
133
+ "glob": {
134
+ "version": "7.1.2",
135
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
136
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
137
+ "dev": true,
138
+ "requires": {
139
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
140
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
141
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
142
+ "minimatch": "3.0.4",
143
+ "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
144
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
145
+ }
146
+ },
147
+ "graceful-fs": {
148
+ "version": "4.1.11",
149
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
150
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
151
+ "dev": true
152
+ },
153
+ "lodash": {
154
+ "version": "4.17.4",
155
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
156
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
157
+ "dev": true
158
+ },
159
+ "minimatch": {
160
+ "version": "3.0.4",
161
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
162
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
163
+ "dev": true,
164
+ "requires": {
165
+ "brace-expansion": "1.1.8"
166
+ }
167
+ }
168
+ }
169
+ },
170
+ "argparse": {
171
+ "version": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
172
+ "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
173
+ "dev": true,
174
+ "requires": {
175
+ "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
176
+ "underscore.string": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz"
177
+ },
178
+ "dependencies": {
179
+ "underscore.string": {
180
+ "version": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
181
+ "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=",
182
+ "dev": true
183
+ }
184
+ }
185
+ },
186
+ "arr-diff": {
187
+ "version": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
188
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
189
+ "dev": true,
190
+ "requires": {
191
+ "arr-flatten": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz"
192
+ }
193
+ },
194
+ "arr-flatten": {
195
+ "version": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz",
196
+ "integrity": "sha1-5f/lTUXhnzLyFukeuZyM6JK7YEs=",
197
+ "dev": true
198
+ },
199
+ "array-differ": {
200
+ "version": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
201
+ "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
202
+ "dev": true
203
+ },
204
+ "array-find-index": {
205
+ "version": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
206
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
207
+ "dev": true
208
+ },
209
+ "array-uniq": {
210
+ "version": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
211
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
212
+ "dev": true
213
+ },
214
+ "array-unique": {
215
+ "version": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
216
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
217
+ "dev": true
218
+ },
219
+ "async": {
220
+ "version": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
221
+ "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
222
+ "dev": true
223
+ },
224
+ "async-each-series": {
225
+ "version": "https://registry.npmjs.org/async-each-series/-/async-each-series-1.1.0.tgz",
226
+ "integrity": "sha1-9C/YFV048hpbjqB8KOBj7RcAsTg=",
227
+ "dev": true,
228
+ "optional": true
229
+ },
230
+ "autoprefixer": {
231
+ "version": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.5.3.tgz",
232
+ "integrity": "sha1-LYU69m0ERJ/PUNswZieatUw+SwE=",
233
+ "dev": true,
234
+ "requires": {
235
+ "browserslist": "https://registry.npmjs.org/browserslist/-/browserslist-1.4.0.tgz",
236
+ "caniuse-db": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000595.tgz",
237
+ "normalize-range": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
238
+ "num2fraction": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
239
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.6.tgz",
240
+ "postcss-value-parser": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz"
241
+ }
242
+ },
243
+ "balanced-match": {
244
+ "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
245
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
246
+ "dev": true
247
+ },
248
+ "beeper": {
249
+ "version": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
250
+ "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=",
251
+ "dev": true
252
+ },
253
+ "bin-build": {
254
+ "version": "https://registry.npmjs.org/bin-build/-/bin-build-2.2.0.tgz",
255
+ "integrity": "sha1-EfjdYfcP/Por3KpbRvXo/t1CIcw=",
256
+ "dev": true,
257
+ "optional": true,
258
+ "requires": {
259
+ "archive-type": "https://registry.npmjs.org/archive-type/-/archive-type-3.2.0.tgz",
260
+ "decompress": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz",
261
+ "download": "https://registry.npmjs.org/download/-/download-4.4.3.tgz",
262
+ "exec-series": "https://registry.npmjs.org/exec-series/-/exec-series-1.0.3.tgz",
263
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
264
+ "tempfile": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz",
265
+ "url-regex": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz"
266
+ }
267
+ },
268
+ "bin-check": {
269
+ "version": "https://registry.npmjs.org/bin-check/-/bin-check-2.0.0.tgz",
270
+ "integrity": "sha1-hvjm9CU4k99g3DFpV/WvAqywWTA=",
271
+ "dev": true,
272
+ "optional": true,
273
+ "requires": {
274
+ "executable": "https://registry.npmjs.org/executable/-/executable-1.1.0.tgz"
275
+ }
276
+ },
277
+ "bin-version": {
278
+ "version": "https://registry.npmjs.org/bin-version/-/bin-version-1.0.4.tgz",
279
+ "integrity": "sha1-nrSY7m/Xb3q5p8FgQ2+JV5Q1144=",
280
+ "dev": true,
281
+ "optional": true,
282
+ "requires": {
283
+ "find-versions": "https://registry.npmjs.org/find-versions/-/find-versions-1.2.1.tgz"
284
+ }
285
+ },
286
+ "bin-version-check": {
287
+ "version": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-2.1.0.tgz",
288
+ "integrity": "sha1-5OXfKQuQaffRETJAMe/BP90RpbA=",
289
+ "dev": true,
290
+ "optional": true,
291
+ "requires": {
292
+ "bin-version": "https://registry.npmjs.org/bin-version/-/bin-version-1.0.4.tgz",
293
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
294
+ "semver": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
295
+ "semver-truncate": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz"
296
+ },
297
+ "dependencies": {
298
+ "semver": {
299
+ "version": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
300
+ "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
301
+ "dev": true,
302
+ "optional": true
303
+ }
304
+ }
305
+ },
306
+ "bin-wrapper": {
307
+ "version": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz",
308
+ "integrity": "sha1-Z9MwYmLksaXy+I7iNGT2plVneus=",
309
+ "dev": true,
310
+ "optional": true,
311
+ "requires": {
312
+ "bin-check": "https://registry.npmjs.org/bin-check/-/bin-check-2.0.0.tgz",
313
+ "bin-version-check": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-2.1.0.tgz",
314
+ "download": "https://registry.npmjs.org/download/-/download-4.4.3.tgz",
315
+ "each-async": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz",
316
+ "lazy-req": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz",
317
+ "os-filter-obj": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-1.0.3.tgz"
318
+ }
319
+ },
320
+ "bl": {
321
+ "version": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz",
322
+ "integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=",
323
+ "dev": true,
324
+ "requires": {
325
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz"
326
+ },
327
+ "dependencies": {
328
+ "readable-stream": {
329
+ "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
330
+ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
331
+ "dev": true,
332
+ "requires": {
333
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
334
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
335
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
336
+ "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
337
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
338
+ "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
339
+ }
340
+ }
341
+ }
342
+ },
343
+ "body-parser": {
344
+ "version": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz",
345
+ "integrity": "sha1-EBXLH+LEQ4WCWVgdtTMy+NDPUPk=",
346
+ "dev": true,
347
+ "requires": {
348
+ "bytes": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz",
349
+ "content-type": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz",
350
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
351
+ "depd": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz",
352
+ "http-errors": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz",
353
+ "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
354
+ "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
355
+ "qs": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz",
356
+ "raw-body": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz",
357
+ "type-is": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz"
358
+ },
359
+ "dependencies": {
360
+ "iconv-lite": {
361
+ "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
362
+ "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=",
363
+ "dev": true
364
+ },
365
+ "qs": {
366
+ "version": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz",
367
+ "integrity": "sha1-qfMRQq9GjLcrJbMBNrokVoNJFr4=",
368
+ "dev": true
369
+ }
370
+ }
371
+ },
372
+ "brace-expansion": {
373
+ "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
374
+ "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=",
375
+ "dev": true,
376
+ "requires": {
377
+ "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
378
+ "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
379
+ }
380
+ },
381
+ "braces": {
382
+ "version": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
383
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
384
+ "dev": true,
385
+ "requires": {
386
+ "expand-range": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
387
+ "preserve": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
388
+ "repeat-element": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz"
389
+ }
390
+ },
391
+ "browserslist": {
392
+ "version": "https://registry.npmjs.org/browserslist/-/browserslist-1.4.0.tgz",
393
+ "integrity": "sha1-nP3PU4TZFY9bcNoqoAsw6P8BkEk=",
394
+ "dev": true,
395
+ "requires": {
396
+ "caniuse-db": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000595.tgz"
397
+ }
398
+ },
399
+ "buffer-crc32": {
400
+ "version": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
401
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
402
+ "dev": true
403
+ },
404
+ "buffer-shims": {
405
+ "version": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
406
+ "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=",
407
+ "dev": true
408
+ },
409
+ "buffer-to-vinyl": {
410
+ "version": "https://registry.npmjs.org/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz",
411
+ "integrity": "sha1-APFfruOreh3aLN5tkSG//dB7ImI=",
412
+ "dev": true,
413
+ "requires": {
414
+ "file-type": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
415
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
416
+ "uuid": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
417
+ "vinyl": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz"
418
+ }
419
+ },
420
+ "builtin-modules": {
421
+ "version": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
422
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
423
+ "dev": true
424
+ },
425
+ "bytes": {
426
+ "version": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz",
427
+ "integrity": "sha1-/TVGSkA/b5EXwt42Cez/nK4ABYg=",
428
+ "dev": true
429
+ },
430
+ "cache-swap": {
431
+ "version": "https://registry.npmjs.org/cache-swap/-/cache-swap-0.0.6.tgz",
432
+ "integrity": "sha1-F834NebDAf0VgJCwPRzDb0Z7FpU=",
433
+ "dev": true,
434
+ "requires": {
435
+ "async": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
436
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-1.1.1.tgz",
437
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.1.4.tgz"
438
+ },
439
+ "dependencies": {
440
+ "async": {
441
+ "version": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
442
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
443
+ "dev": true
444
+ },
445
+ "lodash": {
446
+ "version": "https://registry.npmjs.org/lodash/-/lodash-1.1.1.tgz",
447
+ "integrity": "sha1-QaKy6aAOZNbRmZ8UP/awdV9ruyQ=",
448
+ "dev": true
449
+ },
450
+ "rimraf": {
451
+ "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.1.4.tgz",
452
+ "integrity": "sha1-Wm62Lu2gaPUe3lDymz5c0i89m7I=",
453
+ "dev": true,
454
+ "requires": {
455
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz"
456
+ }
457
+ }
458
+ }
459
+ },
460
+ "camelcase": {
461
+ "version": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
462
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
463
+ "dev": true
464
+ },
465
+ "camelcase-keys": {
466
+ "version": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
467
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
468
+ "dev": true,
469
+ "requires": {
470
+ "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
471
+ "map-obj": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz"
472
+ }
473
+ },
474
+ "caniuse-db": {
475
+ "version": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000595.tgz",
476
+ "integrity": "sha1-lS51bNpizU9WPIccxkAdExveQYY=",
477
+ "dev": true
478
+ },
479
+ "capture-stack-trace": {
480
+ "version": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz",
481
+ "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=",
482
+ "dev": true
483
+ },
484
+ "caw": {
485
+ "version": "https://registry.npmjs.org/caw/-/caw-1.2.0.tgz",
486
+ "integrity": "sha1-/7Im/n78VHKI3GLuPpcHPCEtEDQ=",
487
+ "dev": true,
488
+ "requires": {
489
+ "get-proxy": "https://registry.npmjs.org/get-proxy/-/get-proxy-1.1.0.tgz",
490
+ "is-obj": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
491
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
492
+ "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz"
493
+ },
494
+ "dependencies": {
495
+ "object-assign": {
496
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
497
+ "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
498
+ "dev": true
499
+ }
500
+ }
501
+ },
502
+ "chalk": {
503
+ "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
504
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
505
+ "dev": true,
506
+ "requires": {
507
+ "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
508
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
509
+ "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
510
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
511
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
512
+ },
513
+ "dependencies": {
514
+ "supports-color": {
515
+ "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
516
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
517
+ "dev": true
518
+ }
519
+ }
520
+ },
521
+ "clap": {
522
+ "version": "https://registry.npmjs.org/clap/-/clap-1.1.2.tgz",
523
+ "integrity": "sha1-MWVFvyIikiWizsqmgkzS9WqXCe0=",
524
+ "dev": true,
525
+ "optional": true,
526
+ "requires": {
527
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
528
+ }
529
+ },
530
+ "cli": {
531
+ "version": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
532
+ "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=",
533
+ "dev": true,
534
+ "requires": {
535
+ "exit": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
536
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz"
537
+ },
538
+ "dependencies": {
539
+ "glob": {
540
+ "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
541
+ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
542
+ "dev": true,
543
+ "requires": {
544
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
545
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
546
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
547
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
548
+ "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
549
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
550
+ }
551
+ },
552
+ "minimatch": {
553
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
554
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
555
+ "dev": true,
556
+ "requires": {
557
+ "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
558
+ }
559
+ }
560
+ }
561
+ },
562
+ "clone": {
563
+ "version": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
564
+ "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
565
+ "dev": true
566
+ },
567
+ "clone-stats": {
568
+ "version": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
569
+ "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
570
+ "dev": true
571
+ },
572
+ "co": {
573
+ "version": "https://registry.npmjs.org/co/-/co-3.1.0.tgz",
574
+ "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=",
575
+ "dev": true
576
+ },
577
+ "coa": {
578
+ "version": "https://registry.npmjs.org/coa/-/coa-1.0.1.tgz",
579
+ "integrity": "sha1-f5WTRs/IcZ4/cjPNaFKFSnxn2KM=",
580
+ "dev": true,
581
+ "optional": true,
582
+ "requires": {
583
+ "q": "https://registry.npmjs.org/q/-/q-1.4.1.tgz"
584
+ }
585
+ },
586
+ "coffee-script": {
587
+ "version": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
588
+ "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=",
589
+ "dev": true
590
+ },
591
+ "colors": {
592
+ "version": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
593
+ "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
594
+ "dev": true
595
+ },
596
+ "commander": {
597
+ "version": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
598
+ "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
599
+ "dev": true,
600
+ "requires": {
601
+ "graceful-readlink": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
602
+ }
603
+ },
604
+ "compress-commons": {
605
+ "version": "1.2.0",
606
+ "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.0.tgz",
607
+ "integrity": "sha1-WFhwku8g03y1i68AARLJJ4/3O58=",
608
+ "dev": true,
609
+ "requires": {
610
+ "buffer-crc32": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
611
+ "crc32-stream": "2.0.0",
612
+ "normalize-path": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz",
613
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz"
614
+ }
615
+ },
616
+ "concat-map": {
617
+ "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
618
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
619
+ "dev": true
620
+ },
621
+ "concat-stream": {
622
+ "version": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
623
+ "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
624
+ "dev": true,
625
+ "requires": {
626
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
627
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
628
+ "typedarray": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
629
+ },
630
+ "dependencies": {
631
+ "readable-stream": {
632
+ "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
633
+ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
634
+ "dev": true,
635
+ "requires": {
636
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
637
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
638
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
639
+ "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
640
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
641
+ "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
642
+ }
643
+ }
644
+ }
645
+ },
646
+ "console-browserify": {
647
+ "version": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
648
+ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
649
+ "dev": true,
650
+ "requires": {
651
+ "date-now": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz"
652
+ }
653
+ },
654
+ "console-stream": {
655
+ "version": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz",
656
+ "integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=",
657
+ "dev": true,
658
+ "optional": true
659
+ },
660
+ "content-type": {
661
+ "version": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz",
662
+ "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=",
663
+ "dev": true
664
+ },
665
+ "convert-source-map": {
666
+ "version": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.3.0.tgz",
667
+ "integrity": "sha1-6fPpxuJyjvwmdmlqcOs4L3MQamc=",
668
+ "dev": true
669
+ },
670
+ "core-util-is": {
671
+ "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
672
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
673
+ "dev": true
674
+ },
675
+ "crc": {
676
+ "version": "3.4.4",
677
+ "resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz",
678
+ "integrity": "sha1-naHpgOO9RPxck79as9ozeNheRms=",
679
+ "dev": true
680
+ },
681
+ "crc32-stream": {
682
+ "version": "2.0.0",
683
+ "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz",
684
+ "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=",
685
+ "dev": true,
686
+ "requires": {
687
+ "crc": "3.4.4",
688
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz"
689
+ }
690
+ },
691
+ "create-error-class": {
692
+ "version": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
693
+ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
694
+ "dev": true,
695
+ "requires": {
696
+ "capture-stack-trace": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz"
697
+ }
698
+ },
699
+ "cssbeautify": {
700
+ "version": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz",
701
+ "integrity": "sha1-Et0fc0A1wub6ymfcvc73TkKBE5c=",
702
+ "dev": true
703
+ },
704
+ "csscomb": {
705
+ "version": "https://registry.npmjs.org/csscomb/-/csscomb-3.1.8.tgz",
706
+ "integrity": "sha1-qKc4iE9Am6817JRhr8UuHHW9I6I=",
707
+ "dev": true,
708
+ "requires": {
709
+ "commander": "https://registry.npmjs.org/commander/-/commander-2.0.0.tgz",
710
+ "csscomb-core": "https://registry.npmjs.org/csscomb-core/-/csscomb-core-3.0.0-3.1.tgz",
711
+ "gonzales-pe": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-3.0.0-28.tgz",
712
+ "vow": "https://registry.npmjs.org/vow/-/vow-0.4.4.tgz"
713
+ },
714
+ "dependencies": {
715
+ "commander": {
716
+ "version": "https://registry.npmjs.org/commander/-/commander-2.0.0.tgz",
717
+ "integrity": "sha1-0bhvkB+LZL2UG96tr5JFMDk76Sg=",
718
+ "dev": true
719
+ }
720
+ }
721
+ },
722
+ "csscomb-core": {
723
+ "version": "https://registry.npmjs.org/csscomb-core/-/csscomb-core-3.0.0-3.1.tgz",
724
+ "integrity": "sha1-tBHI18/g3z8v4d+E0b1kpvAEbGg=",
725
+ "dev": true,
726
+ "requires": {
727
+ "gonzales-pe": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-3.0.0-28.tgz",
728
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.12.tgz",
729
+ "vow": "https://registry.npmjs.org/vow/-/vow-0.4.4.tgz",
730
+ "vow-fs": "https://registry.npmjs.org/vow-fs/-/vow-fs-0.3.2.tgz"
731
+ },
732
+ "dependencies": {
733
+ "minimatch": {
734
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.12.tgz",
735
+ "integrity": "sha1-6oKgEqxmLH3fqhRPHBR+aUb12vs=",
736
+ "dev": true,
737
+ "requires": {
738
+ "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
739
+ "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz"
740
+ }
741
+ }
742
+ }
743
+ },
744
+ "csso": {
745
+ "version": "https://registry.npmjs.org/csso/-/csso-2.0.0.tgz",
746
+ "integrity": "sha1-F4tDpEYhIhwndWCG9THgL0KQDug=",
747
+ "dev": true,
748
+ "optional": true,
749
+ "requires": {
750
+ "clap": "https://registry.npmjs.org/clap/-/clap-1.1.2.tgz",
751
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
752
+ }
753
+ },
754
+ "currently-unhandled": {
755
+ "version": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
756
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
757
+ "dev": true,
758
+ "requires": {
759
+ "array-find-index": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz"
760
+ }
761
+ },
762
+ "date-now": {
763
+ "version": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
764
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
765
+ "dev": true
766
+ },
767
+ "date-time": {
768
+ "version": "https://registry.npmjs.org/date-time/-/date-time-1.1.0.tgz",
769
+ "integrity": "sha1-GIdtC9pMGf5w3Tv0sDTygbEqQLY=",
770
+ "dev": true,
771
+ "requires": {
772
+ "time-zone": "https://registry.npmjs.org/time-zone/-/time-zone-0.1.0.tgz"
773
+ }
774
+ },
775
+ "dateformat": {
776
+ "version": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
777
+ "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=",
778
+ "dev": true
779
+ },
780
+ "debug": {
781
+ "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
782
+ "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
783
+ "dev": true,
784
+ "requires": {
785
+ "ms": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
786
+ }
787
+ },
788
+ "decamelize": {
789
+ "version": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
790
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
791
+ "dev": true
792
+ },
793
+ "decompress": {
794
+ "version": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz",
795
+ "integrity": "sha1-rx3VDQbjv8QyRh033hGzjA2ZG+0=",
796
+ "dev": true,
797
+ "requires": {
798
+ "buffer-to-vinyl": "https://registry.npmjs.org/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz",
799
+ "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
800
+ "decompress-tar": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-3.1.0.tgz",
801
+ "decompress-tarbz2": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz",
802
+ "decompress-targz": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-3.1.0.tgz",
803
+ "decompress-unzip": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-3.4.0.tgz",
804
+ "stream-combiner2": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
805
+ "vinyl-assign": "https://registry.npmjs.org/vinyl-assign/-/vinyl-assign-1.2.1.tgz",
806
+ "vinyl-fs": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz"
807
+ }
808
+ },
809
+ "decompress-tar": {
810
+ "version": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-3.1.0.tgz",
811
+ "integrity": "sha1-IXx4n5uURQ76rcXF5TeXj8MzxGY=",
812
+ "dev": true,
813
+ "requires": {
814
+ "is-tar": "https://registry.npmjs.org/is-tar/-/is-tar-1.0.0.tgz",
815
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
816
+ "strip-dirs": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-1.1.1.tgz",
817
+ "tar-stream": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.2.tgz",
818
+ "through2": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
819
+ "vinyl": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz"
820
+ },
821
+ "dependencies": {
822
+ "clone": {
823
+ "version": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
824
+ "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
825
+ "dev": true
826
+ },
827
+ "vinyl": {
828
+ "version": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
829
+ "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
830
+ "dev": true,
831
+ "requires": {
832
+ "clone": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
833
+ "clone-stats": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz"
834
+ }
835
+ }
836
+ }
837
+ },
838
+ "decompress-tarbz2": {
839
+ "version": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz",
840
+ "integrity": "sha1-iyOTVoE1X58YnYclag+L3ZbZZm0=",
841
+ "dev": true,
842
+ "requires": {
843
+ "is-bzip2": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz",
844
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
845
+ "seek-bzip": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz",
846
+ "strip-dirs": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-1.1.1.tgz",
847
+ "tar-stream": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.2.tgz",
848
+ "through2": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
849
+ "vinyl": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz"
850
+ },
851
+ "dependencies": {
852
+ "clone": {
853
+ "version": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
854
+ "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
855
+ "dev": true
856
+ },
857
+ "vinyl": {
858
+ "version": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
859
+ "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
860
+ "dev": true,
861
+ "requires": {
862
+ "clone": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
863
+ "clone-stats": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz"
864
+ }
865
+ }
866
+ }
867
+ },
868
+ "decompress-targz": {
869
+ "version": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-3.1.0.tgz",
870
+ "integrity": "sha1-ssE9+YFmJomRtxXWRH9kLpaW9aA=",
871
+ "dev": true,
872
+ "requires": {
873
+ "is-gzip": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz",
874
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
875
+ "strip-dirs": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-1.1.1.tgz",
876
+ "tar-stream": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.2.tgz",
877
+ "through2": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
878
+ "vinyl": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz"
879
+ },
880
+ "dependencies": {
881
+ "clone": {
882
+ "version": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
883
+ "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
884
+ "dev": true
885
+ },
886
+ "vinyl": {
887
+ "version": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
888
+ "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
889
+ "dev": true,
890
+ "requires": {
891
+ "clone": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
892
+ "clone-stats": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz"
893
+ }
894
+ }
895
+ }
896
+ },
897
+ "decompress-unzip": {
898
+ "version": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-3.4.0.tgz",
899
+ "integrity": "sha1-YUdbQVIGa74/7hL51inRX+ZHjus=",
900
+ "dev": true,
901
+ "requires": {
902
+ "is-zip": "https://registry.npmjs.org/is-zip/-/is-zip-1.0.0.tgz",
903
+ "read-all-stream": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
904
+ "stat-mode": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz",
905
+ "strip-dirs": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-1.1.1.tgz",
906
+ "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
907
+ "vinyl": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
908
+ "yauzl": "https://registry.npmjs.org/yauzl/-/yauzl-2.7.0.tgz"
909
+ },
910
+ "dependencies": {
911
+ "through2": {
912
+ "version": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
913
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
914
+ "dev": true,
915
+ "requires": {
916
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
917
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
918
+ }
919
+ }
920
+ }
921
+ },
922
+ "deep-extend": {
923
+ "version": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz",
924
+ "integrity": "sha1-7+QRPQgIX05vlod1mBD4B0aeIlM=",
925
+ "dev": true
926
+ },
927
+ "depd": {
928
+ "version": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz",
929
+ "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=",
930
+ "dev": true
931
+ },
932
+ "diff": {
933
+ "version": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz",
934
+ "integrity": "sha1-YOr9DSjukG5Oj/ClLBIpUhAzv5k=",
935
+ "dev": true
936
+ },
937
+ "dom-serializer": {
938
+ "version": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
939
+ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
940
+ "dev": true,
941
+ "requires": {
942
+ "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
943
+ "entities": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz"
944
+ },
945
+ "dependencies": {
946
+ "domelementtype": {
947
+ "version": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
948
+ "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
949
+ "dev": true
950
+ },
951
+ "entities": {
952
+ "version": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
953
+ "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
954
+ "dev": true
955
+ }
956
+ }
957
+ },
958
+ "domelementtype": {
959
+ "version": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
960
+ "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
961
+ "dev": true
962
+ },
963
+ "domhandler": {
964
+ "version": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
965
+ "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
966
+ "dev": true,
967
+ "requires": {
968
+ "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz"
969
+ }
970
+ },
971
+ "domutils": {
972
+ "version": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
973
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
974
+ "dev": true,
975
+ "requires": {
976
+ "dom-serializer": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
977
+ "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz"
978
+ }
979
+ },
980
+ "download": {
981
+ "version": "https://registry.npmjs.org/download/-/download-4.4.3.tgz",
982
+ "integrity": "sha1-qlX9rTktldS2jowr4D4MKqIbqaw=",
983
+ "dev": true,
984
+ "requires": {
985
+ "caw": "https://registry.npmjs.org/caw/-/caw-1.2.0.tgz",
986
+ "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
987
+ "each-async": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz",
988
+ "filenamify": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz",
989
+ "got": "https://registry.npmjs.org/got/-/got-5.7.1.tgz",
990
+ "gulp-decompress": "https://registry.npmjs.org/gulp-decompress/-/gulp-decompress-1.2.0.tgz",
991
+ "gulp-rename": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz",
992
+ "is-url": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz",
993
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
994
+ "read-all-stream": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
995
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
996
+ "stream-combiner2": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
997
+ "vinyl": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
998
+ "vinyl-fs": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz",
999
+ "ware": "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz"
1000
+ },
1001
+ "dependencies": {
1002
+ "object-assign": {
1003
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
1004
+ "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
1005
+ "dev": true
1006
+ }
1007
+ }
1008
+ },
1009
+ "duplexer2": {
1010
+ "version": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
1011
+ "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
1012
+ "dev": true,
1013
+ "requires": {
1014
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz"
1015
+ }
1016
+ },
1017
+ "duplexify": {
1018
+ "version": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz",
1019
+ "integrity": "sha1-GqdzAC4VeEV+nZ1KULDMquvL1gQ=",
1020
+ "dev": true,
1021
+ "requires": {
1022
+ "end-of-stream": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz",
1023
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1024
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
1025
+ "stream-shift": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz"
1026
+ },
1027
+ "dependencies": {
1028
+ "end-of-stream": {
1029
+ "version": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz",
1030
+ "integrity": "sha1-1FlucCc0qT5A6a+GQxnqvZn/Lw4=",
1031
+ "dev": true,
1032
+ "requires": {
1033
+ "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz"
1034
+ }
1035
+ }
1036
+ }
1037
+ },
1038
+ "each-async": {
1039
+ "version": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz",
1040
+ "integrity": "sha1-3uUim98KtrogEqOV4bhpq/iBNHM=",
1041
+ "dev": true,
1042
+ "requires": {
1043
+ "onetime": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
1044
+ "set-immediate-shim": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz"
1045
+ }
1046
+ },
1047
+ "ee-first": {
1048
+ "version": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
1049
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
1050
+ "dev": true
1051
+ },
1052
+ "encoding": {
1053
+ "version": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
1054
+ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
1055
+ "dev": true,
1056
+ "requires": {
1057
+ "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz"
1058
+ },
1059
+ "dependencies": {
1060
+ "iconv-lite": {
1061
+ "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz",
1062
+ "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=",
1063
+ "dev": true
1064
+ }
1065
+ }
1066
+ },
1067
+ "end-of-stream": {
1068
+ "version": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz",
1069
+ "integrity": "sha1-6TUyWLqpEIll78QcsO+K3i88+wc=",
1070
+ "dev": true,
1071
+ "requires": {
1072
+ "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz"
1073
+ }
1074
+ },
1075
+ "entities": {
1076
+ "version": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
1077
+ "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=",
1078
+ "dev": true
1079
+ },
1080
+ "error-ex": {
1081
+ "version": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz",
1082
+ "integrity": "sha1-5ntD8+gsluo6WE/+4Ln8MyXYAtk=",
1083
+ "dev": true,
1084
+ "requires": {
1085
+ "is-arrayish": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
1086
+ }
1087
+ },
1088
+ "escape-string-regexp": {
1089
+ "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1090
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
1091
+ "dev": true
1092
+ },
1093
+ "esprima": {
1094
+ "version": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
1095
+ "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=",
1096
+ "dev": true
1097
+ },
1098
+ "eventemitter2": {
1099
+ "version": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
1100
+ "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
1101
+ "dev": true
1102
+ },
1103
+ "exec-buffer": {
1104
+ "version": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-2.0.1.tgz",
1105
+ "integrity": "sha1-ACijG+CxRgth0HX5avRYO54zXqA=",
1106
+ "dev": true,
1107
+ "optional": true,
1108
+ "requires": {
1109
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
1110
+ "tempfile": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz"
1111
+ }
1112
+ },
1113
+ "exec-series": {
1114
+ "version": "https://registry.npmjs.org/exec-series/-/exec-series-1.0.3.tgz",
1115
+ "integrity": "sha1-bSV6m+rEgqhyx3g7yGFYOfx3FDo=",
1116
+ "dev": true,
1117
+ "optional": true,
1118
+ "requires": {
1119
+ "async-each-series": "https://registry.npmjs.org/async-each-series/-/async-each-series-1.1.0.tgz",
1120
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz"
1121
+ },
1122
+ "dependencies": {
1123
+ "object-assign": {
1124
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
1125
+ "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
1126
+ "dev": true,
1127
+ "optional": true
1128
+ }
1129
+ }
1130
+ },
1131
+ "executable": {
1132
+ "version": "https://registry.npmjs.org/executable/-/executable-1.1.0.tgz",
1133
+ "integrity": "sha1-h3mA6REvM5EGbaNyZd562ENKtNk=",
1134
+ "dev": true,
1135
+ "optional": true,
1136
+ "requires": {
1137
+ "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz"
1138
+ }
1139
+ },
1140
+ "exit": {
1141
+ "version": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
1142
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
1143
+ "dev": true
1144
+ },
1145
+ "expand-brackets": {
1146
+ "version": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
1147
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
1148
+ "dev": true,
1149
+ "requires": {
1150
+ "is-posix-bracket": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz"
1151
+ }
1152
+ },
1153
+ "expand-range": {
1154
+ "version": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
1155
+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
1156
+ "dev": true,
1157
+ "requires": {
1158
+ "fill-range": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz"
1159
+ }
1160
+ },
1161
+ "extend": {
1162
+ "version": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
1163
+ "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ=",
1164
+ "dev": true
1165
+ },
1166
+ "extend-shallow": {
1167
+ "version": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1168
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1169
+ "dev": true,
1170
+ "requires": {
1171
+ "is-extendable": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
1172
+ }
1173
+ },
1174
+ "extglob": {
1175
+ "version": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
1176
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
1177
+ "dev": true,
1178
+ "requires": {
1179
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz"
1180
+ },
1181
+ "dependencies": {
1182
+ "is-extglob": {
1183
+ "version": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
1184
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
1185
+ "dev": true
1186
+ }
1187
+ }
1188
+ },
1189
+ "fancy-log": {
1190
+ "version": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.2.0.tgz",
1191
+ "integrity": "sha1-1aUbU+mrIsoH1VjytnrlX9tfy9g=",
1192
+ "dev": true,
1193
+ "requires": {
1194
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
1195
+ "time-stamp": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.0.1.tgz"
1196
+ }
1197
+ },
1198
+ "faye-websocket": {
1199
+ "version": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
1200
+ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
1201
+ "dev": true,
1202
+ "requires": {
1203
+ "websocket-driver": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz"
1204
+ }
1205
+ },
1206
+ "fd-slicer": {
1207
+ "version": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
1208
+ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
1209
+ "dev": true,
1210
+ "requires": {
1211
+ "pend": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz"
1212
+ }
1213
+ },
1214
+ "figures": {
1215
+ "version": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
1216
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
1217
+ "dev": true,
1218
+ "requires": {
1219
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1220
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz"
1221
+ },
1222
+ "dependencies": {
1223
+ "object-assign": {
1224
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
1225
+ "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
1226
+ "dev": true
1227
+ }
1228
+ }
1229
+ },
1230
+ "file-sync-cmp": {
1231
+ "version": "0.1.1",
1232
+ "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz",
1233
+ "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=",
1234
+ "dev": true
1235
+ },
1236
+ "file-type": {
1237
+ "version": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
1238
+ "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=",
1239
+ "dev": true
1240
+ },
1241
+ "filename-regex": {
1242
+ "version": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz",
1243
+ "integrity": "sha1-mW4+gEebmLmJfxWopYs9CE6SZ3U=",
1244
+ "dev": true
1245
+ },
1246
+ "filename-reserved-regex": {
1247
+ "version": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz",
1248
+ "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=",
1249
+ "dev": true
1250
+ },
1251
+ "filenamify": {
1252
+ "version": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz",
1253
+ "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=",
1254
+ "dev": true,
1255
+ "requires": {
1256
+ "filename-reserved-regex": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz",
1257
+ "strip-outer": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.0.tgz",
1258
+ "trim-repeated": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz"
1259
+ }
1260
+ },
1261
+ "fill-range": {
1262
+ "version": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
1263
+ "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
1264
+ "dev": true,
1265
+ "requires": {
1266
+ "is-number": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
1267
+ "isobject": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
1268
+ "randomatic": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz",
1269
+ "repeat-element": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
1270
+ "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
1271
+ }
1272
+ },
1273
+ "find-up": {
1274
+ "version": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
1275
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
1276
+ "dev": true,
1277
+ "requires": {
1278
+ "path-exists": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
1279
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
1280
+ }
1281
+ },
1282
+ "find-versions": {
1283
+ "version": "https://registry.npmjs.org/find-versions/-/find-versions-1.2.1.tgz",
1284
+ "integrity": "sha1-y96fEuOFdaCvG+G5osXV/Y8Ya2I=",
1285
+ "dev": true,
1286
+ "optional": true,
1287
+ "requires": {
1288
+ "array-uniq": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
1289
+ "get-stdin": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
1290
+ "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
1291
+ "semver-regex": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz"
1292
+ }
1293
+ },
1294
+ "findup-sync": {
1295
+ "version": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
1296
+ "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=",
1297
+ "dev": true,
1298
+ "requires": {
1299
+ "glob": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
1300
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
1301
+ },
1302
+ "dependencies": {
1303
+ "glob": {
1304
+ "version": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
1305
+ "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
1306
+ "dev": true,
1307
+ "requires": {
1308
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1309
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz"
1310
+ }
1311
+ },
1312
+ "lodash": {
1313
+ "version": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
1314
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
1315
+ "dev": true
1316
+ },
1317
+ "minimatch": {
1318
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
1319
+ "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
1320
+ "dev": true,
1321
+ "requires": {
1322
+ "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
1323
+ "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz"
1324
+ }
1325
+ }
1326
+ }
1327
+ },
1328
+ "first-chunk-stream": {
1329
+ "version": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
1330
+ "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=",
1331
+ "dev": true
1332
+ },
1333
+ "for-in": {
1334
+ "version": "https://registry.npmjs.org/for-in/-/for-in-0.1.6.tgz",
1335
+ "integrity": "sha1-yfluib+tGKVFr17D7TUqHZ5bTcg=",
1336
+ "dev": true
1337
+ },
1338
+ "for-own": {
1339
+ "version": "https://registry.npmjs.org/for-own/-/for-own-0.1.4.tgz",
1340
+ "integrity": "sha1-AUm0GjkIjHUV9R6+HBOG1F+TUHI=",
1341
+ "dev": true,
1342
+ "requires": {
1343
+ "for-in": "https://registry.npmjs.org/for-in/-/for-in-0.1.6.tgz"
1344
+ }
1345
+ },
1346
+ "fs.realpath": {
1347
+ "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1348
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
1349
+ "dev": true
1350
+ },
1351
+ "gaze": {
1352
+ "version": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz",
1353
+ "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=",
1354
+ "dev": true,
1355
+ "requires": {
1356
+ "globule": "https://registry.npmjs.org/globule/-/globule-1.1.0.tgz"
1357
+ }
1358
+ },
1359
+ "get-proxy": {
1360
+ "version": "https://registry.npmjs.org/get-proxy/-/get-proxy-1.1.0.tgz",
1361
+ "integrity": "sha1-iUhUSRvFkbDxR9euVw9cZ4tyVus=",
1362
+ "dev": true,
1363
+ "requires": {
1364
+ "rc": "https://registry.npmjs.org/rc/-/rc-1.1.6.tgz"
1365
+ }
1366
+ },
1367
+ "get-stdin": {
1368
+ "version": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
1369
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
1370
+ "dev": true
1371
+ },
1372
+ "getobject": {
1373
+ "version": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
1374
+ "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
1375
+ "dev": true
1376
+ },
1377
+ "gettext-parser": {
1378
+ "version": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.1.2.tgz",
1379
+ "integrity": "sha1-zw8MnJCJrtsO5RSZKRg+ncQ1hKc=",
1380
+ "dev": true,
1381
+ "requires": {
1382
+ "encoding": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz"
1383
+ }
1384
+ },
1385
+ "gifsicle": {
1386
+ "version": "https://registry.npmjs.org/gifsicle/-/gifsicle-3.0.4.tgz",
1387
+ "integrity": "sha1-9Fy17RAWW2ZdySng6TKLbIId+js=",
1388
+ "dev": true,
1389
+ "optional": true,
1390
+ "requires": {
1391
+ "bin-build": "https://registry.npmjs.org/bin-build/-/bin-build-2.2.0.tgz",
1392
+ "bin-wrapper": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz",
1393
+ "logalot": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz"
1394
+ }
1395
+ },
1396
+ "glob": {
1397
+ "version": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
1398
+ "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
1399
+ "dev": true,
1400
+ "requires": {
1401
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
1402
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
1403
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz"
1404
+ },
1405
+ "dependencies": {
1406
+ "inherits": {
1407
+ "version": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
1408
+ "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
1409
+ "dev": true
1410
+ }
1411
+ }
1412
+ },
1413
+ "glob-base": {
1414
+ "version": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
1415
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
1416
+ "dev": true,
1417
+ "requires": {
1418
+ "glob-parent": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
1419
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
1420
+ },
1421
+ "dependencies": {
1422
+ "glob-parent": {
1423
+ "version": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
1424
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
1425
+ "dev": true,
1426
+ "requires": {
1427
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
1428
+ }
1429
+ },
1430
+ "is-extglob": {
1431
+ "version": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
1432
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
1433
+ "dev": true
1434
+ },
1435
+ "is-glob": {
1436
+ "version": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
1437
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
1438
+ "dev": true,
1439
+ "requires": {
1440
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz"
1441
+ }
1442
+ }
1443
+ }
1444
+ },
1445
+ "glob-parent": {
1446
+ "version": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.0.1.tgz",
1447
+ "integrity": "sha1-YAITJ8yWPdw7XwhXZPUAR57Ngv8=",
1448
+ "dev": true,
1449
+ "requires": {
1450
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
1451
+ "path-dirname": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz"
1452
+ }
1453
+ },
1454
+ "glob-stream": {
1455
+ "version": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz",
1456
+ "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=",
1457
+ "dev": true,
1458
+ "requires": {
1459
+ "extend": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
1460
+ "glob": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
1461
+ "glob-parent": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.0.1.tgz",
1462
+ "micromatch": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
1463
+ "ordered-read-streams": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz",
1464
+ "through2": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
1465
+ "to-absolute-glob": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz",
1466
+ "unique-stream": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz"
1467
+ },
1468
+ "dependencies": {
1469
+ "glob": {
1470
+ "version": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
1471
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
1472
+ "dev": true,
1473
+ "requires": {
1474
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1475
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1476
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
1477
+ "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
1478
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
1479
+ }
1480
+ },
1481
+ "minimatch": {
1482
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
1483
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
1484
+ "dev": true,
1485
+ "requires": {
1486
+ "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
1487
+ }
1488
+ }
1489
+ }
1490
+ },
1491
+ "globule": {
1492
+ "version": "https://registry.npmjs.org/globule/-/globule-1.1.0.tgz",
1493
+ "integrity": "sha1-xJNS5NwYPYWJPuglOF65lLtt9F8=",
1494
+ "dev": true,
1495
+ "requires": {
1496
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
1497
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz",
1498
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz"
1499
+ },
1500
+ "dependencies": {
1501
+ "glob": {
1502
+ "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
1503
+ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
1504
+ "dev": true,
1505
+ "requires": {
1506
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1507
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1508
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1509
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
1510
+ "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
1511
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
1512
+ }
1513
+ },
1514
+ "lodash": {
1515
+ "version": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz",
1516
+ "integrity": "sha1-0iyaxmAojzhD4Wun0rXQbMon13c=",
1517
+ "dev": true
1518
+ },
1519
+ "minimatch": {
1520
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
1521
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
1522
+ "dev": true,
1523
+ "requires": {
1524
+ "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
1525
+ }
1526
+ }
1527
+ }
1528
+ },
1529
+ "glogg": {
1530
+ "version": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz",
1531
+ "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=",
1532
+ "dev": true,
1533
+ "requires": {
1534
+ "sparkles": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz"
1535
+ }
1536
+ },
1537
+ "gonzales-pe": {
1538
+ "version": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-3.0.0-28.tgz",
1539
+ "integrity": "sha1-3VC0HdFbaCooxA5fD/IAeQGsYr0=",
1540
+ "dev": true
1541
+ },
1542
+ "got": {
1543
+ "version": "https://registry.npmjs.org/got/-/got-5.7.1.tgz",
1544
+ "integrity": "sha1-X4FjWmHkplifGAVp6k44FoClHzU=",
1545
+ "dev": true,
1546
+ "requires": {
1547
+ "create-error-class": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
1548
+ "duplexer2": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
1549
+ "is-redirect": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
1550
+ "is-retry-allowed": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
1551
+ "is-stream": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
1552
+ "lowercase-keys": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
1553
+ "node-status-codes": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz",
1554
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
1555
+ "parse-json": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
1556
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
1557
+ "read-all-stream": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
1558
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
1559
+ "timed-out": "https://registry.npmjs.org/timed-out/-/timed-out-3.0.0.tgz",
1560
+ "unzip-response": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz",
1561
+ "url-parse-lax": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz"
1562
+ },
1563
+ "dependencies": {
1564
+ "object-assign": {
1565
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
1566
+ "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
1567
+ "dev": true
1568
+ }
1569
+ }
1570
+ },
1571
+ "graceful-fs": {
1572
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
1573
+ "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
1574
+ "dev": true
1575
+ },
1576
+ "graceful-readlink": {
1577
+ "version": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
1578
+ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
1579
+ "dev": true
1580
+ },
1581
+ "grunt": {
1582
+ "version": "1.0.1",
1583
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.1.tgz",
1584
+ "integrity": "sha1-6HeHZOlEsY8yuw8QuQeEdcnftWs=",
1585
+ "dev": true,
1586
+ "requires": {
1587
+ "coffee-script": "1.10.0",
1588
+ "dateformat": "1.0.12",
1589
+ "eventemitter2": "0.4.14",
1590
+ "exit": "0.1.2",
1591
+ "findup-sync": "0.3.0",
1592
+ "glob": "7.0.6",
1593
+ "grunt-cli": "1.2.0",
1594
+ "grunt-known-options": "1.1.0",
1595
+ "grunt-legacy-log": "1.0.0",
1596
+ "grunt-legacy-util": "1.0.0",
1597
+ "iconv-lite": "0.4.15",
1598
+ "js-yaml": "3.5.5",
1599
+ "minimatch": "3.0.3",
1600
+ "nopt": "3.0.6",
1601
+ "path-is-absolute": "1.0.1",
1602
+ "rimraf": "2.2.8"
1603
+ },
1604
+ "dependencies": {
1605
+ "coffee-script": {
1606
+ "version": "1.10.0",
1607
+ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.10.0.tgz",
1608
+ "integrity": "sha1-EpOLz5vhlI+gBvkuDEyegXBRCMA=",
1609
+ "dev": true
1610
+ },
1611
+ "dateformat": {
1612
+ "version": "1.0.12",
1613
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
1614
+ "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
1615
+ "dev": true,
1616
+ "requires": {
1617
+ "get-stdin": "4.0.1",
1618
+ "meow": "3.7.0"
1619
+ },
1620
+ "dependencies": {
1621
+ "get-stdin": {
1622
+ "version": "4.0.1",
1623
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
1624
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
1625
+ "dev": true
1626
+ },
1627
+ "meow": {
1628
+ "version": "3.7.0",
1629
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
1630
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
1631
+ "dev": true,
1632
+ "requires": {
1633
+ "camelcase-keys": "2.1.0",
1634
+ "decamelize": "1.2.0",
1635
+ "loud-rejection": "1.6.0",
1636
+ "map-obj": "1.0.1",
1637
+ "minimist": "1.2.0",
1638
+ "normalize-package-data": "2.3.6",
1639
+ "object-assign": "4.1.1",
1640
+ "read-pkg-up": "1.0.1",
1641
+ "redent": "1.0.0",
1642
+ "trim-newlines": "1.0.0"
1643
+ },
1644
+ "dependencies": {
1645
+ "camelcase-keys": {
1646
+ "version": "2.1.0",
1647
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
1648
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
1649
+ "dev": true,
1650
+ "requires": {
1651
+ "camelcase": "2.1.1",
1652
+ "map-obj": "1.0.1"
1653
+ },
1654
+ "dependencies": {
1655
+ "camelcase": {
1656
+ "version": "2.1.1",
1657
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
1658
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
1659
+ "dev": true
1660
+ }
1661
+ }
1662
+ },
1663
+ "decamelize": {
1664
+ "version": "1.2.0",
1665
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
1666
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
1667
+ "dev": true
1668
+ },
1669
+ "loud-rejection": {
1670
+ "version": "1.6.0",
1671
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
1672
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
1673
+ "dev": true,
1674
+ "requires": {
1675
+ "currently-unhandled": "0.4.1",
1676
+ "signal-exit": "3.0.2"
1677
+ },
1678
+ "dependencies": {
1679
+ "currently-unhandled": {
1680
+ "version": "0.4.1",
1681
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
1682
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
1683
+ "dev": true,
1684
+ "requires": {
1685
+ "array-find-index": "1.0.2"
1686
+ },
1687
+ "dependencies": {
1688
+ "array-find-index": {
1689
+ "version": "1.0.2",
1690
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
1691
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
1692
+ "dev": true
1693
+ }
1694
+ }
1695
+ },
1696
+ "signal-exit": {
1697
+ "version": "3.0.2",
1698
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
1699
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
1700
+ "dev": true
1701
+ }
1702
+ }
1703
+ },
1704
+ "map-obj": {
1705
+ "version": "1.0.1",
1706
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
1707
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
1708
+ "dev": true
1709
+ },
1710
+ "minimist": {
1711
+ "version": "1.2.0",
1712
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
1713
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
1714
+ "dev": true
1715
+ },
1716
+ "normalize-package-data": {
1717
+ "version": "2.3.6",
1718
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.6.tgz",
1719
+ "integrity": "sha1-SY+kIMlkAfeHQCuiHmAN75+YH/8=",
1720
+ "dev": true,
1721
+ "requires": {
1722
+ "hosted-git-info": "2.4.1",
1723
+ "is-builtin-module": "1.0.0",
1724
+ "semver": "5.3.0",
1725
+ "validate-npm-package-license": "3.0.1"
1726
+ },
1727
+ "dependencies": {
1728
+ "hosted-git-info": {
1729
+ "version": "2.4.1",
1730
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.1.tgz",
1731
+ "integrity": "sha1-SwRF5BwASovRM3dzpP95DKQDGMg=",
1732
+ "dev": true
1733
+ },
1734
+ "is-builtin-module": {
1735
+ "version": "1.0.0",
1736
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
1737
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
1738
+ "dev": true,
1739
+ "requires": {
1740
+ "builtin-modules": "1.1.1"
1741
+ },
1742
+ "dependencies": {
1743
+ "builtin-modules": {
1744
+ "version": "1.1.1",
1745
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
1746
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
1747
+ "dev": true
1748
+ }
1749
+ }
1750
+ },
1751
+ "semver": {
1752
+ "version": "5.3.0",
1753
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
1754
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
1755
+ "dev": true
1756
+ },
1757
+ "validate-npm-package-license": {
1758
+ "version": "3.0.1",
1759
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
1760
+ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
1761
+ "dev": true,
1762
+ "requires": {
1763
+ "spdx-correct": "1.0.2",
1764
+ "spdx-expression-parse": "1.0.4"
1765
+ },
1766
+ "dependencies": {
1767
+ "spdx-correct": {
1768
+ "version": "1.0.2",
1769
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
1770
+ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
1771
+ "dev": true,
1772
+ "requires": {
1773
+ "spdx-license-ids": "1.2.2"
1774
+ },
1775
+ "dependencies": {
1776
+ "spdx-license-ids": {
1777
+ "version": "1.2.2",
1778
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
1779
+ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
1780
+ "dev": true
1781
+ }
1782
+ }
1783
+ },
1784
+ "spdx-expression-parse": {
1785
+ "version": "1.0.4",
1786
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
1787
+ "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
1788
+ "dev": true
1789
+ }
1790
+ }
1791
+ }
1792
+ }
1793
+ },
1794
+ "object-assign": {
1795
+ "version": "4.1.1",
1796
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1797
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
1798
+ "dev": true
1799
+ },
1800
+ "read-pkg-up": {
1801
+ "version": "1.0.1",
1802
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
1803
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
1804
+ "dev": true,
1805
+ "requires": {
1806
+ "find-up": "1.1.2",
1807
+ "read-pkg": "1.1.0"
1808
+ },
1809
+ "dependencies": {
1810
+ "find-up": {
1811
+ "version": "1.1.2",
1812
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
1813
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
1814
+ "dev": true,
1815
+ "requires": {
1816
+ "path-exists": "2.1.0",
1817
+ "pinkie-promise": "2.0.1"
1818
+ },
1819
+ "dependencies": {
1820
+ "path-exists": {
1821
+ "version": "2.1.0",
1822
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
1823
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
1824
+ "dev": true,
1825
+ "requires": {
1826
+ "pinkie-promise": "2.0.1"
1827
+ }
1828
+ },
1829
+ "pinkie-promise": {
1830
+ "version": "2.0.1",
1831
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
1832
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
1833
+ "dev": true,
1834
+ "requires": {
1835
+ "pinkie": "2.0.4"
1836
+ },
1837
+ "dependencies": {
1838
+ "pinkie": {
1839
+ "version": "2.0.4",
1840
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
1841
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
1842
+ "dev": true
1843
+ }
1844
+ }
1845
+ }
1846
+ }
1847
+ },
1848
+ "read-pkg": {
1849
+ "version": "1.1.0",
1850
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
1851
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
1852
+ "dev": true,
1853
+ "requires": {
1854
+ "load-json-file": "1.1.0",
1855
+ "normalize-package-data": "2.3.6",
1856
+ "path-type": "1.1.0"
1857
+ },
1858
+ "dependencies": {
1859
+ "load-json-file": {
1860
+ "version": "1.1.0",
1861
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
1862
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
1863
+ "dev": true,
1864
+ "requires": {
1865
+ "graceful-fs": "4.1.11",
1866
+ "parse-json": "2.2.0",
1867
+ "pify": "2.3.0",
1868
+ "pinkie-promise": "2.0.1",
1869
+ "strip-bom": "2.0.0"
1870
+ },
1871
+ "dependencies": {
1872
+ "graceful-fs": {
1873
+ "version": "4.1.11",
1874
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
1875
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
1876
+ "dev": true
1877
+ },
1878
+ "parse-json": {
1879
+ "version": "2.2.0",
1880
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
1881
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
1882
+ "dev": true,
1883
+ "requires": {
1884
+ "error-ex": "1.3.1"
1885
+ },
1886
+ "dependencies": {
1887
+ "error-ex": {
1888
+ "version": "1.3.1",
1889
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
1890
+ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
1891
+ "dev": true,
1892
+ "requires": {
1893
+ "is-arrayish": "0.2.1"
1894
+ },
1895
+ "dependencies": {
1896
+ "is-arrayish": {
1897
+ "version": "0.2.1",
1898
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
1899
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
1900
+ "dev": true
1901
+ }
1902
+ }
1903
+ }
1904
+ }
1905
+ },
1906
+ "pify": {
1907
+ "version": "2.3.0",
1908
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
1909
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
1910
+ "dev": true
1911
+ },
1912
+ "pinkie-promise": {
1913
+ "version": "2.0.1",
1914
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
1915
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
1916
+ "dev": true,
1917
+ "requires": {
1918
+ "pinkie": "2.0.4"
1919
+ },
1920
+ "dependencies": {
1921
+ "pinkie": {
1922
+ "version": "2.0.4",
1923
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
1924
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
1925
+ "dev": true
1926
+ }
1927
+ }
1928
+ },
1929
+ "strip-bom": {
1930
+ "version": "2.0.0",
1931
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
1932
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
1933
+ "dev": true,
1934
+ "requires": {
1935
+ "is-utf8": "0.2.1"
1936
+ },
1937
+ "dependencies": {
1938
+ "is-utf8": {
1939
+ "version": "0.2.1",
1940
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
1941
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
1942
+ "dev": true
1943
+ }
1944
+ }
1945
+ }
1946
+ }
1947
+ },
1948
+ "path-type": {
1949
+ "version": "1.1.0",
1950
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
1951
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
1952
+ "dev": true,
1953
+ "requires": {
1954
+ "graceful-fs": "4.1.11",
1955
+ "pify": "2.3.0",
1956
+ "pinkie-promise": "2.0.1"
1957
+ },
1958
+ "dependencies": {
1959
+ "graceful-fs": {
1960
+ "version": "4.1.11",
1961
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
1962
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
1963
+ "dev": true
1964
+ },
1965
+ "pify": {
1966
+ "version": "2.3.0",
1967
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
1968
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
1969
+ "dev": true
1970
+ },
1971
+ "pinkie-promise": {
1972
+ "version": "2.0.1",
1973
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
1974
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
1975
+ "dev": true,
1976
+ "requires": {
1977
+ "pinkie": "2.0.4"
1978
+ },
1979
+ "dependencies": {
1980
+ "pinkie": {
1981
+ "version": "2.0.4",
1982
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
1983
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
1984
+ "dev": true
1985
+ }
1986
+ }
1987
+ }
1988
+ }
1989
+ }
1990
+ }
1991
+ }
1992
+ }
1993
+ },
1994
+ "redent": {
1995
+ "version": "1.0.0",
1996
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
1997
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
1998
+ "dev": true,
1999
+ "requires": {
2000
+ "indent-string": "2.1.0",
2001
+ "strip-indent": "1.0.1"
2002
+ },
2003
+ "dependencies": {
2004
+ "indent-string": {
2005
+ "version": "2.1.0",
2006
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
2007
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
2008
+ "dev": true,
2009
+ "requires": {
2010
+ "repeating": "2.0.1"
2011
+ },
2012
+ "dependencies": {
2013
+ "repeating": {
2014
+ "version": "2.0.1",
2015
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
2016
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
2017
+ "dev": true,
2018
+ "requires": {
2019
+ "is-finite": "1.0.2"
2020
+ },
2021
+ "dependencies": {
2022
+ "is-finite": {
2023
+ "version": "1.0.2",
2024
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
2025
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
2026
+ "dev": true,
2027
+ "requires": {
2028
+ "number-is-nan": "1.0.1"
2029
+ },
2030
+ "dependencies": {
2031
+ "number-is-nan": {
2032
+ "version": "1.0.1",
2033
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
2034
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
2035
+ "dev": true
2036
+ }
2037
+ }
2038
+ }
2039
+ }
2040
+ }
2041
+ }
2042
+ },
2043
+ "strip-indent": {
2044
+ "version": "1.0.1",
2045
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
2046
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
2047
+ "dev": true,
2048
+ "requires": {
2049
+ "get-stdin": "4.0.1"
2050
+ }
2051
+ }
2052
+ }
2053
+ },
2054
+ "trim-newlines": {
2055
+ "version": "1.0.0",
2056
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
2057
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
2058
+ "dev": true
2059
+ }
2060
+ }
2061
+ }
2062
+ }
2063
+ },
2064
+ "eventemitter2": {
2065
+ "version": "0.4.14",
2066
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
2067
+ "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
2068
+ "dev": true
2069
+ },
2070
+ "exit": {
2071
+ "version": "0.1.2",
2072
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
2073
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
2074
+ "dev": true
2075
+ },
2076
+ "findup-sync": {
2077
+ "version": "0.3.0",
2078
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
2079
+ "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=",
2080
+ "dev": true,
2081
+ "requires": {
2082
+ "glob": "5.0.15"
2083
+ },
2084
+ "dependencies": {
2085
+ "glob": {
2086
+ "version": "5.0.15",
2087
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
2088
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
2089
+ "dev": true,
2090
+ "requires": {
2091
+ "inflight": "1.0.6",
2092
+ "inherits": "2.0.3",
2093
+ "minimatch": "3.0.3",
2094
+ "once": "1.4.0",
2095
+ "path-is-absolute": "1.0.1"
2096
+ },
2097
+ "dependencies": {
2098
+ "inflight": {
2099
+ "version": "1.0.6",
2100
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2101
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2102
+ "dev": true,
2103
+ "requires": {
2104
+ "once": "1.4.0",
2105
+ "wrappy": "1.0.2"
2106
+ },
2107
+ "dependencies": {
2108
+ "wrappy": {
2109
+ "version": "1.0.2",
2110
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2111
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2112
+ "dev": true
2113
+ }
2114
+ }
2115
+ },
2116
+ "inherits": {
2117
+ "version": "2.0.3",
2118
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
2119
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
2120
+ "dev": true
2121
+ },
2122
+ "once": {
2123
+ "version": "1.4.0",
2124
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2125
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
2126
+ "dev": true,
2127
+ "requires": {
2128
+ "wrappy": "1.0.2"
2129
+ },
2130
+ "dependencies": {
2131
+ "wrappy": {
2132
+ "version": "1.0.2",
2133
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2134
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2135
+ "dev": true
2136
+ }
2137
+ }
2138
+ }
2139
+ }
2140
+ }
2141
+ }
2142
+ },
2143
+ "glob": {
2144
+ "version": "7.0.6",
2145
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
2146
+ "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
2147
+ "dev": true,
2148
+ "requires": {
2149
+ "fs.realpath": "1.0.0",
2150
+ "inflight": "1.0.6",
2151
+ "inherits": "2.0.3",
2152
+ "minimatch": "3.0.3",
2153
+ "once": "1.4.0",
2154
+ "path-is-absolute": "1.0.1"
2155
+ },
2156
+ "dependencies": {
2157
+ "fs.realpath": {
2158
+ "version": "1.0.0",
2159
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2160
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
2161
+ "dev": true
2162
+ },
2163
+ "inflight": {
2164
+ "version": "1.0.6",
2165
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2166
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2167
+ "dev": true,
2168
+ "requires": {
2169
+ "once": "1.4.0",
2170
+ "wrappy": "1.0.2"
2171
+ },
2172
+ "dependencies": {
2173
+ "wrappy": {
2174
+ "version": "1.0.2",
2175
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2176
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2177
+ "dev": true
2178
+ }
2179
+ }
2180
+ },
2181
+ "inherits": {
2182
+ "version": "2.0.3",
2183
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
2184
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
2185
+ "dev": true
2186
+ },
2187
+ "once": {
2188
+ "version": "1.4.0",
2189
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2190
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
2191
+ "dev": true,
2192
+ "requires": {
2193
+ "wrappy": "1.0.2"
2194
+ },
2195
+ "dependencies": {
2196
+ "wrappy": {
2197
+ "version": "1.0.2",
2198
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2199
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2200
+ "dev": true
2201
+ }
2202
+ }
2203
+ }
2204
+ }
2205
+ },
2206
+ "grunt-cli": {
2207
+ "version": "1.2.0",
2208
+ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz",
2209
+ "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=",
2210
+ "dev": true,
2211
+ "requires": {
2212
+ "findup-sync": "0.3.0",
2213
+ "grunt-known-options": "1.1.0",
2214
+ "nopt": "3.0.6",
2215
+ "resolve": "1.1.7"
2216
+ },
2217
+ "dependencies": {
2218
+ "resolve": {
2219
+ "version": "1.1.7",
2220
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
2221
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
2222
+ "dev": true
2223
+ }
2224
+ }
2225
+ },
2226
+ "grunt-known-options": {
2227
+ "version": "1.1.0",
2228
+ "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz",
2229
+ "integrity": "sha1-pCdO6zL6dl2lp6OxcSYXzjsUQUk=",
2230
+ "dev": true
2231
+ },
2232
+ "grunt-legacy-log": {
2233
+ "version": "1.0.0",
2234
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-1.0.0.tgz",
2235
+ "integrity": "sha1-+4bxgJhHvAfcR4Q/ns1srLYt8tU=",
2236
+ "dev": true,
2237
+ "requires": {
2238
+ "colors": "1.1.2",
2239
+ "grunt-legacy-log-utils": "1.0.0",
2240
+ "hooker": "0.2.3",
2241
+ "lodash": "3.10.1",
2242
+ "underscore.string": "3.2.3"
2243
+ },
2244
+ "dependencies": {
2245
+ "colors": {
2246
+ "version": "1.1.2",
2247
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
2248
+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
2249
+ "dev": true
2250
+ },
2251
+ "grunt-legacy-log-utils": {
2252
+ "version": "1.0.0",
2253
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz",
2254
+ "integrity": "sha1-p7ji0Ps1taUPSvmG/BEnSevJbz0=",
2255
+ "dev": true,
2256
+ "requires": {
2257
+ "chalk": "1.1.3",
2258
+ "lodash": "4.3.0"
2259
+ },
2260
+ "dependencies": {
2261
+ "chalk": {
2262
+ "version": "1.1.3",
2263
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
2264
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
2265
+ "dev": true,
2266
+ "requires": {
2267
+ "ansi-styles": "2.2.1",
2268
+ "escape-string-regexp": "1.0.5",
2269
+ "has-ansi": "2.0.0",
2270
+ "strip-ansi": "3.0.1",
2271
+ "supports-color": "2.0.0"
2272
+ },
2273
+ "dependencies": {
2274
+ "ansi-styles": {
2275
+ "version": "2.2.1",
2276
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
2277
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
2278
+ "dev": true
2279
+ },
2280
+ "escape-string-regexp": {
2281
+ "version": "1.0.5",
2282
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
2283
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
2284
+ "dev": true
2285
+ },
2286
+ "has-ansi": {
2287
+ "version": "2.0.0",
2288
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
2289
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
2290
+ "dev": true,
2291
+ "requires": {
2292
+ "ansi-regex": "2.1.1"
2293
+ },
2294
+ "dependencies": {
2295
+ "ansi-regex": {
2296
+ "version": "2.1.1",
2297
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
2298
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
2299
+ "dev": true
2300
+ }
2301
+ }
2302
+ },
2303
+ "strip-ansi": {
2304
+ "version": "3.0.1",
2305
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
2306
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
2307
+ "dev": true,
2308
+ "requires": {
2309
+ "ansi-regex": "2.1.1"
2310
+ },
2311
+ "dependencies": {
2312
+ "ansi-regex": {
2313
+ "version": "2.1.1",
2314
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
2315
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
2316
+ "dev": true
2317
+ }
2318
+ }
2319
+ },
2320
+ "supports-color": {
2321
+ "version": "2.0.0",
2322
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
2323
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
2324
+ "dev": true
2325
+ }
2326
+ }
2327
+ },
2328
+ "lodash": {
2329
+ "version": "4.3.0",
2330
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz",
2331
+ "integrity": "sha1-79nEpuxT87BUEkKZFcPkgk5NJaQ=",
2332
+ "dev": true
2333
+ }
2334
+ }
2335
+ },
2336
+ "hooker": {
2337
+ "version": "0.2.3",
2338
+ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
2339
+ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
2340
+ "dev": true
2341
+ },
2342
+ "lodash": {
2343
+ "version": "3.10.1",
2344
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
2345
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
2346
+ "dev": true
2347
+ },
2348
+ "underscore.string": {
2349
+ "version": "3.2.3",
2350
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz",
2351
+ "integrity": "sha1-gGmSYzZl1eX8tNsfs6hi62jp5to=",
2352
+ "dev": true
2353
+ }
2354
+ }
2355
+ },
2356
+ "grunt-legacy-util": {
2357
+ "version": "1.0.0",
2358
+ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz",
2359
+ "integrity": "sha1-OGqnjcbtUJhsKxiVcmWxtIq7m4Y=",
2360
+ "dev": true,
2361
+ "requires": {
2362
+ "async": "1.5.2",
2363
+ "exit": "0.1.2",
2364
+ "getobject": "0.1.0",
2365
+ "hooker": "0.2.3",
2366
+ "lodash": "4.3.0",
2367
+ "underscore.string": "3.2.3",
2368
+ "which": "1.2.14"
2369
+ },
2370
+ "dependencies": {
2371
+ "async": {
2372
+ "version": "1.5.2",
2373
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
2374
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
2375
+ "dev": true
2376
+ },
2377
+ "getobject": {
2378
+ "version": "0.1.0",
2379
+ "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
2380
+ "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
2381
+ "dev": true
2382
+ },
2383
+ "hooker": {
2384
+ "version": "0.2.3",
2385
+ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
2386
+ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
2387
+ "dev": true
2388
+ },
2389
+ "lodash": {
2390
+ "version": "4.3.0",
2391
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz",
2392
+ "integrity": "sha1-79nEpuxT87BUEkKZFcPkgk5NJaQ=",
2393
+ "dev": true
2394
+ },
2395
+ "underscore.string": {
2396
+ "version": "3.2.3",
2397
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz",
2398
+ "integrity": "sha1-gGmSYzZl1eX8tNsfs6hi62jp5to=",
2399
+ "dev": true
2400
+ },
2401
+ "which": {
2402
+ "version": "1.2.14",
2403
+ "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
2404
+ "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=",
2405
+ "dev": true,
2406
+ "requires": {
2407
+ "isexe": "2.0.0"
2408
+ },
2409
+ "dependencies": {
2410
+ "isexe": {
2411
+ "version": "2.0.0",
2412
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2413
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
2414
+ "dev": true
2415
+ }
2416
+ }
2417
+ }
2418
+ }
2419
+ },
2420
+ "iconv-lite": {
2421
+ "version": "0.4.15",
2422
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz",
2423
+ "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=",
2424
+ "dev": true
2425
+ },
2426
+ "js-yaml": {
2427
+ "version": "3.5.5",
2428
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz",
2429
+ "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=",
2430
+ "dev": true,
2431
+ "requires": {
2432
+ "argparse": "1.0.9",
2433
+ "esprima": "2.7.3"
2434
+ },
2435
+ "dependencies": {
2436
+ "argparse": {
2437
+ "version": "1.0.9",
2438
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
2439
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
2440
+ "dev": true,
2441
+ "requires": {
2442
+ "sprintf-js": "1.0.3"
2443
+ },
2444
+ "dependencies": {
2445
+ "sprintf-js": {
2446
+ "version": "1.0.3",
2447
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
2448
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
2449
+ "dev": true
2450
+ }
2451
+ }
2452
+ },
2453
+ "esprima": {
2454
+ "version": "2.7.3",
2455
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
2456
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
2457
+ "dev": true
2458
+ }
2459
+ }
2460
+ },
2461
+ "minimatch": {
2462
+ "version": "3.0.3",
2463
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
2464
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
2465
+ "dev": true,
2466
+ "requires": {
2467
+ "brace-expansion": "1.1.6"
2468
+ },
2469
+ "dependencies": {
2470
+ "brace-expansion": {
2471
+ "version": "1.1.6",
2472
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
2473
+ "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=",
2474
+ "dev": true,
2475
+ "requires": {
2476
+ "balanced-match": "0.4.2",
2477
+ "concat-map": "0.0.1"
2478
+ },
2479
+ "dependencies": {
2480
+ "balanced-match": {
2481
+ "version": "0.4.2",
2482
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
2483
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
2484
+ "dev": true
2485
+ },
2486
+ "concat-map": {
2487
+ "version": "0.0.1",
2488
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
2489
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
2490
+ "dev": true
2491
+ }
2492
+ }
2493
+ }
2494
+ }
2495
+ },
2496
+ "nopt": {
2497
+ "version": "3.0.6",
2498
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
2499
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
2500
+ "dev": true,
2501
+ "requires": {
2502
+ "abbrev": "1.1.0"
2503
+ },
2504
+ "dependencies": {
2505
+ "abbrev": {
2506
+ "version": "1.1.0",
2507
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
2508
+ "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=",
2509
+ "dev": true
2510
+ }
2511
+ }
2512
+ },
2513
+ "path-is-absolute": {
2514
+ "version": "1.0.1",
2515
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2516
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
2517
+ "dev": true
2518
+ },
2519
+ "rimraf": {
2520
+ "version": "2.2.8",
2521
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
2522
+ "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
2523
+ "dev": true
2524
+ }
2525
+ }
2526
+ },
2527
+ "grunt-checktextdomain": {
2528
+ "version": "https://registry.npmjs.org/grunt-checktextdomain/-/grunt-checktextdomain-1.0.1.tgz",
2529
+ "integrity": "sha1-slTQHh3pEwBdTbHFMD2QI7mD4Zs=",
2530
+ "dev": true,
2531
+ "requires": {
2532
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-0.2.1.tgz",
2533
+ "text-table": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
2534
+ },
2535
+ "dependencies": {
2536
+ "ansi-styles": {
2537
+ "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-0.2.0.tgz",
2538
+ "integrity": "sha1-NZq0sV3NZLptdHNLcsNjYKmvLBk=",
2539
+ "dev": true
2540
+ },
2541
+ "chalk": {
2542
+ "version": "https://registry.npmjs.org/chalk/-/chalk-0.2.1.tgz",
2543
+ "integrity": "sha1-dhPhV1FFshOGSD9/SFql/6jL0Qw=",
2544
+ "dev": true,
2545
+ "requires": {
2546
+ "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-0.2.0.tgz",
2547
+ "has-color": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz"
2548
+ }
2549
+ }
2550
+ }
2551
+ },
2552
+ "grunt-contrib-compress": {
2553
+ "version": "1.4.3",
2554
+ "resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-1.4.3.tgz",
2555
+ "integrity": "sha1-Ac7/ucY39S5wgfRjdQmD0KOw+nM=",
2556
+ "dev": true,
2557
+ "requires": {
2558
+ "archiver": "1.3.0",
2559
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
2560
+ "iltorb": "1.3.5",
2561
+ "lodash": "4.17.4",
2562
+ "pretty-bytes": "4.0.2",
2563
+ "stream-buffers": "2.2.0"
2564
+ },
2565
+ "dependencies": {
2566
+ "lodash": {
2567
+ "version": "4.17.4",
2568
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
2569
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
2570
+ "dev": true
2571
+ },
2572
+ "pretty-bytes": {
2573
+ "version": "4.0.2",
2574
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz",
2575
+ "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=",
2576
+ "dev": true
2577
+ }
2578
+ }
2579
+ },
2580
+ "grunt-contrib-copy": {
2581
+ "version": "1.0.0",
2582
+ "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz",
2583
+ "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=",
2584
+ "dev": true,
2585
+ "requires": {
2586
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
2587
+ "file-sync-cmp": "0.1.1"
2588
+ }
2589
+ },
2590
+ "grunt-contrib-imagemin": {
2591
+ "version": "https://registry.npmjs.org/grunt-contrib-imagemin/-/grunt-contrib-imagemin-1.0.1.tgz",
2592
+ "integrity": "sha1-5Ho1YTN29MqpwfkERlA8rhyUTXk=",
2593
+ "dev": true,
2594
+ "requires": {
2595
+ "async": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
2596
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
2597
+ "gulp-rename": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz",
2598
+ "imagemin": "https://registry.npmjs.org/imagemin/-/imagemin-4.0.0.tgz",
2599
+ "pretty-bytes": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz"
2600
+ },
2601
+ "dependencies": {
2602
+ "async": {
2603
+ "version": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
2604
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
2605
+ "dev": true
2606
+ }
2607
+ }
2608
+ },
2609
+ "grunt-contrib-jshint": {
2610
+ "version": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz",
2611
+ "integrity": "sha1-Np2QmyWTxA6L55lAshNAhQx5Oaw=",
2612
+ "dev": true,
2613
+ "requires": {
2614
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
2615
+ "hooker": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
2616
+ "jshint": "https://registry.npmjs.org/jshint/-/jshint-2.9.4.tgz"
2617
+ }
2618
+ },
2619
+ "grunt-contrib-watch": {
2620
+ "version": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.0.0.tgz",
2621
+ "integrity": "sha1-hKGnodar0m7VaEE0lscxM+mQAY8=",
2622
+ "dev": true,
2623
+ "requires": {
2624
+ "async": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
2625
+ "gaze": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz",
2626
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
2627
+ "tiny-lr": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.2.1.tgz"
2628
+ },
2629
+ "dependencies": {
2630
+ "async": {
2631
+ "version": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
2632
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
2633
+ "dev": true
2634
+ },
2635
+ "lodash": {
2636
+ "version": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
2637
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
2638
+ "dev": true
2639
+ }
2640
+ }
2641
+ },
2642
+ "grunt-legacy-log": {
2643
+ "version": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
2644
+ "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=",
2645
+ "dev": true,
2646
+ "requires": {
2647
+ "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
2648
+ "grunt-legacy-log-utils": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz",
2649
+ "hooker": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
2650
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
2651
+ "underscore.string": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz"
2652
+ },
2653
+ "dependencies": {
2654
+ "lodash": {
2655
+ "version": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
2656
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
2657
+ "dev": true
2658
+ },
2659
+ "underscore.string": {
2660
+ "version": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
2661
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
2662
+ "dev": true
2663
+ }
2664
+ }
2665
+ },
2666
+ "grunt-legacy-log-utils": {
2667
+ "version": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz",
2668
+ "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=",
2669
+ "dev": true,
2670
+ "requires": {
2671
+ "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
2672
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
2673
+ "underscore.string": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz"
2674
+ },
2675
+ "dependencies": {
2676
+ "lodash": {
2677
+ "version": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
2678
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
2679
+ "dev": true
2680
+ },
2681
+ "underscore.string": {
2682
+ "version": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
2683
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
2684
+ "dev": true
2685
+ }
2686
+ }
2687
+ },
2688
+ "grunt-legacy-util": {
2689
+ "version": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
2690
+ "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=",
2691
+ "dev": true,
2692
+ "requires": {
2693
+ "async": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
2694
+ "exit": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
2695
+ "getobject": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
2696
+ "hooker": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
2697
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
2698
+ "underscore.string": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
2699
+ "which": "https://registry.npmjs.org/which/-/which-1.0.9.tgz"
2700
+ }
2701
+ },
2702
+ "grunt-mkdir": {
2703
+ "version": "https://registry.npmjs.org/grunt-mkdir/-/grunt-mkdir-1.0.0.tgz",
2704
+ "integrity": "sha1-c+GiasJKCFljY/TdlUsNMkheWOk=",
2705
+ "dev": true
2706
+ },
2707
+ "grunt-newer": {
2708
+ "version": "https://registry.npmjs.org/grunt-newer/-/grunt-newer-1.2.0.tgz",
2709
+ "integrity": "sha1-d/geavt6grP5HBQTc2GZjViGaEE=",
2710
+ "dev": true,
2711
+ "requires": {
2712
+ "async": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
2713
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz"
2714
+ },
2715
+ "dependencies": {
2716
+ "async": {
2717
+ "version": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
2718
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
2719
+ "dev": true
2720
+ },
2721
+ "glob": {
2722
+ "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
2723
+ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
2724
+ "dev": true,
2725
+ "requires": {
2726
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2727
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2728
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
2729
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
2730
+ "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
2731
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
2732
+ }
2733
+ },
2734
+ "minimatch": {
2735
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
2736
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
2737
+ "dev": true,
2738
+ "requires": {
2739
+ "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
2740
+ }
2741
+ },
2742
+ "rimraf": {
2743
+ "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz",
2744
+ "integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=",
2745
+ "dev": true,
2746
+ "requires": {
2747
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz"
2748
+ }
2749
+ }
2750
+ }
2751
+ },
2752
+ "grunt-phpcbf": {
2753
+ "version": "0.1.1",
2754
+ "resolved": "https://registry.npmjs.org/grunt-phpcbf/-/grunt-phpcbf-0.1.1.tgz",
2755
+ "integrity": "sha1-imRoKbRUW19gE1hGh/TkAQT/NcI=",
2756
+ "dev": true
2757
+ },
2758
+ "grunt-phpcs": {
2759
+ "version": "0.4.0",
2760
+ "resolved": "https://registry.npmjs.org/grunt-phpcs/-/grunt-phpcs-0.4.0.tgz",
2761
+ "integrity": "sha1-oI1iX8ZEZeRTsr2T+BCyqB6Uvao=",
2762
+ "dev": true
2763
+ },
2764
+ "grunt-phplint": {
2765
+ "version": "https://registry.npmjs.org/grunt-phplint/-/grunt-phplint-0.0.8.tgz",
2766
+ "integrity": "sha1-wSeqKP930jnBSgHwUMx7cVnOkMA=",
2767
+ "dev": true,
2768
+ "requires": {
2769
+ "cache-swap": "https://registry.npmjs.org/cache-swap/-/cache-swap-0.0.6.tgz",
2770
+ "grunt": "0.4.5"
2771
+ },
2772
+ "dependencies": {
2773
+ "grunt": {
2774
+ "version": "0.4.5",
2775
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
2776
+ "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=",
2777
+ "dev": true,
2778
+ "requires": {
2779
+ "async": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
2780
+ "coffee-script": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
2781
+ "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
2782
+ "dateformat": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
2783
+ "eventemitter2": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
2784
+ "exit": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
2785
+ "findup-sync": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
2786
+ "getobject": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
2787
+ "glob": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
2788
+ "grunt-legacy-log": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
2789
+ "grunt-legacy-util": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
2790
+ "hooker": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
2791
+ "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
2792
+ "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
2793
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
2794
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
2795
+ "nopt": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
2796
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
2797
+ "underscore.string": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
2798
+ "which": "https://registry.npmjs.org/which/-/which-1.0.9.tgz"
2799
+ }
2800
+ }
2801
+ }
2802
+ },
2803
+ "grunt-phpunit": {
2804
+ "version": "0.3.6",
2805
+ "resolved": "https://registry.npmjs.org/grunt-phpunit/-/grunt-phpunit-0.3.6.tgz",
2806
+ "integrity": "sha1-DnW+5rXC5l/aRQdWcqBs6yzs2Gk=",
2807
+ "dev": true
2808
+ },
2809
+ "grunt-plugin-fleet": {
2810
+ "version": "github:codeinwp/grunt-plugin-fleet#87c827f61ae910cfbd8305499b49fa1583412a8d",
2811
+ "dev": true,
2812
+ "requires": {
2813
+ "autoprefixer": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.5.3.tgz",
2814
+ "grunt": "0.4.5",
2815
+ "grunt-checktextdomain": "https://registry.npmjs.org/grunt-checktextdomain/-/grunt-checktextdomain-1.0.1.tgz",
2816
+ "grunt-contrib-compress": "1.4.3",
2817
+ "grunt-contrib-copy": "1.0.0",
2818
+ "grunt-contrib-imagemin": "https://registry.npmjs.org/grunt-contrib-imagemin/-/grunt-contrib-imagemin-1.0.1.tgz",
2819
+ "grunt-contrib-jshint": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz",
2820
+ "grunt-contrib-watch": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.0.0.tgz",
2821
+ "grunt-mkdir": "https://registry.npmjs.org/grunt-mkdir/-/grunt-mkdir-1.0.0.tgz",
2822
+ "grunt-newer": "https://registry.npmjs.org/grunt-newer/-/grunt-newer-1.2.0.tgz",
2823
+ "grunt-phpcbf": "0.1.1",
2824
+ "grunt-phpcs": "0.4.0",
2825
+ "grunt-phplint": "https://registry.npmjs.org/grunt-phplint/-/grunt-phplint-0.0.8.tgz",
2826
+ "grunt-phpunit": "0.3.6",
2827
+ "grunt-postcss": "https://registry.npmjs.org/grunt-postcss/-/grunt-postcss-0.8.0.tgz",
2828
+ "grunt-rsync": "2.0.1",
2829
+ "grunt-sync": "https://registry.npmjs.org/grunt-sync/-/grunt-sync-0.6.2.tgz",
2830
+ "grunt-text-replace": "https://registry.npmjs.org/grunt-text-replace/-/grunt-text-replace-0.4.0.tgz",
2831
+ "grunt-version": "https://registry.npmjs.org/grunt-version/-/grunt-version-1.1.1.tgz",
2832
+ "grunt-wp-css": "https://registry.npmjs.org/grunt-wp-css/-/grunt-wp-css-0.2.1.tgz",
2833
+ "grunt-wp-i18n": "https://registry.npmjs.org/grunt-wp-i18n/-/grunt-wp-i18n-0.5.4.tgz",
2834
+ "time-grunt": "https://registry.npmjs.org/time-grunt/-/time-grunt-1.4.0.tgz"
2835
+ },
2836
+ "dependencies": {
2837
+ "grunt": {
2838
+ "version": "0.4.5",
2839
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
2840
+ "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=",
2841
+ "dev": true,
2842
+ "requires": {
2843
+ "async": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
2844
+ "coffee-script": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
2845
+ "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
2846
+ "dateformat": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
2847
+ "eventemitter2": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
2848
+ "exit": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
2849
+ "findup-sync": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
2850
+ "getobject": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
2851
+ "glob": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
2852
+ "grunt-legacy-log": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
2853
+ "grunt-legacy-util": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
2854
+ "hooker": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
2855
+ "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
2856
+ "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
2857
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
2858
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
2859
+ "nopt": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
2860
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
2861
+ "underscore.string": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
2862
+ "which": "https://registry.npmjs.org/which/-/which-1.0.9.tgz"
2863
+ }
2864
+ }
2865
+ }
2866
+ },
2867
+ "grunt-postcss": {
2868
+ "version": "https://registry.npmjs.org/grunt-postcss/-/grunt-postcss-0.8.0.tgz",
2869
+ "integrity": "sha1-jzCor2B5A84MRfAfC+QsYOMc6w4=",
2870
+ "dev": true,
2871
+ "requires": {
2872
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
2873
+ "diff": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz",
2874
+ "postcss": "https://registry.npmjs.org/postcss/-/postcss-5.2.6.tgz"
2875
+ }
2876
+ },
2877
+ "grunt-rsync": {
2878
+ "version": "2.0.1",
2879
+ "resolved": "https://registry.npmjs.org/grunt-rsync/-/grunt-rsync-2.0.1.tgz",
2880
+ "integrity": "sha1-uX3RVCFqzItJJFYFPuuzUlym+R8=",
2881
+ "dev": true,
2882
+ "requires": {
2883
+ "rsyncwrapper": "2.0.1"
2884
+ }
2885
+ },
2886
+ "grunt-sync": {
2887
+ "version": "https://registry.npmjs.org/grunt-sync/-/grunt-sync-0.6.2.tgz",
2888
+ "integrity": "sha1-2ay2W0IF0Be9ZGLkn+wtkHGs5Hs=",
2889
+ "dev": true,
2890
+ "requires": {
2891
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
2892
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz",
2893
+ "md5-file": "https://registry.npmjs.org/md5-file/-/md5-file-2.0.7.tgz",
2894
+ "promised-io": "https://registry.npmjs.org/promised-io/-/promised-io-0.3.5.tgz"
2895
+ },
2896
+ "dependencies": {
2897
+ "glob": {
2898
+ "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
2899
+ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
2900
+ "dev": true,
2901
+ "requires": {
2902
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2903
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2904
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
2905
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
2906
+ "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
2907
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
2908
+ }
2909
+ },
2910
+ "lodash": {
2911
+ "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz",
2912
+ "integrity": "sha1-NKMFW6vgTOQkZ7YH1wAHLH/2v0I=",
2913
+ "dev": true
2914
+ },
2915
+ "minimatch": {
2916
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
2917
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
2918
+ "dev": true,
2919
+ "requires": {
2920
+ "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
2921
+ }
2922
+ }
2923
+ }
2924
+ },
2925
+ "grunt-text-replace": {
2926
+ "version": "https://registry.npmjs.org/grunt-text-replace/-/grunt-text-replace-0.4.0.tgz",
2927
+ "integrity": "sha1-252c5Z4v5J2id+nbwZXD4Rz7FsI=",
2928
+ "dev": true
2929
+ },
2930
+ "grunt-version": {
2931
+ "version": "https://registry.npmjs.org/grunt-version/-/grunt-version-1.1.1.tgz",
2932
+ "integrity": "sha1-C58oAhLKPITKhEGmiK0aB6R05vM=",
2933
+ "dev": true,
2934
+ "requires": {
2935
+ "grunt": "1.0.1",
2936
+ "semver": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz"
2937
+ },
2938
+ "dependencies": {
2939
+ "semver": {
2940
+ "version": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
2941
+ "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
2942
+ "dev": true
2943
+ }
2944
+ }
2945
+ },
2946
+ "grunt-wp-css": {
2947
+ "version": "https://registry.npmjs.org/grunt-wp-css/-/grunt-wp-css-0.2.1.tgz",
2948
+ "integrity": "sha1-cC7ZaZzXyQCjQGwgQaHSg1WIf2s=",
2949
+ "dev": true,
2950
+ "requires": {
2951
+ "cssbeautify": "https://registry.npmjs.org/cssbeautify/-/cssbeautify-0.3.1.tgz",
2952
+ "csscomb": "https://registry.npmjs.org/csscomb/-/csscomb-3.1.8.tgz",
2953
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz"
2954
+ },
2955
+ "dependencies": {
2956
+ "lodash": {
2957
+ "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz",
2958
+ "integrity": "sha1-NKMFW6vgTOQkZ7YH1wAHLH/2v0I=",
2959
+ "dev": true
2960
+ }
2961
+ }
2962
+ },
2963
+ "grunt-wp-i18n": {
2964
+ "version": "https://registry.npmjs.org/grunt-wp-i18n/-/grunt-wp-i18n-0.5.4.tgz",
2965
+ "integrity": "sha1-hynlrU9LIxJpch8xcWVNLGKVVJI=",
2966
+ "dev": true,
2967
+ "requires": {
2968
+ "async": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
2969
+ "gettext-parser": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.1.2.tgz",
2970
+ "grunt": "0.4.5",
2971
+ "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
2972
+ "underscore.string": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.0.3.tgz"
2973
+ },
2974
+ "dependencies": {
2975
+ "async": {
2976
+ "version": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
2977
+ "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
2978
+ "dev": true
2979
+ },
2980
+ "grunt": {
2981
+ "version": "0.4.5",
2982
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
2983
+ "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=",
2984
+ "dev": true,
2985
+ "requires": {
2986
+ "async": "0.1.22",
2987
+ "coffee-script": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
2988
+ "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
2989
+ "dateformat": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
2990
+ "eventemitter2": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
2991
+ "exit": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
2992
+ "findup-sync": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
2993
+ "getobject": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
2994
+ "glob": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
2995
+ "grunt-legacy-log": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
2996
+ "grunt-legacy-util": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
2997
+ "hooker": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
2998
+ "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
2999
+ "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
3000
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
3001
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
3002
+ "nopt": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
3003
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
3004
+ "underscore.string": "2.2.1",
3005
+ "which": "https://registry.npmjs.org/which/-/which-1.0.9.tgz"
3006
+ },
3007
+ "dependencies": {
3008
+ "async": {
3009
+ "version": "0.1.22",
3010
+ "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
3011
+ "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
3012
+ "dev": true
3013
+ },
3014
+ "underscore.string": {
3015
+ "version": "2.2.1",
3016
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
3017
+ "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=",
3018
+ "dev": true
3019
+ }
3020
+ }
3021
+ },
3022
+ "underscore": {
3023
+ "version": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
3024
+ "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=",
3025
+ "dev": true
3026
+ },
3027
+ "underscore.string": {
3028
+ "version": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.0.3.tgz",
3029
+ "integrity": "sha1-Rhe4waJQz25QZPu7Nj0PqWzxRVI=",
3030
+ "dev": true
3031
+ }
3032
+ }
3033
+ },
3034
+ "gulp-decompress": {
3035
+ "version": "https://registry.npmjs.org/gulp-decompress/-/gulp-decompress-1.2.0.tgz",
3036
+ "integrity": "sha1-jutlpeAV+O2FMsr+KEVJYGJvDcc=",
3037
+ "dev": true,
3038
+ "requires": {
3039
+ "archive-type": "https://registry.npmjs.org/archive-type/-/archive-type-3.2.0.tgz",
3040
+ "decompress": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz",
3041
+ "gulp-util": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.7.tgz",
3042
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz"
3043
+ }
3044
+ },
3045
+ "gulp-rename": {
3046
+ "version": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz",
3047
+ "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=",
3048
+ "dev": true
3049
+ },
3050
+ "gulp-sourcemaps": {
3051
+ "version": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz",
3052
+ "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=",
3053
+ "dev": true,
3054
+ "requires": {
3055
+ "convert-source-map": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.3.0.tgz",
3056
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
3057
+ "strip-bom": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
3058
+ "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
3059
+ "vinyl": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz"
3060
+ },
3061
+ "dependencies": {
3062
+ "graceful-fs": {
3063
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
3064
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
3065
+ "dev": true
3066
+ },
3067
+ "through2": {
3068
+ "version": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
3069
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
3070
+ "dev": true,
3071
+ "requires": {
3072
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
3073
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
3074
+ }
3075
+ }
3076
+ }
3077
+ },
3078
+ "gulp-util": {
3079
+ "version": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.7.tgz",
3080
+ "integrity": "sha1-eJJcS4+LSQBawBoBHFV+YhiUHLs=",
3081
+ "dev": true,
3082
+ "requires": {
3083
+ "array-differ": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
3084
+ "array-uniq": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
3085
+ "beeper": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
3086
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
3087
+ "dateformat": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
3088
+ "fancy-log": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.2.0.tgz",
3089
+ "gulplog": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
3090
+ "has-gulplog": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
3091
+ "lodash._reescape": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
3092
+ "lodash._reevaluate": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
3093
+ "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
3094
+ "lodash.template": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
3095
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
3096
+ "multipipe": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
3097
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
3098
+ "replace-ext": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
3099
+ "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
3100
+ "vinyl": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz"
3101
+ },
3102
+ "dependencies": {
3103
+ "dateformat": {
3104
+ "version": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
3105
+ "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
3106
+ "dev": true,
3107
+ "requires": {
3108
+ "get-stdin": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
3109
+ "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz"
3110
+ }
3111
+ },
3112
+ "object-assign": {
3113
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
3114
+ "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
3115
+ "dev": true
3116
+ },
3117
+ "through2": {
3118
+ "version": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
3119
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
3120
+ "dev": true,
3121
+ "requires": {
3122
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
3123
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
3124
+ }
3125
+ },
3126
+ "vinyl": {
3127
+ "version": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
3128
+ "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
3129
+ "dev": true,
3130
+ "requires": {
3131
+ "clone": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
3132
+ "clone-stats": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
3133
+ "replace-ext": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz"
3134
+ }
3135
+ }
3136
+ }
3137
+ },
3138
+ "gulplog": {
3139
+ "version": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
3140
+ "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
3141
+ "dev": true,
3142
+ "requires": {
3143
+ "glogg": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz"
3144
+ }
3145
+ },
3146
+ "has-ansi": {
3147
+ "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
3148
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
3149
+ "dev": true,
3150
+ "requires": {
3151
+ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz"
3152
+ }
3153
+ },
3154
+ "has-color": {
3155
+ "version": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
3156
+ "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=",
3157
+ "dev": true
3158
+ },
3159
+ "has-flag": {
3160
+ "version": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
3161
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
3162
+ "dev": true
3163
+ },
3164
+ "has-gulplog": {
3165
+ "version": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
3166
+ "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
3167
+ "dev": true,
3168
+ "requires": {
3169
+ "sparkles": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz"
3170
+ }
3171
+ },
3172
+ "hooker": {
3173
+ "version": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
3174
+ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
3175
+ "dev": true
3176
+ },
3177
+ "hosted-git-info": {
3178
+ "version": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz",
3179
+ "integrity": "sha1-C6gdkNouJas0ozLm7HeTbhWYEYs=",
3180
+ "dev": true
3181
+ },
3182
+ "htmlparser2": {
3183
+ "version": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
3184
+ "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
3185
+ "dev": true,
3186
+ "requires": {
3187
+ "domelementtype": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
3188
+ "domhandler": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
3189
+ "domutils": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
3190
+ "entities": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
3191
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz"
3192
+ },
3193
+ "dependencies": {
3194
+ "isarray": {
3195
+ "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
3196
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
3197
+ "dev": true
3198
+ },
3199
+ "readable-stream": {
3200
+ "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
3201
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
3202
+ "dev": true,
3203
+ "requires": {
3204
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
3205
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
3206
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
3207
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
3208
+ }
3209
+ }
3210
+ }
3211
+ },
3212
+ "http-errors": {
3213
+ "version": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz",
3214
+ "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=",
3215
+ "dev": true,
3216
+ "requires": {
3217
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
3218
+ "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz"
3219
+ }
3220
+ },
3221
+ "iconv-lite": {
3222
+ "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
3223
+ "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=",
3224
+ "dev": true
3225
+ },
3226
+ "iltorb": {
3227
+ "version": "1.3.5",
3228
+ "resolved": "https://registry.npmjs.org/iltorb/-/iltorb-1.3.5.tgz",
3229
+ "integrity": "sha512-ICC02apBTK7ganmU9nEBiHGaeEnlUP0wsBfdyRqnZLaxjt2iRkPin/Pft7ig75gjwoAjtlwFrELqIp8UoAz0mw==",
3230
+ "dev": true,
3231
+ "optional": true,
3232
+ "requires": {
3233
+ "nan": "2.7.0",
3234
+ "node-pre-gyp": "0.6.36"
3235
+ },
3236
+ "dependencies": {
3237
+ "abbrev": {
3238
+ "version": "1.1.0",
3239
+ "bundled": true,
3240
+ "dev": true,
3241
+ "optional": true
3242
+ },
3243
+ "ajv": {
3244
+ "version": "4.11.8",
3245
+ "bundled": true,
3246
+ "dev": true,
3247
+ "optional": true,
3248
+ "requires": {
3249
+ "co": "4.6.0",
3250
+ "json-stable-stringify": "1.0.1"
3251
+ }
3252
+ },
3253
+ "ansi-regex": {
3254
+ "version": "2.1.1",
3255
+ "bundled": true,
3256
+ "dev": true
3257
+ },
3258
+ "aproba": {
3259
+ "version": "1.1.2",
3260
+ "bundled": true,
3261
+ "dev": true,
3262
+ "optional": true
3263
+ },
3264
+ "are-we-there-yet": {
3265
+ "version": "1.1.4",
3266
+ "bundled": true,
3267
+ "dev": true,
3268
+ "optional": true,
3269
+ "requires": {
3270
+ "delegates": "1.0.0",
3271
+ "readable-stream": "2.3.1"
3272
+ }
3273
+ },
3274
+ "asn1": {
3275
+ "version": "0.2.3",
3276
+ "bundled": true,
3277
+ "dev": true,
3278
+ "optional": true
3279
+ },
3280
+ "assert-plus": {
3281
+ "version": "1.0.0",
3282
+ "bundled": true,
3283
+ "dev": true
3284
+ },
3285
+ "asynckit": {
3286
+ "version": "0.4.0",
3287
+ "bundled": true,
3288
+ "dev": true,
3289
+ "optional": true
3290
+ },
3291
+ "aws-sign2": {
3292
+ "version": "0.6.0",
3293
+ "bundled": true,
3294
+ "dev": true,
3295
+ "optional": true
3296
+ },
3297
+ "aws4": {
3298
+ "version": "1.6.0",
3299
+ "bundled": true,
3300
+ "dev": true,
3301
+ "optional": true
3302
+ },
3303
+ "balanced-match": {
3304
+ "version": "1.0.0",
3305
+ "bundled": true,
3306
+ "dev": true
3307
+ },
3308
+ "bcrypt-pbkdf": {
3309
+ "version": "1.0.1",
3310
+ "bundled": true,
3311
+ "dev": true,
3312
+ "optional": true,
3313
+ "requires": {
3314
+ "tweetnacl": "0.14.5"
3315
+ }
3316
+ },
3317
+ "block-stream": {
3318
+ "version": "0.0.9",
3319
+ "bundled": true,
3320
+ "dev": true,
3321
+ "requires": {
3322
+ "inherits": "2.0.3"
3323
+ }
3324
+ },
3325
+ "boom": {
3326
+ "version": "2.10.1",
3327
+ "bundled": true,
3328
+ "dev": true,
3329
+ "requires": {
3330
+ "hoek": "2.16.3"
3331
+ }
3332
+ },
3333
+ "brace-expansion": {
3334
+ "version": "1.1.8",
3335
+ "bundled": true,
3336
+ "dev": true,
3337
+ "requires": {
3338
+ "balanced-match": "1.0.0",
3339
+ "concat-map": "0.0.1"
3340
+ }
3341
+ },
3342
+ "caseless": {
3343
+ "version": "0.12.0",
3344
+ "bundled": true,
3345
+ "dev": true,
3346
+ "optional": true
3347
+ },
3348
+ "co": {
3349
+ "version": "4.6.0",
3350
+ "bundled": true,
3351
+ "dev": true,
3352
+ "optional": true
3353
+ },
3354
+ "code-point-at": {
3355
+ "version": "1.1.0",
3356
+ "bundled": true,
3357
+ "dev": true
3358
+ },
3359
+ "combined-stream": {
3360
+ "version": "1.0.5",
3361
+ "bundled": true,
3362
+ "dev": true,
3363
+ "requires": {
3364
+ "delayed-stream": "1.0.0"
3365
+ }
3366
+ },
3367
+ "concat-map": {
3368
+ "version": "0.0.1",
3369
+ "bundled": true,
3370
+ "dev": true
3371
+ },
3372
+ "console-control-strings": {
3373
+ "version": "1.1.0",
3374
+ "bundled": true,
3375
+ "dev": true
3376
+ },
3377
+ "core-util-is": {
3378
+ "version": "1.0.2",
3379
+ "bundled": true,
3380
+ "dev": true
3381
+ },
3382
+ "cryptiles": {
3383
+ "version": "2.0.5",
3384
+ "bundled": true,
3385
+ "dev": true,
3386
+ "optional": true,
3387
+ "requires": {
3388
+ "boom": "2.10.1"
3389
+ }
3390
+ },
3391
+ "dashdash": {
3392
+ "version": "1.14.1",
3393
+ "bundled": true,
3394
+ "dev": true,
3395
+ "optional": true,
3396
+ "requires": {
3397
+ "assert-plus": "1.0.0"
3398
+ }
3399
+ },
3400
+ "debug": {
3401
+ "version": "2.6.0",
3402
+ "bundled": true,
3403
+ "dev": true,
3404
+ "optional": true,
3405
+ "requires": {
3406
+ "ms": "0.7.2"
3407
+ }
3408
+ },
3409
+ "deep-extend": {
3410
+ "version": "0.4.2",
3411
+ "bundled": true,
3412
+ "dev": true,
3413
+ "optional": true
3414
+ },
3415
+ "delayed-stream": {
3416
+ "version": "1.0.0",
3417
+ "bundled": true,
3418
+ "dev": true
3419
+ },
3420
+ "delegates": {
3421
+ "version": "1.0.0",
3422
+ "bundled": true,
3423
+ "dev": true,
3424
+ "optional": true
3425
+ },
3426
+ "ecc-jsbn": {
3427
+ "version": "0.1.1",
3428
+ "bundled": true,
3429
+ "dev": true,
3430
+ "optional": true,
3431
+ "requires": {
3432
+ "jsbn": "0.1.1"
3433
+ }
3434
+ },
3435
+ "extend": {
3436
+ "version": "3.0.1",
3437
+ "bundled": true,
3438
+ "dev": true,
3439
+ "optional": true
3440
+ },
3441
+ "extsprintf": {
3442
+ "version": "1.0.2",
3443
+ "bundled": true,
3444
+ "dev": true
3445
+ },
3446
+ "forever-agent": {
3447
+ "version": "0.6.1",
3448
+ "bundled": true,
3449
+ "dev": true,
3450
+ "optional": true
3451
+ },
3452
+ "form-data": {
3453
+ "version": "2.1.4",
3454
+ "bundled": true,
3455
+ "dev": true,
3456
+ "optional": true,
3457
+ "requires": {
3458
+ "asynckit": "0.4.0",
3459
+ "combined-stream": "1.0.5",
3460
+ "mime-types": "2.1.15"
3461
+ }
3462
+ },
3463
+ "fs.realpath": {
3464
+ "version": "1.0.0",
3465
+ "bundled": true,
3466
+ "dev": true
3467
+ },
3468
+ "fstream": {
3469
+ "version": "1.0.11",
3470
+ "bundled": true,
3471
+ "dev": true,
3472
+ "requires": {
3473
+ "graceful-fs": "4.1.11",
3474
+ "inherits": "2.0.3",
3475
+ "mkdirp": "0.5.1",
3476
+ "rimraf": "2.6.1"
3477
+ }
3478
+ },
3479
+ "fstream-ignore": {
3480
+ "version": "1.0.5",
3481
+ "bundled": true,
3482
+ "dev": true,
3483
+ "optional": true,
3484
+ "requires": {
3485
+ "fstream": "1.0.11",
3486
+ "inherits": "2.0.3",
3487
+ "minimatch": "3.0.4"
3488
+ }
3489
+ },
3490
+ "gauge": {
3491
+ "version": "2.7.4",
3492
+ "bundled": true,
3493
+ "dev": true,
3494
+ "optional": true,
3495
+ "requires": {
3496
+ "aproba": "1.1.2",
3497
+ "console-control-strings": "1.1.0",
3498
+ "has-unicode": "2.0.1",
3499
+ "object-assign": "4.1.1",
3500
+ "signal-exit": "3.0.2",
3501
+ "string-width": "1.0.2",
3502
+ "strip-ansi": "3.0.1",
3503
+ "wide-align": "1.1.2"
3504
+ }
3505
+ },
3506
+ "getpass": {
3507
+ "version": "0.1.7",
3508
+ "bundled": true,
3509
+ "dev": true,
3510
+ "optional": true,
3511
+ "requires": {
3512
+ "assert-plus": "1.0.0"
3513
+ }
3514
+ },
3515
+ "glob": {
3516
+ "version": "7.1.1",
3517
+ "bundled": true,
3518
+ "dev": true,
3519
+ "requires": {
3520
+ "fs.realpath": "1.0.0",
3521
+ "inflight": "1.0.6",
3522
+ "inherits": "2.0.3",
3523
+ "minimatch": "3.0.4",
3524
+ "once": "1.4.0",
3525
+ "path-is-absolute": "1.0.1"
3526
+ }
3527
+ },
3528
+ "graceful-fs": {
3529
+ "version": "4.1.11",
3530
+ "bundled": true,
3531
+ "dev": true
3532
+ },
3533
+ "har-schema": {
3534
+ "version": "1.0.5",
3535
+ "bundled": true,
3536
+ "dev": true,
3537
+ "optional": true
3538
+ },
3539
+ "har-validator": {
3540
+ "version": "4.2.1",
3541
+ "bundled": true,
3542
+ "dev": true,
3543
+ "optional": true,
3544
+ "requires": {
3545
+ "ajv": "4.11.8",
3546
+ "har-schema": "1.0.5"
3547
+ }
3548
+ },
3549
+ "has-unicode": {
3550
+ "version": "2.0.1",
3551
+ "bundled": true,
3552
+ "dev": true,
3553
+ "optional": true
3554
+ },
3555
+ "hawk": {
3556
+ "version": "3.1.3",
3557
+ "bundled": true,
3558
+ "dev": true,
3559
+ "optional": true,
3560
+ "requires": {
3561
+ "boom": "2.10.1",
3562
+ "cryptiles": "2.0.5",
3563
+ "hoek": "2.16.3",
3564
+ "sntp": "1.0.9"
3565
+ }
3566
+ },
3567
+ "hoek": {
3568
+ "version": "2.16.3",
3569
+ "bundled": true,
3570
+ "dev": true
3571
+ },
3572
+ "http-signature": {
3573
+ "version": "1.1.1",
3574
+ "bundled": true,
3575
+ "dev": true,
3576
+ "optional": true,
3577
+ "requires": {
3578
+ "assert-plus": "0.2.0",
3579
+ "jsprim": "1.4.0",
3580
+ "sshpk": "1.13.1"
3581
+ },
3582
+ "dependencies": {
3583
+ "assert-plus": {
3584
+ "version": "0.2.0",
3585
+ "bundled": true,
3586
+ "dev": true,
3587
+ "optional": true
3588
+ }
3589
+ }
3590
+ },
3591
+ "inflight": {
3592
+ "version": "1.0.6",
3593
+ "bundled": true,
3594
+ "dev": true,
3595
+ "requires": {
3596
+ "once": "1.4.0",
3597
+ "wrappy": "1.0.2"
3598
+ }
3599
+ },
3600
+ "inherits": {
3601
+ "version": "2.0.3",
3602
+ "bundled": true,
3603
+ "dev": true
3604
+ },
3605
+ "ini": {
3606
+ "version": "1.3.4",
3607
+ "bundled": true,
3608
+ "dev": true,
3609
+ "optional": true
3610
+ },
3611
+ "is-fullwidth-code-point": {
3612
+ "version": "1.0.0",
3613
+ "bundled": true,
3614
+ "dev": true,
3615
+ "requires": {
3616
+ "number-is-nan": "1.0.1"
3617
+ }
3618
+ },
3619
+ "is-typedarray": {
3620
+ "version": "1.0.0",
3621
+ "bundled": true,
3622
+ "dev": true,
3623
+ "optional": true
3624
+ },
3625
+ "isarray": {
3626
+ "version": "1.0.0",
3627
+ "bundled": true,
3628
+ "dev": true
3629
+ },
3630
+ "isstream": {
3631
+ "version": "0.1.2",
3632
+ "bundled": true,
3633
+ "dev": true,
3634
+ "optional": true
3635
+ },
3636
+ "jsbn": {
3637
+ "version": "0.1.1",
3638
+ "bundled": true,
3639
+ "dev": true,
3640
+ "optional": true
3641
+ },
3642
+ "json-schema": {
3643
+ "version": "0.2.3",
3644
+ "bundled": true,
3645
+ "dev": true,
3646
+ "optional": true
3647
+ },
3648
+ "json-stable-stringify": {
3649
+ "version": "1.0.1",
3650
+ "bundled": true,
3651
+ "dev": true,
3652
+ "optional": true,
3653
+ "requires": {
3654
+ "jsonify": "0.0.0"
3655
+ }
3656
+ },
3657
+ "json-stringify-safe": {
3658
+ "version": "5.0.1",
3659
+ "bundled": true,
3660
+ "dev": true,
3661
+ "optional": true
3662
+ },
3663
+ "jsonify": {
3664
+ "version": "0.0.0",
3665
+ "bundled": true,
3666
+ "dev": true,
3667
+ "optional": true
3668
+ },
3669
+ "jsprim": {
3670
+ "version": "1.4.0",
3671
+ "bundled": true,
3672
+ "dev": true,
3673
+ "optional": true,
3674
+ "requires": {
3675
+ "assert-plus": "1.0.0",
3676
+ "extsprintf": "1.0.2",
3677
+ "json-schema": "0.2.3",
3678
+ "verror": "1.3.6"
3679
+ }
3680
+ },
3681
+ "mime-db": {
3682
+ "version": "1.27.0",
3683
+ "bundled": true,
3684
+ "dev": true
3685
+ },
3686
+ "mime-types": {
3687
+ "version": "2.1.15",
3688
+ "bundled": true,
3689
+ "dev": true,
3690
+ "requires": {
3691
+ "mime-db": "1.27.0"
3692
+ }
3693
+ },
3694
+ "minimatch": {
3695
+ "version": "3.0.4",
3696
+ "bundled": true,
3697
+ "dev": true,
3698
+ "requires": {
3699
+ "brace-expansion": "1.1.8"
3700
+ }
3701
+ },
3702
+ "minimist": {
3703
+ "version": "0.0.8",
3704
+ "bundled": true,
3705
+ "dev": true
3706
+ },
3707
+ "mkdirp": {
3708
+ "version": "0.5.1",
3709
+ "bundled": true,
3710
+ "dev": true,
3711
+ "requires": {
3712
+ "minimist": "0.0.8"
3713
+ }
3714
+ },
3715
+ "ms": {
3716
+ "version": "0.7.2",
3717
+ "bundled": true,
3718
+ "dev": true,
3719
+ "optional": true
3720
+ },
3721
+ "node-pre-gyp": {
3722
+ "version": "0.6.36",
3723
+ "bundled": true,
3724
+ "dev": true,
3725
+ "optional": true,
3726
+ "requires": {
3727
+ "mkdirp": "0.5.1",
3728
+ "nopt": "4.0.1",
3729
+ "npmlog": "4.1.0",
3730
+ "rc": "1.2.1",
3731
+ "request": "2.81.0",
3732
+ "rimraf": "2.6.1",
3733
+ "semver": "5.3.0",
3734
+ "tar": "2.2.1",
3735
+ "tar-pack": "3.4.0"
3736
+ }
3737
+ },
3738
+ "nopt": {
3739
+ "version": "4.0.1",
3740
+ "bundled": true,
3741
+ "dev": true,
3742
+ "optional": true,
3743
+ "requires": {
3744
+ "abbrev": "1.1.0",
3745
+ "osenv": "0.1.4"
3746
+ }
3747
+ },
3748
+ "npmlog": {
3749
+ "version": "4.1.0",
3750
+ "bundled": true,
3751
+ "dev": true,
3752
+ "optional": true,
3753
+ "requires": {
3754
+ "are-we-there-yet": "1.1.4",
3755
+ "console-control-strings": "1.1.0",
3756
+ "gauge": "2.7.4",
3757
+ "set-blocking": "2.0.0"
3758
+ }
3759
+ },
3760
+ "number-is-nan": {
3761
+ "version": "1.0.1",
3762
+ "bundled": true,
3763
+ "dev": true
3764
+ },
3765
+ "oauth-sign": {
3766
+ "version": "0.8.2",
3767
+ "bundled": true,
3768
+ "dev": true,
3769
+ "optional": true
3770
+ },
3771
+ "object-assign": {
3772
+ "version": "4.1.1",
3773
+ "bundled": true,
3774
+ "dev": true,
3775
+ "optional": true
3776
+ },
3777
+ "once": {
3778
+ "version": "1.4.0",
3779
+ "bundled": true,
3780
+ "dev": true,
3781
+ "requires": {
3782
+ "wrappy": "1.0.2"
3783
+ }
3784
+ },
3785
+ "os-homedir": {
3786
+ "version": "1.0.2",
3787
+ "bundled": true,
3788
+ "dev": true,
3789
+ "optional": true
3790
+ },
3791
+ "os-tmpdir": {
3792
+ "version": "1.0.2",
3793
+ "bundled": true,
3794
+ "dev": true,
3795
+ "optional": true
3796
+ },
3797
+ "osenv": {
3798
+ "version": "0.1.4",
3799
+ "bundled": true,
3800
+ "dev": true,
3801
+ "optional": true,
3802
+ "requires": {
3803
+ "os-homedir": "1.0.2",
3804
+ "os-tmpdir": "1.0.2"
3805
+ }
3806
+ },
3807
+ "path-is-absolute": {
3808
+ "version": "1.0.1",
3809
+ "bundled": true,
3810
+ "dev": true
3811
+ },
3812
+ "performance-now": {
3813
+ "version": "0.2.0",
3814
+ "bundled": true,
3815
+ "dev": true,
3816
+ "optional": true
3817
+ },
3818
+ "process-nextick-args": {
3819
+ "version": "1.0.7",
3820
+ "bundled": true,
3821
+ "dev": true
3822
+ },
3823
+ "qs": {
3824
+ "version": "6.4.0",
3825
+ "bundled": true,
3826
+ "dev": true,
3827
+ "optional": true
3828
+ },
3829
+ "rc": {
3830
+ "version": "1.2.1",
3831
+ "bundled": true,
3832
+ "dev": true,
3833
+ "optional": true,
3834
+ "requires": {
3835
+ "deep-extend": "0.4.2",
3836
+ "ini": "1.3.4",
3837
+ "minimist": "1.2.0",
3838
+ "strip-json-comments": "2.0.1"
3839
+ },
3840
+ "dependencies": {
3841
+ "minimist": {
3842
+ "version": "1.2.0",
3843
+ "bundled": true,
3844
+ "dev": true,
3845
+ "optional": true
3846
+ }
3847
+ }
3848
+ },
3849
+ "readable-stream": {
3850
+ "version": "2.3.1",
3851
+ "bundled": true,
3852
+ "dev": true,
3853
+ "requires": {
3854
+ "core-util-is": "1.0.2",
3855
+ "inherits": "2.0.3",
3856
+ "isarray": "1.0.0",
3857
+ "process-nextick-args": "1.0.7",
3858
+ "safe-buffer": "5.1.1",
3859
+ "string_decoder": "1.0.2",
3860
+ "util-deprecate": "1.0.2"
3861
+ }
3862
+ },
3863
+ "request": {
3864
+ "version": "2.81.0",
3865
+ "bundled": true,
3866
+ "dev": true,
3867
+ "optional": true,
3868
+ "requires": {
3869
+ "aws-sign2": "0.6.0",
3870
+ "aws4": "1.6.0",
3871
+ "caseless": "0.12.0",
3872
+ "combined-stream": "1.0.5",
3873
+ "extend": "3.0.1",
3874
+ "forever-agent": "0.6.1",
3875
+ "form-data": "2.1.4",
3876
+ "har-validator": "4.2.1",
3877
+ "hawk": "3.1.3",
3878
+ "http-signature": "1.1.1",
3879
+ "is-typedarray": "1.0.0",
3880
+ "isstream": "0.1.2",
3881
+ "json-stringify-safe": "5.0.1",
3882
+ "mime-types": "2.1.15",
3883
+ "oauth-sign": "0.8.2",
3884
+ "performance-now": "0.2.0",
3885
+ "qs": "6.4.0",
3886
+ "safe-buffer": "5.1.1",
3887
+ "stringstream": "0.0.5",
3888
+ "tough-cookie": "2.3.2",
3889
+ "tunnel-agent": "0.6.0",
3890
+ "uuid": "3.0.1"
3891
+ }
3892
+ },
3893
+ "rimraf": {
3894
+ "version": "2.6.1",
3895
+ "bundled": true,
3896
+ "dev": true,
3897
+ "requires": {
3898
+ "glob": "7.1.1"
3899
+ }
3900
+ },
3901
+ "safe-buffer": {
3902
+ "version": "5.1.1",
3903
+ "bundled": true,
3904
+ "dev": true
3905
+ },
3906
+ "semver": {
3907
+ "version": "5.3.0",
3908
+ "bundled": true,
3909
+ "dev": true,
3910
+ "optional": true
3911
+ },
3912
+ "set-blocking": {
3913
+ "version": "2.0.0",
3914
+ "bundled": true,
3915
+ "dev": true,
3916
+ "optional": true
3917
+ },
3918
+ "signal-exit": {
3919
+ "version": "3.0.2",
3920
+ "bundled": true,
3921
+ "dev": true,
3922
+ "optional": true
3923
+ },
3924
+ "sntp": {
3925
+ "version": "1.0.9",
3926
+ "bundled": true,
3927
+ "dev": true,
3928
+ "optional": true,
3929
+ "requires": {
3930
+ "hoek": "2.16.3"
3931
+ }
3932
+ },
3933
+ "sshpk": {
3934
+ "version": "1.13.1",
3935
+ "bundled": true,
3936
+ "dev": true,
3937
+ "optional": true,
3938
+ "requires": {
3939
+ "asn1": "0.2.3",
3940
+ "assert-plus": "1.0.0",
3941
+ "bcrypt-pbkdf": "1.0.1",
3942
+ "dashdash": "1.14.1",
3943
+ "ecc-jsbn": "0.1.1",
3944
+ "getpass": "0.1.7",
3945
+ "jsbn": "0.1.1",
3946
+ "tweetnacl": "0.14.5"
3947
+ }
3948
+ },
3949
+ "string_decoder": {
3950
+ "version": "1.0.2",
3951
+ "bundled": true,
3952
+ "dev": true,
3953
+ "requires": {
3954
+ "safe-buffer": "5.0.1"
3955
+ },
3956
+ "dependencies": {
3957
+ "safe-buffer": {
3958
+ "version": "5.0.1",
3959
+ "bundled": true,
3960
+ "dev": true
3961
+ }
3962
+ }
3963
+ },
3964
+ "string-width": {
3965
+ "version": "1.0.2",
3966
+ "bundled": true,
3967
+ "dev": true,
3968
+ "requires": {
3969
+ "code-point-at": "1.1.0",
3970
+ "is-fullwidth-code-point": "1.0.0",
3971
+ "strip-ansi": "3.0.1"
3972
+ }
3973
+ },
3974
+ "stringstream": {
3975
+ "version": "0.0.5",
3976
+ "bundled": true,
3977
+ "dev": true,
3978
+ "optional": true
3979
+ },
3980
+ "strip-ansi": {
3981
+ "version": "3.0.1",
3982
+ "bundled": true,
3983
+ "dev": true,
3984
+ "requires": {
3985
+ "ansi-regex": "2.1.1"
3986
+ }
3987
+ },
3988
+ "strip-json-comments": {
3989
+ "version": "2.0.1",
3990
+ "bundled": true,
3991
+ "dev": true,
3992
+ "optional": true
3993
+ },
3994
+ "tar": {
3995
+ "version": "2.2.1",
3996
+ "bundled": true,
3997
+ "dev": true,
3998
+ "requires": {
3999
+ "block-stream": "0.0.9",
4000
+ "fstream": "1.0.11",
4001
+ "inherits": "2.0.3"
4002
+ }
4003
+ },
4004
+ "tar-pack": {
4005
+ "version": "3.4.0",
4006
+ "bundled": true,
4007
+ "dev": true,
4008
+ "optional": true,
4009
+ "requires": {
4010
+ "debug": "2.6.0",
4011
+ "fstream": "1.0.11",
4012
+ "fstream-ignore": "1.0.5",
4013
+ "once": "1.4.0",
4014
+ "readable-stream": "2.3.1",
4015
+ "rimraf": "2.6.1",
4016
+ "tar": "2.2.1",
4017
+ "uid-number": "0.0.6"
4018
+ }
4019
+ },
4020
+ "tough-cookie": {
4021
+ "version": "2.3.2",
4022
+ "bundled": true,
4023
+ "dev": true,
4024
+ "optional": true,
4025
+ "requires": {
4026
+ "punycode": "1.4.1"
4027
+ },
4028
+ "dependencies": {
4029
+ "punycode": {
4030
+ "version": "1.4.1",
4031
+ "bundled": true,
4032
+ "dev": true,
4033
+ "optional": true
4034
+ }
4035
+ }
4036
+ },
4037
+ "tunnel-agent": {
4038
+ "version": "0.6.0",
4039
+ "bundled": true,
4040
+ "dev": true,
4041
+ "optional": true,
4042
+ "requires": {
4043
+ "safe-buffer": "5.1.1"
4044
+ }
4045
+ },
4046
+ "tweetnacl": {
4047
+ "version": "0.14.5",
4048
+ "bundled": true,
4049
+ "dev": true,
4050
+ "optional": true
4051
+ },
4052
+ "uid-number": {
4053
+ "version": "0.0.6",
4054
+ "bundled": true,
4055
+ "dev": true,
4056
+ "optional": true
4057
+ },
4058
+ "util-deprecate": {
4059
+ "version": "1.0.2",
4060
+ "bundled": true,
4061
+ "dev": true
4062
+ },
4063
+ "uuid": {
4064
+ "version": "3.0.1",
4065
+ "bundled": true,
4066
+ "dev": true,
4067
+ "optional": true
4068
+ },
4069
+ "verror": {
4070
+ "version": "1.3.6",
4071
+ "bundled": true,
4072
+ "dev": true,
4073
+ "optional": true,
4074
+ "requires": {
4075
+ "extsprintf": "1.0.2"
4076
+ }
4077
+ },
4078
+ "wide-align": {
4079
+ "version": "1.1.2",
4080
+ "bundled": true,
4081
+ "dev": true,
4082
+ "optional": true,
4083
+ "requires": {
4084
+ "string-width": "1.0.2"
4085
+ }
4086
+ },
4087
+ "wrappy": {
4088
+ "version": "1.0.2",
4089
+ "bundled": true,
4090
+ "dev": true
4091
+ }
4092
+ }
4093
+ },
4094
+ "imagemin": {
4095
+ "version": "https://registry.npmjs.org/imagemin/-/imagemin-4.0.0.tgz",
4096
+ "integrity": "sha1-6Q5/CTaDZZXxj6Ff6Qb0+iWeqEc=",
4097
+ "dev": true,
4098
+ "requires": {
4099
+ "buffer-to-vinyl": "https://registry.npmjs.org/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz",
4100
+ "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
4101
+ "imagemin-gifsicle": "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-4.2.0.tgz",
4102
+ "imagemin-jpegtran": "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-4.3.2.tgz",
4103
+ "imagemin-optipng": "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-4.3.0.tgz",
4104
+ "imagemin-svgo": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-4.2.1.tgz",
4105
+ "optional": "https://registry.npmjs.org/optional/-/optional-0.1.3.tgz",
4106
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
4107
+ "stream-combiner2": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
4108
+ "vinyl-fs": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz"
4109
+ }
4110
+ },
4111
+ "imagemin-gifsicle": {
4112
+ "version": "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-4.2.0.tgz",
4113
+ "integrity": "sha1-D++butNHbmt2iFc2zFsLh6CHV8o=",
4114
+ "dev": true,
4115
+ "optional": true,
4116
+ "requires": {
4117
+ "gifsicle": "https://registry.npmjs.org/gifsicle/-/gifsicle-3.0.4.tgz",
4118
+ "is-gif": "https://registry.npmjs.org/is-gif/-/is-gif-1.0.0.tgz",
4119
+ "through2": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz"
4120
+ }
4121
+ },
4122
+ "imagemin-jpegtran": {
4123
+ "version": "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-4.3.2.tgz",
4124
+ "integrity": "sha1-G8bR4r0T/bZNJFUm1jWn5d/rEvw=",
4125
+ "dev": true,
4126
+ "optional": true,
4127
+ "requires": {
4128
+ "is-jpg": "https://registry.npmjs.org/is-jpg/-/is-jpg-1.0.0.tgz",
4129
+ "jpegtran-bin": "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-3.1.0.tgz",
4130
+ "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz"
4131
+ },
4132
+ "dependencies": {
4133
+ "through2": {
4134
+ "version": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
4135
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
4136
+ "dev": true,
4137
+ "optional": true,
4138
+ "requires": {
4139
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
4140
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
4141
+ }
4142
+ }
4143
+ }
4144
+ },
4145
+ "imagemin-optipng": {
4146
+ "version": "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-4.3.0.tgz",
4147
+ "integrity": "sha1-dgRmOrLuMVczJ0cm/Rw3TStErbY=",
4148
+ "dev": true,
4149
+ "optional": true,
4150
+ "requires": {
4151
+ "exec-buffer": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-2.0.1.tgz",
4152
+ "is-png": "https://registry.npmjs.org/is-png/-/is-png-1.0.0.tgz",
4153
+ "optipng-bin": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-3.1.2.tgz",
4154
+ "through2": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz"
4155
+ }
4156
+ },
4157
+ "imagemin-svgo": {
4158
+ "version": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-4.2.1.tgz",
4159
+ "integrity": "sha1-VPB9xW9HJgRi32phxUvvtEtXvlU=",
4160
+ "dev": true,
4161
+ "optional": true,
4162
+ "requires": {
4163
+ "is-svg": "https://registry.npmjs.org/is-svg/-/is-svg-1.1.1.tgz",
4164
+ "svgo": "https://registry.npmjs.org/svgo/-/svgo-0.6.6.tgz",
4165
+ "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz"
4166
+ },
4167
+ "dependencies": {
4168
+ "through2": {
4169
+ "version": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
4170
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
4171
+ "dev": true,
4172
+ "optional": true,
4173
+ "requires": {
4174
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
4175
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
4176
+ }
4177
+ }
4178
+ }
4179
+ },
4180
+ "indent-string": {
4181
+ "version": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
4182
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
4183
+ "dev": true,
4184
+ "requires": {
4185
+ "repeating": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz"
4186
+ }
4187
+ },
4188
+ "inflight": {
4189
+ "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
4190
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
4191
+ "dev": true,
4192
+ "requires": {
4193
+ "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
4194
+ "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
4195
+ }
4196
+ },
4197
+ "inherits": {
4198
+ "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
4199
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
4200
+ "dev": true
4201
+ },
4202
+ "ini": {
4203
+ "version": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
4204
+ "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=",
4205
+ "dev": true
4206
+ },
4207
+ "ip-regex": {
4208
+ "version": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz",
4209
+ "integrity": "sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0=",
4210
+ "dev": true,
4211
+ "optional": true
4212
+ },
4213
+ "is-absolute": {
4214
+ "version": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz",
4215
+ "integrity": "sha1-hHSREZ/MtftDYhfMc39/qtUPYD8=",
4216
+ "dev": true,
4217
+ "requires": {
4218
+ "is-relative": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz"
4219
+ }
4220
+ },
4221
+ "is-arrayish": {
4222
+ "version": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
4223
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
4224
+ "dev": true
4225
+ },
4226
+ "is-buffer": {
4227
+ "version": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz",
4228
+ "integrity": "sha1-z8hszV3FpS+oBIkRHGkgxFfi2Ys=",
4229
+ "dev": true
4230
+ },
4231
+ "is-builtin-module": {
4232
+ "version": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
4233
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
4234
+ "dev": true,
4235
+ "requires": {
4236
+ "builtin-modules": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz"
4237
+ }
4238
+ },
4239
+ "is-bzip2": {
4240
+ "version": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz",
4241
+ "integrity": "sha1-XuWOqlounIDiFAe+3yOuWsCRs/w=",
4242
+ "dev": true
4243
+ },
4244
+ "is-dotfile": {
4245
+ "version": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz",
4246
+ "integrity": "sha1-LBMjg/ORmfjtwmjKAbmwB9IFzE0=",
4247
+ "dev": true
4248
+ },
4249
+ "is-equal-shallow": {
4250
+ "version": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
4251
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
4252
+ "dev": true,
4253
+ "requires": {
4254
+ "is-primitive": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz"
4255
+ }
4256
+ },
4257
+ "is-extendable": {
4258
+ "version": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
4259
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
4260
+ "dev": true
4261
+ },
4262
+ "is-extglob": {
4263
+ "version": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.0.tgz",
4264
+ "integrity": "sha1-M0EaSCsEa/leawyyfuJxGvTPFa0=",
4265
+ "dev": true
4266
+ },
4267
+ "is-finite": {
4268
+ "version": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
4269
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
4270
+ "dev": true,
4271
+ "requires": {
4272
+ "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
4273
+ }
4274
+ },
4275
+ "is-gif": {
4276
+ "version": "https://registry.npmjs.org/is-gif/-/is-gif-1.0.0.tgz",
4277
+ "integrity": "sha1-ptKumIkwB7/6l6HYwB1jIFgyCX4=",
4278
+ "dev": true,
4279
+ "optional": true
4280
+ },
4281
+ "is-glob": {
4282
+ "version": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
4283
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
4284
+ "dev": true,
4285
+ "requires": {
4286
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.0.tgz"
4287
+ }
4288
+ },
4289
+ "is-gzip": {
4290
+ "version": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz",
4291
+ "integrity": "sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM=",
4292
+ "dev": true
4293
+ },
4294
+ "is-jpg": {
4295
+ "version": "https://registry.npmjs.org/is-jpg/-/is-jpg-1.0.0.tgz",
4296
+ "integrity": "sha1-KVnBfnNDDbOCZNp1uQ3VTy2G2hw=",
4297
+ "dev": true,
4298
+ "optional": true
4299
+ },
4300
+ "is-natural-number": {
4301
+ "version": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-2.1.1.tgz",
4302
+ "integrity": "sha1-fUxXKDd+84bD4ZSpkRv1fG3DNec=",
4303
+ "dev": true
4304
+ },
4305
+ "is-number": {
4306
+ "version": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
4307
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
4308
+ "dev": true,
4309
+ "requires": {
4310
+ "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.1.0.tgz"
4311
+ }
4312
+ },
4313
+ "is-obj": {
4314
+ "version": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
4315
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
4316
+ "dev": true
4317
+ },
4318
+ "is-png": {
4319
+ "version": "https://registry.npmjs.org/is-png/-/is-png-1.0.0.tgz",
4320
+ "integrity": "sha1-PYA3P+m4nWX9NB9lnT/AoRNecYo=",
4321
+ "dev": true,
4322
+ "optional": true
4323
+ },
4324
+ "is-posix-bracket": {
4325
+ "version": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
4326
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
4327
+ "dev": true
4328
+ },
4329
+ "is-primitive": {
4330
+ "version": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
4331
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
4332
+ "dev": true
4333
+ },
4334
+ "is-redirect": {
4335
+ "version": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
4336
+ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
4337
+ "dev": true
4338
+ },
4339
+ "is-relative": {
4340
+ "version": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz",
4341
+ "integrity": "sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI=",
4342
+ "dev": true
4343
+ },
4344
+ "is-retry-allowed": {
4345
+ "version": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
4346
+ "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
4347
+ "dev": true
4348
+ },
4349
+ "is-stream": {
4350
+ "version": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
4351
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
4352
+ "dev": true
4353
+ },
4354
+ "is-svg": {
4355
+ "version": "https://registry.npmjs.org/is-svg/-/is-svg-1.1.1.tgz",
4356
+ "integrity": "sha1-rA76r7ZTrFhHNwix+HNjbKEQ4xs=",
4357
+ "dev": true,
4358
+ "optional": true
4359
+ },
4360
+ "is-tar": {
4361
+ "version": "https://registry.npmjs.org/is-tar/-/is-tar-1.0.0.tgz",
4362
+ "integrity": "sha1-L2suF5LB9bs2UZrKqdZcDSb+hT0=",
4363
+ "dev": true
4364
+ },
4365
+ "is-url": {
4366
+ "version": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz",
4367
+ "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY=",
4368
+ "dev": true
4369
+ },
4370
+ "is-utf8": {
4371
+ "version": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
4372
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
4373
+ "dev": true
4374
+ },
4375
+ "is-valid-glob": {
4376
+ "version": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz",
4377
+ "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=",
4378
+ "dev": true
4379
+ },
4380
+ "is-zip": {
4381
+ "version": "https://registry.npmjs.org/is-zip/-/is-zip-1.0.0.tgz",
4382
+ "integrity": "sha1-R7Co/004p2QxzP2ZqOFaTIa6IyU=",
4383
+ "dev": true
4384
+ },
4385
+ "isarray": {
4386
+ "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
4387
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
4388
+ "dev": true
4389
+ },
4390
+ "isobject": {
4391
+ "version": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
4392
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
4393
+ "dev": true,
4394
+ "requires": {
4395
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
4396
+ }
4397
+ },
4398
+ "jpegtran-bin": {
4399
+ "version": "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-3.1.0.tgz",
4400
+ "integrity": "sha1-5lQeuo2XRIKCofj4Chtsyf7qVdA=",
4401
+ "dev": true,
4402
+ "optional": true,
4403
+ "requires": {
4404
+ "bin-build": "https://registry.npmjs.org/bin-build/-/bin-build-2.2.0.tgz",
4405
+ "bin-wrapper": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz",
4406
+ "logalot": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz"
4407
+ }
4408
+ },
4409
+ "js-base64": {
4410
+ "version": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
4411
+ "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=",
4412
+ "dev": true
4413
+ },
4414
+ "js-yaml": {
4415
+ "version": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
4416
+ "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=",
4417
+ "dev": true,
4418
+ "requires": {
4419
+ "argparse": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
4420
+ "esprima": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz"
4421
+ }
4422
+ },
4423
+ "jshint": {
4424
+ "version": "https://registry.npmjs.org/jshint/-/jshint-2.9.4.tgz",
4425
+ "integrity": "sha1-XjupeEjVKQJz21FK7kf+JM9ZKTQ=",
4426
+ "dev": true,
4427
+ "requires": {
4428
+ "cli": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
4429
+ "console-browserify": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
4430
+ "exit": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
4431
+ "htmlparser2": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
4432
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz",
4433
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
4434
+ "shelljs": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
4435
+ "strip-json-comments": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz"
4436
+ },
4437
+ "dependencies": {
4438
+ "lodash": {
4439
+ "version": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz",
4440
+ "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=",
4441
+ "dev": true
4442
+ },
4443
+ "minimatch": {
4444
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
4445
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
4446
+ "dev": true,
4447
+ "requires": {
4448
+ "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
4449
+ }
4450
+ }
4451
+ }
4452
+ },
4453
+ "json-stable-stringify": {
4454
+ "version": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
4455
+ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
4456
+ "dev": true,
4457
+ "requires": {
4458
+ "jsonify": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
4459
+ }
4460
+ },
4461
+ "jsonify": {
4462
+ "version": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
4463
+ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
4464
+ "dev": true
4465
+ },
4466
+ "kind-of": {
4467
+ "version": "https://registry.npmjs.org/kind-of/-/kind-of-3.1.0.tgz",
4468
+ "integrity": "sha1-R11pil5J/15T0U4+cyQp3Iv0z0c=",
4469
+ "dev": true,
4470
+ "requires": {
4471
+ "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz"
4472
+ }
4473
+ },
4474
+ "lazy-req": {
4475
+ "version": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz",
4476
+ "integrity": "sha1-va6+rTD42CQDnODOFJ1Nqge6H6w=",
4477
+ "dev": true,
4478
+ "optional": true
4479
+ },
4480
+ "lazystream": {
4481
+ "version": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
4482
+ "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
4483
+ "dev": true,
4484
+ "requires": {
4485
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz"
4486
+ }
4487
+ },
4488
+ "livereload-js": {
4489
+ "version": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.2.2.tgz",
4490
+ "integrity": "sha1-bIclfmSKtHW8JOoldFftzB+NC8I=",
4491
+ "dev": true
4492
+ },
4493
+ "load-json-file": {
4494
+ "version": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
4495
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
4496
+ "dev": true,
4497
+ "requires": {
4498
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
4499
+ "parse-json": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
4500
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
4501
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
4502
+ "strip-bom": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz"
4503
+ },
4504
+ "dependencies": {
4505
+ "graceful-fs": {
4506
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
4507
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
4508
+ "dev": true
4509
+ }
4510
+ }
4511
+ },
4512
+ "load-project-config": {
4513
+ "version": "0.2.1",
4514
+ "resolved": "https://registry.npmjs.org/load-project-config/-/load-project-config-0.2.1.tgz",
4515
+ "integrity": "sha1-RcVdj27krPMxSpd9YYd+MHf/5pc=",
4516
+ "dev": true,
4517
+ "requires": {
4518
+ "load-grunt-config": "0.19.2",
4519
+ "lodash": "3.10.1",
4520
+ "time-grunt": "1.4.0"
4521
+ },
4522
+ "dependencies": {
4523
+ "load-grunt-config": {
4524
+ "version": "0.19.2",
4525
+ "resolved": "https://registry.npmjs.org/load-grunt-config/-/load-grunt-config-0.19.2.tgz",
4526
+ "integrity": "sha1-UgkNSiDG5j90p2SPJJsZ57f87CQ=",
4527
+ "dev": true,
4528
+ "requires": {
4529
+ "cson": "3.0.2",
4530
+ "glob": "5.0.15",
4531
+ "jit-grunt": "0.10.0",
4532
+ "js-yaml": "3.4.6",
4533
+ "load-grunt-tasks": "3.3.0",
4534
+ "lodash": "3.10.1"
4535
+ },
4536
+ "dependencies": {
4537
+ "cson": {
4538
+ "version": "3.0.2",
4539
+ "resolved": "https://registry.npmjs.org/cson/-/cson-3.0.2.tgz",
4540
+ "integrity": "sha1-g+6Qids8JUvsHpjkmNmqzxGtzFQ=",
4541
+ "dev": true,
4542
+ "requires": {
4543
+ "coffee-script": "1.12.4",
4544
+ "cson-parser": "1.3.5",
4545
+ "extract-opts": "3.3.1",
4546
+ "requirefresh": "2.1.0",
4547
+ "safefs": "4.1.0"
4548
+ },
4549
+ "dependencies": {
4550
+ "coffee-script": {
4551
+ "version": "1.12.4",
4552
+ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.4.tgz",
4553
+ "integrity": "sha1-/hvO2X/h+zknuZjytFYW4GWL4f8=",
4554
+ "dev": true
4555
+ },
4556
+ "cson-parser": {
4557
+ "version": "1.3.5",
4558
+ "resolved": "https://registry.npmjs.org/cson-parser/-/cson-parser-1.3.5.tgz",
4559
+ "integrity": "sha1-fsZ14DkUVTO/KmqFYHPxWZ2cLSQ=",
4560
+ "dev": true,
4561
+ "requires": {
4562
+ "coffee-script": "1.12.4"
4563
+ }
4564
+ },
4565
+ "extract-opts": {
4566
+ "version": "3.3.1",
4567
+ "resolved": "https://registry.npmjs.org/extract-opts/-/extract-opts-3.3.1.tgz",
4568
+ "integrity": "sha1-WrvtyYwNUgLjJ4cn+Rktfghsa+E=",
4569
+ "dev": true,
4570
+ "requires": {
4571
+ "eachr": "3.2.0",
4572
+ "editions": "1.3.3",
4573
+ "typechecker": "4.4.1"
4574
+ },
4575
+ "dependencies": {
4576
+ "eachr": {
4577
+ "version": "3.2.0",
4578
+ "resolved": "https://registry.npmjs.org/eachr/-/eachr-3.2.0.tgz",
4579
+ "integrity": "sha1-LDXkPqCGUW95l8+At6pk1VpKRIQ=",
4580
+ "dev": true,
4581
+ "requires": {
4582
+ "editions": "1.3.3",
4583
+ "typechecker": "4.4.1"
4584
+ }
4585
+ },
4586
+ "editions": {
4587
+ "version": "1.3.3",
4588
+ "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.3.tgz",
4589
+ "integrity": "sha1-CQcQG92iD6w8vjNMJ8vQaI3Jmls=",
4590
+ "dev": true
4591
+ },
4592
+ "typechecker": {
4593
+ "version": "4.4.1",
4594
+ "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-4.4.1.tgz",
4595
+ "integrity": "sha1-+XuV9RsDhBchLWd9RaNz7nvO1+Y=",
4596
+ "dev": true,
4597
+ "requires": {
4598
+ "editions": "1.3.3"
4599
+ }
4600
+ }
4601
+ }
4602
+ },
4603
+ "requirefresh": {
4604
+ "version": "2.1.0",
4605
+ "resolved": "https://registry.npmjs.org/requirefresh/-/requirefresh-2.1.0.tgz",
4606
+ "integrity": "sha1-dC3Mwg86lpGNZsbxWX3I/+vE9vU=",
4607
+ "dev": true,
4608
+ "requires": {
4609
+ "editions": "1.3.3"
4610
+ },
4611
+ "dependencies": {
4612
+ "editions": {
4613
+ "version": "1.3.3",
4614
+ "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.3.tgz",
4615
+ "integrity": "sha1-CQcQG92iD6w8vjNMJ8vQaI3Jmls=",
4616
+ "dev": true
4617
+ }
4618
+ }
4619
+ },
4620
+ "safefs": {
4621
+ "version": "4.1.0",
4622
+ "resolved": "https://registry.npmjs.org/safefs/-/safefs-4.1.0.tgz",
4623
+ "integrity": "sha1-+CrrS9165R9lPrIPZyizBYyNZEU=",
4624
+ "dev": true,
4625
+ "requires": {
4626
+ "editions": "1.3.3",
4627
+ "graceful-fs": "4.1.11"
4628
+ },
4629
+ "dependencies": {
4630
+ "editions": {
4631
+ "version": "1.3.3",
4632
+ "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.3.tgz",
4633
+ "integrity": "sha1-CQcQG92iD6w8vjNMJ8vQaI3Jmls=",
4634
+ "dev": true
4635
+ },
4636
+ "graceful-fs": {
4637
+ "version": "4.1.11",
4638
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
4639
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
4640
+ "dev": true
4641
+ }
4642
+ }
4643
+ }
4644
+ }
4645
+ },
4646
+ "glob": {
4647
+ "version": "5.0.15",
4648
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
4649
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
4650
+ "dev": true,
4651
+ "requires": {
4652
+ "inflight": "1.0.6",
4653
+ "inherits": "2.0.3",
4654
+ "minimatch": "3.0.3",
4655
+ "once": "1.4.0",
4656
+ "path-is-absolute": "1.0.1"
4657
+ },
4658
+ "dependencies": {
4659
+ "inflight": {
4660
+ "version": "1.0.6",
4661
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
4662
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
4663
+ "dev": true,
4664
+ "requires": {
4665
+ "once": "1.4.0",
4666
+ "wrappy": "1.0.2"
4667
+ },
4668
+ "dependencies": {
4669
+ "wrappy": {
4670
+ "version": "1.0.2",
4671
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
4672
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
4673
+ "dev": true
4674
+ }
4675
+ }
4676
+ },
4677
+ "inherits": {
4678
+ "version": "2.0.3",
4679
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
4680
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
4681
+ "dev": true
4682
+ },
4683
+ "minimatch": {
4684
+ "version": "3.0.3",
4685
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
4686
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
4687
+ "dev": true,
4688
+ "requires": {
4689
+ "brace-expansion": "1.1.6"
4690
+ },
4691
+ "dependencies": {
4692
+ "brace-expansion": {
4693
+ "version": "1.1.6",
4694
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
4695
+ "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=",
4696
+ "dev": true,
4697
+ "requires": {
4698
+ "balanced-match": "0.4.2",
4699
+ "concat-map": "0.0.1"
4700
+ },
4701
+ "dependencies": {
4702
+ "balanced-match": {
4703
+ "version": "0.4.2",
4704
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
4705
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
4706
+ "dev": true
4707
+ },
4708
+ "concat-map": {
4709
+ "version": "0.0.1",
4710
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
4711
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
4712
+ "dev": true
4713
+ }
4714
+ }
4715
+ }
4716
+ }
4717
+ },
4718
+ "once": {
4719
+ "version": "1.4.0",
4720
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
4721
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
4722
+ "dev": true,
4723
+ "requires": {
4724
+ "wrappy": "1.0.2"
4725
+ },
4726
+ "dependencies": {
4727
+ "wrappy": {
4728
+ "version": "1.0.2",
4729
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
4730
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
4731
+ "dev": true
4732
+ }
4733
+ }
4734
+ },
4735
+ "path-is-absolute": {
4736
+ "version": "1.0.1",
4737
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
4738
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
4739
+ "dev": true
4740
+ }
4741
+ }
4742
+ },
4743
+ "grunt": {
4744
+ "version": "https://registry.npmjs.org/grunt/-/grunt-1.0.1.tgz",
4745
+ "integrity": "sha1-6HeHZOlEsY8yuw8QuQeEdcnftWs=",
4746
+ "requires": {
4747
+ "coffee-script": "1.10.0",
4748
+ "dateformat": "1.0.12",
4749
+ "eventemitter2": "0.4.14",
4750
+ "exit": "0.1.2",
4751
+ "findup-sync": "0.3.0",
4752
+ "glob": "7.0.6",
4753
+ "grunt-cli": "1.2.0",
4754
+ "grunt-known-options": "1.1.0",
4755
+ "grunt-legacy-log": "1.0.0",
4756
+ "grunt-legacy-util": "1.0.0",
4757
+ "iconv-lite": "0.4.15",
4758
+ "js-yaml": "3.5.5",
4759
+ "minimatch": "3.0.3",
4760
+ "nopt": "3.0.6",
4761
+ "path-is-absolute": "1.0.1",
4762
+ "rimraf": "2.2.8"
4763
+ },
4764
+ "dependencies": {
4765
+ "coffee-script": {
4766
+ "version": "1.10.0",
4767
+ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.10.0.tgz",
4768
+ "integrity": "sha1-EpOLz5vhlI+gBvkuDEyegXBRCMA="
4769
+ },
4770
+ "dateformat": {
4771
+ "version": "1.0.12",
4772
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
4773
+ "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
4774
+ "requires": {
4775
+ "get-stdin": "4.0.1",
4776
+ "meow": "3.7.0"
4777
+ },
4778
+ "dependencies": {
4779
+ "get-stdin": {
4780
+ "version": "4.0.1",
4781
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
4782
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
4783
+ },
4784
+ "meow": {
4785
+ "version": "3.7.0",
4786
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
4787
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
4788
+ "requires": {
4789
+ "camelcase-keys": "2.1.0",
4790
+ "decamelize": "1.2.0",
4791
+ "loud-rejection": "1.6.0",
4792
+ "map-obj": "1.0.1",
4793
+ "minimist": "1.2.0",
4794
+ "normalize-package-data": "2.3.6",
4795
+ "object-assign": "4.1.1",
4796
+ "read-pkg-up": "1.0.1",
4797
+ "redent": "1.0.0",
4798
+ "trim-newlines": "1.0.0"
4799
+ },
4800
+ "dependencies": {
4801
+ "camelcase-keys": {
4802
+ "version": "2.1.0",
4803
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
4804
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
4805
+ "requires": {
4806
+ "camelcase": "2.1.1",
4807
+ "map-obj": "1.0.1"
4808
+ },
4809
+ "dependencies": {
4810
+ "camelcase": {
4811
+ "version": "2.1.1",
4812
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
4813
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
4814
+ }
4815
+ }
4816
+ },
4817
+ "decamelize": {
4818
+ "version": "1.2.0",
4819
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
4820
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
4821
+ },
4822
+ "loud-rejection": {
4823
+ "version": "1.6.0",
4824
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
4825
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
4826
+ "requires": {
4827
+ "currently-unhandled": "0.4.1",
4828
+ "signal-exit": "3.0.2"
4829
+ },
4830
+ "dependencies": {
4831
+ "currently-unhandled": {
4832
+ "version": "0.4.1",
4833
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
4834
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
4835
+ "requires": {
4836
+ "array-find-index": "1.0.2"
4837
+ },
4838
+ "dependencies": {
4839
+ "array-find-index": {
4840
+ "version": "1.0.2",
4841
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
4842
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E="
4843
+ }
4844
+ }
4845
+ },
4846
+ "signal-exit": {
4847
+ "version": "3.0.2",
4848
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
4849
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
4850
+ }
4851
+ }
4852
+ },
4853
+ "map-obj": {
4854
+ "version": "1.0.1",
4855
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
4856
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
4857
+ },
4858
+ "minimist": {
4859
+ "version": "1.2.0",
4860
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
4861
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
4862
+ },
4863
+ "normalize-package-data": {
4864
+ "version": "2.3.6",
4865
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.6.tgz",
4866
+ "integrity": "sha1-SY+kIMlkAfeHQCuiHmAN75+YH/8=",
4867
+ "requires": {
4868
+ "hosted-git-info": "2.4.1",
4869
+ "is-builtin-module": "1.0.0",
4870
+ "semver": "5.3.0",
4871
+ "validate-npm-package-license": "3.0.1"
4872
+ },
4873
+ "dependencies": {
4874
+ "hosted-git-info": {
4875
+ "version": "2.4.1",
4876
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.1.tgz",
4877
+ "integrity": "sha1-SwRF5BwASovRM3dzpP95DKQDGMg="
4878
+ },
4879
+ "is-builtin-module": {
4880
+ "version": "1.0.0",
4881
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
4882
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
4883
+ "requires": {
4884
+ "builtin-modules": "1.1.1"
4885
+ },
4886
+ "dependencies": {
4887
+ "builtin-modules": {
4888
+ "version": "1.1.1",
4889
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
4890
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
4891
+ }
4892
+ }
4893
+ },
4894
+ "semver": {
4895
+ "version": "5.3.0",
4896
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
4897
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
4898
+ },
4899
+ "validate-npm-package-license": {
4900
+ "version": "3.0.1",
4901
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
4902
+ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
4903
+ "requires": {
4904
+ "spdx-correct": "1.0.2",
4905
+ "spdx-expression-parse": "1.0.4"
4906
+ },
4907
+ "dependencies": {
4908
+ "spdx-correct": {
4909
+ "version": "1.0.2",
4910
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
4911
+ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
4912
+ "requires": {
4913
+ "spdx-license-ids": "1.2.2"
4914
+ },
4915
+ "dependencies": {
4916
+ "spdx-license-ids": {
4917
+ "version": "1.2.2",
4918
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
4919
+ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc="
4920
+ }
4921
+ }
4922
+ },
4923
+ "spdx-expression-parse": {
4924
+ "version": "1.0.4",
4925
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
4926
+ "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw="
4927
+ }
4928
+ }
4929
+ }
4930
+ }
4931
+ },
4932
+ "object-assign": {
4933
+ "version": "4.1.1",
4934
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
4935
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
4936
+ },
4937
+ "read-pkg-up": {
4938
+ "version": "1.0.1",
4939
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
4940
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
4941
+ "requires": {
4942
+ "find-up": "1.1.2",
4943
+ "read-pkg": "1.1.0"
4944
+ },
4945
+ "dependencies": {
4946
+ "find-up": {
4947
+ "version": "1.1.2",
4948
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
4949
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
4950
+ "requires": {
4951
+ "path-exists": "2.1.0",
4952
+ "pinkie-promise": "2.0.1"
4953
+ },
4954
+ "dependencies": {
4955
+ "path-exists": {
4956
+ "version": "2.1.0",
4957
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
4958
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
4959
+ "requires": {
4960
+ "pinkie-promise": "2.0.1"
4961
+ }
4962
+ },
4963
+ "pinkie-promise": {
4964
+ "version": "2.0.1",
4965
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
4966
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
4967
+ "requires": {
4968
+ "pinkie": "2.0.4"
4969
+ },
4970
+ "dependencies": {
4971
+ "pinkie": {
4972
+ "version": "2.0.4",
4973
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
4974
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
4975
+ }
4976
+ }
4977
+ }
4978
+ }
4979
+ },
4980
+ "read-pkg": {
4981
+ "version": "1.1.0",
4982
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
4983
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
4984
+ "requires": {
4985
+ "load-json-file": "1.1.0",
4986
+ "normalize-package-data": "2.3.6",
4987
+ "path-type": "1.1.0"
4988
+ },
4989
+ "dependencies": {
4990
+ "load-json-file": {
4991
+ "version": "1.1.0",
4992
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
4993
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
4994
+ "requires": {
4995
+ "graceful-fs": "4.1.11",
4996
+ "parse-json": "2.2.0",
4997
+ "pify": "2.3.0",
4998
+ "pinkie-promise": "2.0.1",
4999
+ "strip-bom": "2.0.0"
5000
+ },
5001
+ "dependencies": {
5002
+ "graceful-fs": {
5003
+ "version": "4.1.11",
5004
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
5005
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
5006
+ },
5007
+ "parse-json": {
5008
+ "version": "2.2.0",
5009
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
5010
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
5011
+ "requires": {
5012
+ "error-ex": "1.3.1"
5013
+ },
5014
+ "dependencies": {
5015
+ "error-ex": {
5016
+ "version": "1.3.1",
5017
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
5018
+ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
5019
+ "requires": {
5020
+ "is-arrayish": "0.2.1"
5021
+ },
5022
+ "dependencies": {
5023
+ "is-arrayish": {
5024
+ "version": "0.2.1",
5025
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
5026
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
5027
+ }
5028
+ }
5029
+ }
5030
+ }
5031
+ },
5032
+ "pify": {
5033
+ "version": "2.3.0",
5034
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
5035
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
5036
+ },
5037
+ "pinkie-promise": {
5038
+ "version": "2.0.1",
5039
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
5040
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
5041
+ "requires": {
5042
+ "pinkie": "2.0.4"
5043
+ },
5044
+ "dependencies": {
5045
+ "pinkie": {
5046
+ "version": "2.0.4",
5047
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
5048
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
5049
+ }
5050
+ }
5051
+ },
5052
+ "strip-bom": {
5053
+ "version": "2.0.0",
5054
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
5055
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
5056
+ "requires": {
5057
+ "is-utf8": "0.2.1"
5058
+ },
5059
+ "dependencies": {
5060
+ "is-utf8": {
5061
+ "version": "0.2.1",
5062
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
5063
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
5064
+ }
5065
+ }
5066
+ }
5067
+ }
5068
+ },
5069
+ "path-type": {
5070
+ "version": "1.1.0",
5071
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
5072
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
5073
+ "requires": {
5074
+ "graceful-fs": "4.1.11",
5075
+ "pify": "2.3.0",
5076
+ "pinkie-promise": "2.0.1"
5077
+ },
5078
+ "dependencies": {
5079
+ "graceful-fs": {
5080
+ "version": "4.1.11",
5081
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
5082
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
5083
+ },
5084
+ "pify": {
5085
+ "version": "2.3.0",
5086
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
5087
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
5088
+ },
5089
+ "pinkie-promise": {
5090
+ "version": "2.0.1",
5091
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
5092
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
5093
+ "requires": {
5094
+ "pinkie": "2.0.4"
5095
+ },
5096
+ "dependencies": {
5097
+ "pinkie": {
5098
+ "version": "2.0.4",
5099
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
5100
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
5101
+ }
5102
+ }
5103
+ }
5104
+ }
5105
+ }
5106
+ }
5107
+ }
5108
+ }
5109
+ },
5110
+ "redent": {
5111
+ "version": "1.0.0",
5112
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
5113
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
5114
+ "requires": {
5115
+ "indent-string": "2.1.0",
5116
+ "strip-indent": "1.0.1"
5117
+ },
5118
+ "dependencies": {
5119
+ "indent-string": {
5120
+ "version": "2.1.0",
5121
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
5122
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
5123
+ "requires": {
5124
+ "repeating": "2.0.1"
5125
+ },
5126
+ "dependencies": {
5127
+ "repeating": {
5128
+ "version": "2.0.1",
5129
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
5130
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
5131
+ "requires": {
5132
+ "is-finite": "1.0.2"
5133
+ },
5134
+ "dependencies": {
5135
+ "is-finite": {
5136
+ "version": "1.0.2",
5137
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
5138
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
5139
+ "requires": {
5140
+ "number-is-nan": "1.0.1"
5141
+ },
5142
+ "dependencies": {
5143
+ "number-is-nan": {
5144
+ "version": "1.0.1",
5145
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
5146
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
5147
+ }
5148
+ }
5149
+ }
5150
+ }
5151
+ }
5152
+ }
5153
+ },
5154
+ "strip-indent": {
5155
+ "version": "1.0.1",
5156
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
5157
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
5158
+ "requires": {
5159
+ "get-stdin": "4.0.1"
5160
+ }
5161
+ }
5162
+ }
5163
+ },
5164
+ "trim-newlines": {
5165
+ "version": "1.0.0",
5166
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
5167
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM="
5168
+ }
5169
+ }
5170
+ }
5171
+ }
5172
+ },
5173
+ "eventemitter2": {
5174
+ "version": "0.4.14",
5175
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
5176
+ "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas="
5177
+ },
5178
+ "exit": {
5179
+ "version": "0.1.2",
5180
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
5181
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw="
5182
+ },
5183
+ "findup-sync": {
5184
+ "version": "0.3.0",
5185
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
5186
+ "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=",
5187
+ "requires": {
5188
+ "glob": "5.0.15"
5189
+ },
5190
+ "dependencies": {
5191
+ "glob": {
5192
+ "version": "5.0.15",
5193
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
5194
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
5195
+ "requires": {
5196
+ "inflight": "1.0.6",
5197
+ "inherits": "2.0.3",
5198
+ "minimatch": "3.0.3",
5199
+ "once": "1.4.0",
5200
+ "path-is-absolute": "1.0.1"
5201
+ },
5202
+ "dependencies": {
5203
+ "inflight": {
5204
+ "version": "1.0.6",
5205
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
5206
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
5207
+ "requires": {
5208
+ "once": "1.4.0",
5209
+ "wrappy": "1.0.2"
5210
+ },
5211
+ "dependencies": {
5212
+ "wrappy": {
5213
+ "version": "1.0.2",
5214
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
5215
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
5216
+ }
5217
+ }
5218
+ },
5219
+ "inherits": {
5220
+ "version": "2.0.3",
5221
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
5222
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
5223
+ },
5224
+ "once": {
5225
+ "version": "1.4.0",
5226
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
5227
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
5228
+ "requires": {
5229
+ "wrappy": "1.0.2"
5230
+ },
5231
+ "dependencies": {
5232
+ "wrappy": {
5233
+ "version": "1.0.2",
5234
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
5235
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
5236
+ }
5237
+ }
5238
+ }
5239
+ }
5240
+ }
5241
+ }
5242
+ },
5243
+ "glob": {
5244
+ "version": "7.0.6",
5245
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
5246
+ "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
5247
+ "requires": {
5248
+ "fs.realpath": "1.0.0",
5249
+ "inflight": "1.0.6",
5250
+ "inherits": "2.0.3",
5251
+ "minimatch": "3.0.3",
5252
+ "once": "1.4.0",
5253
+ "path-is-absolute": "1.0.1"
5254
+ },
5255
+ "dependencies": {
5256
+ "fs.realpath": {
5257
+ "version": "1.0.0",
5258
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
5259
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
5260
+ },
5261
+ "inflight": {
5262
+ "version": "1.0.6",
5263
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
5264
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
5265
+ "requires": {
5266
+ "once": "1.4.0",
5267
+ "wrappy": "1.0.2"
5268
+ },
5269
+ "dependencies": {
5270
+ "wrappy": {
5271
+ "version": "1.0.2",
5272
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
5273
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
5274
+ }
5275
+ }
5276
+ },
5277
+ "inherits": {
5278
+ "version": "2.0.3",
5279
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
5280
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
5281
+ },
5282
+ "once": {
5283
+ "version": "1.4.0",
5284
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
5285
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
5286
+ "requires": {
5287
+ "wrappy": "1.0.2"
5288
+ },
5289
+ "dependencies": {
5290
+ "wrappy": {
5291
+ "version": "1.0.2",
5292
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
5293
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
5294
+ }
5295
+ }
5296
+ }
5297
+ }
5298
+ },
5299
+ "grunt-cli": {
5300
+ "version": "1.2.0",
5301
+ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz",
5302
+ "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=",
5303
+ "requires": {
5304
+ "findup-sync": "0.3.0",
5305
+ "grunt-known-options": "1.1.0",
5306
+ "nopt": "3.0.6",
5307
+ "resolve": "1.1.7"
5308
+ },
5309
+ "dependencies": {
5310
+ "resolve": {
5311
+ "version": "1.1.7",
5312
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
5313
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs="
5314
+ }
5315
+ }
5316
+ },
5317
+ "grunt-known-options": {
5318
+ "version": "1.1.0",
5319
+ "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz",
5320
+ "integrity": "sha1-pCdO6zL6dl2lp6OxcSYXzjsUQUk="
5321
+ },
5322
+ "grunt-legacy-log": {
5323
+ "version": "1.0.0",
5324
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-1.0.0.tgz",
5325
+ "integrity": "sha1-+4bxgJhHvAfcR4Q/ns1srLYt8tU=",
5326
+ "requires": {
5327
+ "colors": "1.1.2",
5328
+ "grunt-legacy-log-utils": "1.0.0",
5329
+ "hooker": "0.2.3",
5330
+ "lodash": "3.10.1",
5331
+ "underscore.string": "3.2.3"
5332
+ },
5333
+ "dependencies": {
5334
+ "colors": {
5335
+ "version": "1.1.2",
5336
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
5337
+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM="
5338
+ },
5339
+ "grunt-legacy-log-utils": {
5340
+ "version": "1.0.0",
5341
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz",
5342
+ "integrity": "sha1-p7ji0Ps1taUPSvmG/BEnSevJbz0=",
5343
+ "requires": {
5344
+ "chalk": "1.1.3",
5345
+ "lodash": "4.3.0"
5346
+ },
5347
+ "dependencies": {
5348
+ "chalk": {
5349
+ "version": "1.1.3",
5350
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
5351
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
5352
+ "requires": {
5353
+ "ansi-styles": "2.2.1",
5354
+ "escape-string-regexp": "1.0.5",
5355
+ "has-ansi": "2.0.0",
5356
+ "strip-ansi": "3.0.1",
5357
+ "supports-color": "2.0.0"
5358
+ },
5359
+ "dependencies": {
5360
+ "ansi-styles": {
5361
+ "version": "2.2.1",
5362
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
5363
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
5364
+ },
5365
+ "escape-string-regexp": {
5366
+ "version": "1.0.5",
5367
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
5368
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
5369
+ },
5370
+ "has-ansi": {
5371
+ "version": "2.0.0",
5372
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
5373
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
5374
+ "requires": {
5375
+ "ansi-regex": "2.1.1"
5376
+ },
5377
+ "dependencies": {
5378
+ "ansi-regex": {
5379
+ "version": "2.1.1",
5380
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
5381
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
5382
+ }
5383
+ }
5384
+ },
5385
+ "strip-ansi": {
5386
+ "version": "3.0.1",
5387
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
5388
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
5389
+ "requires": {
5390
+ "ansi-regex": "2.1.1"
5391
+ },
5392
+ "dependencies": {
5393
+ "ansi-regex": {
5394
+ "version": "2.1.1",
5395
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
5396
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
5397
+ }
5398
+ }
5399
+ },
5400
+ "supports-color": {
5401
+ "version": "2.0.0",
5402
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
5403
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
5404
+ }
5405
+ }
5406
+ },
5407
+ "lodash": {
5408
+ "version": "4.3.0",
5409
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz",
5410
+ "integrity": "sha1-79nEpuxT87BUEkKZFcPkgk5NJaQ="
5411
+ }
5412
+ }
5413
+ },
5414
+ "hooker": {
5415
+ "version": "0.2.3",
5416
+ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
5417
+ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk="
5418
+ },
5419
+ "underscore.string": {
5420
+ "version": "3.2.3",
5421
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz",
5422
+ "integrity": "sha1-gGmSYzZl1eX8tNsfs6hi62jp5to="
5423
+ }
5424
+ }
5425
+ },
5426
+ "grunt-legacy-util": {
5427
+ "version": "1.0.0",
5428
+ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz",
5429
+ "integrity": "sha1-OGqnjcbtUJhsKxiVcmWxtIq7m4Y=",
5430
+ "requires": {
5431
+ "async": "1.5.2",
5432
+ "exit": "0.1.2",
5433
+ "getobject": "0.1.0",
5434
+ "hooker": "0.2.3",
5435
+ "lodash": "4.3.0",
5436
+ "underscore.string": "3.2.3",
5437
+ "which": "1.2.14"
5438
+ },
5439
+ "dependencies": {
5440
+ "async": {
5441
+ "version": "1.5.2",
5442
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
5443
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
5444
+ },
5445
+ "getobject": {
5446
+ "version": "0.1.0",
5447
+ "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
5448
+ "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw="
5449
+ },
5450
+ "hooker": {
5451
+ "version": "0.2.3",
5452
+ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
5453
+ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk="
5454
+ },
5455
+ "lodash": {
5456
+ "version": "4.3.0",
5457
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz",
5458
+ "integrity": "sha1-79nEpuxT87BUEkKZFcPkgk5NJaQ="
5459
+ },
5460
+ "underscore.string": {
5461
+ "version": "3.2.3",
5462
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz",
5463
+ "integrity": "sha1-gGmSYzZl1eX8tNsfs6hi62jp5to="
5464
+ },
5465
+ "which": {
5466
+ "version": "1.2.14",
5467
+ "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
5468
+ "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=",
5469
+ "requires": {
5470
+ "isexe": "2.0.0"
5471
+ },
5472
+ "dependencies": {
5473
+ "isexe": {
5474
+ "version": "2.0.0",
5475
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
5476
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
5477
+ }
5478
+ }
5479
+ }
5480
+ }
5481
+ },
5482
+ "iconv-lite": {
5483
+ "version": "0.4.15",
5484
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz",
5485
+ "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es="
5486
+ },
5487
+ "js-yaml": {
5488
+ "version": "3.5.5",
5489
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz",
5490
+ "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=",
5491
+ "requires": {
5492
+ "argparse": "1.0.9",
5493
+ "esprima": "2.7.3"
5494
+ },
5495
+ "dependencies": {
5496
+ "argparse": {
5497
+ "version": "1.0.9",
5498
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
5499
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
5500
+ "requires": {
5501
+ "sprintf-js": "1.0.3"
5502
+ },
5503
+ "dependencies": {
5504
+ "sprintf-js": {
5505
+ "version": "1.0.3",
5506
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
5507
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
5508
+ }
5509
+ }
5510
+ },
5511
+ "esprima": {
5512
+ "version": "2.7.3",
5513
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
5514
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE="
5515
+ }
5516
+ }
5517
+ },
5518
+ "minimatch": {
5519
+ "version": "3.0.3",
5520
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
5521
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
5522
+ "requires": {
5523
+ "brace-expansion": "1.1.6"
5524
+ },
5525
+ "dependencies": {
5526
+ "brace-expansion": {
5527
+ "version": "1.1.6",
5528
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
5529
+ "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=",
5530
+ "requires": {
5531
+ "balanced-match": "0.4.2",
5532
+ "concat-map": "0.0.1"
5533
+ },
5534
+ "dependencies": {
5535
+ "balanced-match": {
5536
+ "version": "0.4.2",
5537
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
5538
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg="
5539
+ },
5540
+ "concat-map": {
5541
+ "version": "0.0.1",
5542
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
5543
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
5544
+ }
5545
+ }
5546
+ }
5547
+ }
5548
+ },
5549
+ "nopt": {
5550
+ "version": "3.0.6",
5551
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
5552
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
5553
+ "requires": {
5554
+ "abbrev": "1.1.0"
5555
+ },
5556
+ "dependencies": {
5557
+ "abbrev": {
5558
+ "version": "1.1.0",
5559
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
5560
+ "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8="
5561
+ }
5562
+ }
5563
+ },
5564
+ "path-is-absolute": {
5565
+ "version": "1.0.1",
5566
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
5567
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
5568
+ },
5569
+ "rimraf": {
5570
+ "version": "2.2.8",
5571
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
5572
+ "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI="
5573
+ }
5574
+ }
5575
+ },
5576
+ "jit-grunt": {
5577
+ "version": "0.10.0",
5578
+ "resolved": "https://registry.npmjs.org/jit-grunt/-/jit-grunt-0.10.0.tgz",
5579
+ "integrity": "sha1-AIw6f+Hpa9DYTiYOofoXg0V/ecI=",
5580
+ "dev": true
5581
+ },
5582
+ "js-yaml": {
5583
+ "version": "3.4.6",
5584
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.4.6.tgz",
5585
+ "integrity": "sha1-a+GyP2JJ9T0pM3D9TRqqY84bTrA=",
5586
+ "dev": true,
5587
+ "requires": {
5588
+ "argparse": "1.0.9",
5589
+ "esprima": "2.7.3",
5590
+ "inherit": "2.2.6"
5591
+ },
5592
+ "dependencies": {
5593
+ "argparse": {
5594
+ "version": "1.0.9",
5595
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
5596
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
5597
+ "dev": true,
5598
+ "requires": {
5599
+ "sprintf-js": "1.0.3"
5600
+ },
5601
+ "dependencies": {
5602
+ "sprintf-js": {
5603
+ "version": "1.0.3",
5604
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
5605
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
5606
+ "dev": true
5607
+ }
5608
+ }
5609
+ },
5610
+ "esprima": {
5611
+ "version": "2.7.3",
5612
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
5613
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
5614
+ "dev": true
5615
+ },
5616
+ "inherit": {
5617
+ "version": "2.2.6",
5618
+ "resolved": "https://registry.npmjs.org/inherit/-/inherit-2.2.6.tgz",
5619
+ "integrity": "sha1-8WFLBshUToEo5CKchjR9tzrZeI0=",
5620
+ "dev": true
5621
+ }
5622
+ }
5623
+ },
5624
+ "load-grunt-tasks": {
5625
+ "version": "3.3.0",
5626
+ "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-3.3.0.tgz",
5627
+ "integrity": "sha1-vliSkJRY2T3fdp60vGhRAggMYyE=",
5628
+ "dev": true,
5629
+ "requires": {
5630
+ "arrify": "1.0.1",
5631
+ "multimatch": "2.1.0",
5632
+ "pkg-up": "1.0.0"
5633
+ },
5634
+ "dependencies": {
5635
+ "arrify": {
5636
+ "version": "1.0.1",
5637
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
5638
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
5639
+ "dev": true
5640
+ },
5641
+ "multimatch": {
5642
+ "version": "2.1.0",
5643
+ "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz",
5644
+ "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=",
5645
+ "dev": true,
5646
+ "requires": {
5647
+ "array-differ": "1.0.0",
5648
+ "array-union": "1.0.2",
5649
+ "arrify": "1.0.1",
5650
+ "minimatch": "3.0.3"
5651
+ },
5652
+ "dependencies": {
5653
+ "array-differ": {
5654
+ "version": "1.0.0",
5655
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
5656
+ "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
5657
+ "dev": true
5658
+ },
5659
+ "array-union": {
5660
+ "version": "1.0.2",
5661
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
5662
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
5663
+ "dev": true,
5664
+ "requires": {
5665
+ "array-uniq": "1.0.3"
5666
+ },
5667
+ "dependencies": {
5668
+ "array-uniq": {
5669
+ "version": "1.0.3",
5670
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
5671
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
5672
+ "dev": true
5673
+ }
5674
+ }
5675
+ },
5676
+ "minimatch": {
5677
+ "version": "3.0.3",
5678
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
5679
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
5680
+ "dev": true,
5681
+ "requires": {
5682
+ "brace-expansion": "1.1.6"
5683
+ },
5684
+ "dependencies": {
5685
+ "brace-expansion": {
5686
+ "version": "1.1.6",
5687
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
5688
+ "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=",
5689
+ "dev": true,
5690
+ "requires": {
5691
+ "balanced-match": "0.4.2",
5692
+ "concat-map": "0.0.1"
5693
+ },
5694
+ "dependencies": {
5695
+ "balanced-match": {
5696
+ "version": "0.4.2",
5697
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
5698
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
5699
+ "dev": true
5700
+ },
5701
+ "concat-map": {
5702
+ "version": "0.0.1",
5703
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
5704
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
5705
+ "dev": true
5706
+ }
5707
+ }
5708
+ }
5709
+ }
5710
+ }
5711
+ }
5712
+ },
5713
+ "pkg-up": {
5714
+ "version": "1.0.0",
5715
+ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz",
5716
+ "integrity": "sha1-Pgj7RhUlxEIWJKM7n35tCvWwWiY=",
5717
+ "dev": true,
5718
+ "requires": {
5719
+ "find-up": "1.1.2"
5720
+ },
5721
+ "dependencies": {
5722
+ "find-up": {
5723
+ "version": "1.1.2",
5724
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
5725
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
5726
+ "dev": true,
5727
+ "requires": {
5728
+ "path-exists": "2.1.0",
5729
+ "pinkie-promise": "2.0.1"
5730
+ },
5731
+ "dependencies": {
5732
+ "path-exists": {
5733
+ "version": "2.1.0",
5734
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
5735
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
5736
+ "dev": true,
5737
+ "requires": {
5738
+ "pinkie-promise": "2.0.1"
5739
+ }
5740
+ },
5741
+ "pinkie-promise": {
5742
+ "version": "2.0.1",
5743
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
5744
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
5745
+ "dev": true,
5746
+ "requires": {
5747
+ "pinkie": "2.0.4"
5748
+ },
5749
+ "dependencies": {
5750
+ "pinkie": {
5751
+ "version": "2.0.4",
5752
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
5753
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
5754
+ "dev": true
5755
+ }
5756
+ }
5757
+ }
5758
+ }
5759
+ }
5760
+ }
5761
+ }
5762
+ }
5763
+ }
5764
+ }
5765
+ },
5766
+ "lodash": {
5767
+ "version": "3.10.1",
5768
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
5769
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
5770
+ },
5771
+ "time-grunt": {
5772
+ "version": "1.4.0",
5773
+ "resolved": "https://registry.npmjs.org/time-grunt/-/time-grunt-1.4.0.tgz",
5774
+ "integrity": "sha1-BiIT5mDJB+hvRAVWwB6mWXtxJCA=",
5775
+ "dev": true,
5776
+ "requires": {
5777
+ "chalk": "1.1.3",
5778
+ "date-time": "1.1.0",
5779
+ "figures": "1.7.0",
5780
+ "hooker": "0.2.3",
5781
+ "number-is-nan": "1.0.1",
5782
+ "pretty-ms": "2.1.0",
5783
+ "text-table": "0.2.0"
5784
+ },
5785
+ "dependencies": {
5786
+ "chalk": {
5787
+ "version": "1.1.3",
5788
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
5789
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
5790
+ "dev": true,
5791
+ "requires": {
5792
+ "ansi-styles": "2.2.1",
5793
+ "escape-string-regexp": "1.0.5",
5794
+ "has-ansi": "2.0.0",
5795
+ "strip-ansi": "3.0.1",
5796
+ "supports-color": "2.0.0"
5797
+ },
5798
+ "dependencies": {
5799
+ "ansi-styles": {
5800
+ "version": "2.2.1",
5801
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
5802
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
5803
+ "dev": true
5804
+ },
5805
+ "escape-string-regexp": {
5806
+ "version": "1.0.5",
5807
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
5808
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
5809
+ "dev": true
5810
+ },
5811
+ "has-ansi": {
5812
+ "version": "2.0.0",
5813
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
5814
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
5815
+ "dev": true,
5816
+ "requires": {
5817
+ "ansi-regex": "2.1.1"
5818
+ },
5819
+ "dependencies": {
5820
+ "ansi-regex": {
5821
+ "version": "2.1.1",
5822
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
5823
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
5824
+ "dev": true
5825
+ }
5826
+ }
5827
+ },
5828
+ "strip-ansi": {
5829
+ "version": "3.0.1",
5830
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
5831
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
5832
+ "dev": true,
5833
+ "requires": {
5834
+ "ansi-regex": "2.1.1"
5835
+ },
5836
+ "dependencies": {
5837
+ "ansi-regex": {
5838
+ "version": "2.1.1",
5839
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
5840
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
5841
+ "dev": true
5842
+ }
5843
+ }
5844
+ },
5845
+ "supports-color": {
5846
+ "version": "2.0.0",
5847
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
5848
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
5849
+ "dev": true
5850
+ }
5851
+ }
5852
+ },
5853
+ "date-time": {
5854
+ "version": "1.1.0",
5855
+ "resolved": "https://registry.npmjs.org/date-time/-/date-time-1.1.0.tgz",
5856
+ "integrity": "sha1-GIdtC9pMGf5w3Tv0sDTygbEqQLY=",
5857
+ "dev": true,
5858
+ "requires": {
5859
+ "time-zone": "0.1.0"
5860
+ },
5861
+ "dependencies": {
5862
+ "time-zone": {
5863
+ "version": "0.1.0",
5864
+ "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-0.1.0.tgz",
5865
+ "integrity": "sha1-Sncotqwo2w4Aj1FAQ/1VW9VXO0Y=",
5866
+ "dev": true
5867
+ }
5868
+ }
5869
+ },
5870
+ "figures": {
5871
+ "version": "1.7.0",
5872
+ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
5873
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
5874
+ "dev": true,
5875
+ "requires": {
5876
+ "escape-string-regexp": "1.0.5",
5877
+ "object-assign": "4.1.1"
5878
+ },
5879
+ "dependencies": {
5880
+ "escape-string-regexp": {
5881
+ "version": "1.0.5",
5882
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
5883
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
5884
+ "dev": true
5885
+ },
5886
+ "object-assign": {
5887
+ "version": "4.1.1",
5888
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
5889
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
5890
+ "dev": true
5891
+ }
5892
+ }
5893
+ },
5894
+ "hooker": {
5895
+ "version": "0.2.3",
5896
+ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
5897
+ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
5898
+ "dev": true
5899
+ },
5900
+ "number-is-nan": {
5901
+ "version": "1.0.1",
5902
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
5903
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
5904
+ "dev": true
5905
+ },
5906
+ "pretty-ms": {
5907
+ "version": "2.1.0",
5908
+ "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz",
5909
+ "integrity": "sha1-QlfCVt8/sLRR1q/6qwIYhBJpgdw=",
5910
+ "dev": true,
5911
+ "requires": {
5912
+ "is-finite": "1.0.2",
5913
+ "parse-ms": "1.0.1",
5914
+ "plur": "1.0.0"
5915
+ },
5916
+ "dependencies": {
5917
+ "is-finite": {
5918
+ "version": "1.0.2",
5919
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
5920
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
5921
+ "dev": true,
5922
+ "requires": {
5923
+ "number-is-nan": "1.0.1"
5924
+ }
5925
+ },
5926
+ "parse-ms": {
5927
+ "version": "1.0.1",
5928
+ "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz",
5929
+ "integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=",
5930
+ "dev": true
5931
+ },
5932
+ "plur": {
5933
+ "version": "1.0.0",
5934
+ "resolved": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz",
5935
+ "integrity": "sha1-24XGgU9eXlo7Se/CjWBP7GKXUVY=",
5936
+ "dev": true
5937
+ }
5938
+ }
5939
+ },
5940
+ "text-table": {
5941
+ "version": "0.2.0",
5942
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
5943
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
5944
+ "dev": true
5945
+ }
5946
+ }
5947
+ }
5948
+ }
5949
+ },
5950
+ "lodash": {
5951
+ "version": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
5952
+ "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=",
5953
+ "dev": true
5954
+ },
5955
+ "lodash._basecopy": {
5956
+ "version": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
5957
+ "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
5958
+ "dev": true
5959
+ },
5960
+ "lodash._basetostring": {
5961
+ "version": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
5962
+ "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=",
5963
+ "dev": true
5964
+ },
5965
+ "lodash._basevalues": {
5966
+ "version": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
5967
+ "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=",
5968
+ "dev": true
5969
+ },
5970
+ "lodash._getnative": {
5971
+ "version": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
5972
+ "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
5973
+ "dev": true
5974
+ },
5975
+ "lodash._isiterateecall": {
5976
+ "version": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
5977
+ "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
5978
+ "dev": true
5979
+ },
5980
+ "lodash._reescape": {
5981
+ "version": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
5982
+ "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=",
5983
+ "dev": true
5984
+ },
5985
+ "lodash._reevaluate": {
5986
+ "version": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
5987
+ "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=",
5988
+ "dev": true
5989
+ },
5990
+ "lodash._reinterpolate": {
5991
+ "version": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
5992
+ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
5993
+ "dev": true
5994
+ },
5995
+ "lodash._root": {
5996
+ "version": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
5997
+ "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
5998
+ "dev": true
5999
+ },
6000
+ "lodash.escape": {
6001
+ "version": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
6002
+ "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
6003
+ "dev": true,
6004
+ "requires": {
6005
+ "lodash._root": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz"
6006
+ }
6007
+ },
6008
+ "lodash.isarguments": {
6009
+ "version": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
6010
+ "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
6011
+ "dev": true
6012
+ },
6013
+ "lodash.isarray": {
6014
+ "version": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
6015
+ "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
6016
+ "dev": true
6017
+ },
6018
+ "lodash.isequal": {
6019
+ "version": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.4.0.tgz",
6020
+ "integrity": "sha1-YpV2jpjhTcFc6NNi72NA24KFIDE=",
6021
+ "dev": true
6022
+ },
6023
+ "lodash.keys": {
6024
+ "version": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
6025
+ "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
6026
+ "dev": true,
6027
+ "requires": {
6028
+ "lodash._getnative": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
6029
+ "lodash.isarguments": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
6030
+ "lodash.isarray": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz"
6031
+ }
6032
+ },
6033
+ "lodash.restparam": {
6034
+ "version": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
6035
+ "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
6036
+ "dev": true
6037
+ },
6038
+ "lodash.template": {
6039
+ "version": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
6040
+ "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
6041
+ "dev": true,
6042
+ "requires": {
6043
+ "lodash._basecopy": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
6044
+ "lodash._basetostring": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
6045
+ "lodash._basevalues": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
6046
+ "lodash._isiterateecall": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
6047
+ "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
6048
+ "lodash.escape": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
6049
+ "lodash.keys": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
6050
+ "lodash.restparam": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
6051
+ "lodash.templatesettings": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz"
6052
+ }
6053
+ },
6054
+ "lodash.templatesettings": {
6055
+ "version": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
6056
+ "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
6057
+ "dev": true,
6058
+ "requires": {
6059
+ "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
6060
+ "lodash.escape": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz"
6061
+ }
6062
+ },
6063
+ "logalot": {
6064
+ "version": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz",
6065
+ "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=",
6066
+ "dev": true,
6067
+ "optional": true,
6068
+ "requires": {
6069
+ "figures": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
6070
+ "squeak": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz"
6071
+ }
6072
+ },
6073
+ "longest": {
6074
+ "version": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
6075
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
6076
+ "dev": true,
6077
+ "optional": true
6078
+ },
6079
+ "loud-rejection": {
6080
+ "version": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
6081
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
6082
+ "dev": true,
6083
+ "requires": {
6084
+ "currently-unhandled": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
6085
+ "signal-exit": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"
6086
+ }
6087
+ },
6088
+ "lowercase-keys": {
6089
+ "version": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
6090
+ "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=",
6091
+ "dev": true
6092
+ },
6093
+ "lpad": {
6094
+ "version": "https://registry.npmjs.org/lpad/-/lpad-2.0.1.tgz",
6095
+ "integrity": "sha1-KDFrTnsgFfUR9lkUWa/A5ZRACK0=",
6096
+ "dev": true,
6097
+ "optional": true
6098
+ },
6099
+ "lpad-align": {
6100
+ "version": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.0.tgz",
6101
+ "integrity": "sha1-J/p4a8tpX8Q06hUAcj640L3IK/Q=",
6102
+ "dev": true,
6103
+ "optional": true,
6104
+ "requires": {
6105
+ "get-stdin": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
6106
+ "longest": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
6107
+ "lpad": "https://registry.npmjs.org/lpad/-/lpad-2.0.1.tgz",
6108
+ "meow": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz"
6109
+ }
6110
+ },
6111
+ "lru-cache": {
6112
+ "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
6113
+ "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
6114
+ "dev": true
6115
+ },
6116
+ "map-obj": {
6117
+ "version": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
6118
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
6119
+ "dev": true
6120
+ },
6121
+ "md5-file": {
6122
+ "version": "https://registry.npmjs.org/md5-file/-/md5-file-2.0.7.tgz",
6123
+ "integrity": "sha1-MH94vQTMsFTkZ+xmHPpamv3J8hA=",
6124
+ "dev": true
6125
+ },
6126
+ "media-typer": {
6127
+ "version": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
6128
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
6129
+ "dev": true
6130
+ },
6131
+ "meow": {
6132
+ "version": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
6133
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
6134
+ "dev": true,
6135
+ "requires": {
6136
+ "camelcase-keys": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
6137
+ "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
6138
+ "loud-rejection": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
6139
+ "map-obj": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
6140
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
6141
+ "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
6142
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
6143
+ "read-pkg-up": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
6144
+ "redent": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
6145
+ "trim-newlines": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz"
6146
+ },
6147
+ "dependencies": {
6148
+ "object-assign": {
6149
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
6150
+ "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
6151
+ "dev": true
6152
+ }
6153
+ }
6154
+ },
6155
+ "merge-stream": {
6156
+ "version": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
6157
+ "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
6158
+ "dev": true,
6159
+ "requires": {
6160
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz"
6161
+ }
6162
+ },
6163
+ "micromatch": {
6164
+ "version": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
6165
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
6166
+ "dev": true,
6167
+ "requires": {
6168
+ "arr-diff": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
6169
+ "array-unique": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
6170
+ "braces": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
6171
+ "expand-brackets": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
6172
+ "extglob": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
6173
+ "filename-regex": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz",
6174
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
6175
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
6176
+ "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.1.0.tgz",
6177
+ "normalize-path": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz",
6178
+ "object.omit": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
6179
+ "parse-glob": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
6180
+ "regex-cache": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz"
6181
+ },
6182
+ "dependencies": {
6183
+ "is-extglob": {
6184
+ "version": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
6185
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
6186
+ "dev": true
6187
+ },
6188
+ "is-glob": {
6189
+ "version": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
6190
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
6191
+ "dev": true,
6192
+ "requires": {
6193
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz"
6194
+ }
6195
+ }
6196
+ }
6197
+ },
6198
+ "mime-db": {
6199
+ "version": "https://registry.npmjs.org/mime-db/-/mime-db-1.25.0.tgz",
6200
+ "integrity": "sha1-wY29fHOl2/b0SgJNwNFloeexw5I=",
6201
+ "dev": true
6202
+ },
6203
+ "mime-types": {
6204
+ "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz",
6205
+ "integrity": "sha1-4HqqnGxrmnyjASxpADrSWjnpKog=",
6206
+ "dev": true,
6207
+ "requires": {
6208
+ "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.25.0.tgz"
6209
+ }
6210
+ },
6211
+ "minimatch": {
6212
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
6213
+ "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
6214
+ "dev": true,
6215
+ "requires": {
6216
+ "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
6217
+ "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz"
6218
+ }
6219
+ },
6220
+ "minimist": {
6221
+ "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
6222
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
6223
+ "dev": true
6224
+ },
6225
+ "mkdirp": {
6226
+ "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
6227
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
6228
+ "dev": true,
6229
+ "requires": {
6230
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
6231
+ },
6232
+ "dependencies": {
6233
+ "minimist": {
6234
+ "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
6235
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
6236
+ "dev": true
6237
+ }
6238
+ }
6239
+ },
6240
+ "ms": {
6241
+ "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
6242
+ "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
6243
+ "dev": true
6244
+ },
6245
+ "multipipe": {
6246
+ "version": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
6247
+ "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
6248
+ "dev": true,
6249
+ "requires": {
6250
+ "duplexer2": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz"
6251
+ },
6252
+ "dependencies": {
6253
+ "duplexer2": {
6254
+ "version": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
6255
+ "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
6256
+ "dev": true,
6257
+ "requires": {
6258
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz"
6259
+ }
6260
+ },
6261
+ "isarray": {
6262
+ "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
6263
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
6264
+ "dev": true
6265
+ },
6266
+ "readable-stream": {
6267
+ "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
6268
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
6269
+ "dev": true,
6270
+ "requires": {
6271
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
6272
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
6273
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
6274
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
6275
+ }
6276
+ }
6277
+ }
6278
+ },
6279
+ "nan": {
6280
+ "version": "2.7.0",
6281
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz",
6282
+ "integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY=",
6283
+ "dev": true,
6284
+ "optional": true
6285
+ },
6286
+ "node-status-codes": {
6287
+ "version": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz",
6288
+ "integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8=",
6289
+ "dev": true
6290
+ },
6291
+ "node-uuid": {
6292
+ "version": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.0.tgz",
6293
+ "integrity": "sha1-B/myM3Vy/2J1x3Xh1IUT86RdemU=",
6294
+ "dev": true
6295
+ },
6296
+ "nopt": {
6297
+ "version": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
6298
+ "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
6299
+ "dev": true,
6300
+ "requires": {
6301
+ "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz"
6302
+ }
6303
+ },
6304
+ "normalize-package-data": {
6305
+ "version": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
6306
+ "integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=",
6307
+ "dev": true,
6308
+ "requires": {
6309
+ "hosted-git-info": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz",
6310
+ "is-builtin-module": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
6311
+ "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
6312
+ "validate-npm-package-license": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz"
6313
+ }
6314
+ },
6315
+ "normalize-path": {
6316
+ "version": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz",
6317
+ "integrity": "sha1-R4hqwWYnYNQmG32XnSQXCdPOP3o=",
6318
+ "dev": true
6319
+ },
6320
+ "normalize-range": {
6321
+ "version": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
6322
+ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
6323
+ "dev": true
6324
+ },
6325
+ "num2fraction": {
6326
+ "version": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
6327
+ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
6328
+ "dev": true
6329
+ },
6330
+ "number-is-nan": {
6331
+ "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
6332
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
6333
+ "dev": true
6334
+ },
6335
+ "object-assign": {
6336
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
6337
+ "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=",
6338
+ "dev": true
6339
+ },
6340
+ "object.omit": {
6341
+ "version": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
6342
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
6343
+ "dev": true,
6344
+ "requires": {
6345
+ "for-own": "https://registry.npmjs.org/for-own/-/for-own-0.1.4.tgz",
6346
+ "is-extendable": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
6347
+ }
6348
+ },
6349
+ "on-finished": {
6350
+ "version": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
6351
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
6352
+ "dev": true,
6353
+ "requires": {
6354
+ "ee-first": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
6355
+ }
6356
+ },
6357
+ "once": {
6358
+ "version": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
6359
+ "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
6360
+ "dev": true,
6361
+ "requires": {
6362
+ "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
6363
+ }
6364
+ },
6365
+ "onetime": {
6366
+ "version": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
6367
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
6368
+ "dev": true
6369
+ },
6370
+ "optional": {
6371
+ "version": "https://registry.npmjs.org/optional/-/optional-0.1.3.tgz",
6372
+ "integrity": "sha1-+HU3UXtZpecyz9jxjk9+6nq0dh4=",
6373
+ "dev": true
6374
+ },
6375
+ "optipng-bin": {
6376
+ "version": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-3.1.2.tgz",
6377
+ "integrity": "sha1-GMWjOI7V1vHm7xmYqwprzIvdDKA=",
6378
+ "dev": true,
6379
+ "optional": true,
6380
+ "requires": {
6381
+ "bin-build": "https://registry.npmjs.org/bin-build/-/bin-build-2.2.0.tgz",
6382
+ "bin-wrapper": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz",
6383
+ "logalot": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz"
6384
+ }
6385
+ },
6386
+ "ordered-read-streams": {
6387
+ "version": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz",
6388
+ "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=",
6389
+ "dev": true,
6390
+ "requires": {
6391
+ "is-stream": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
6392
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz"
6393
+ }
6394
+ },
6395
+ "os-filter-obj": {
6396
+ "version": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-1.0.3.tgz",
6397
+ "integrity": "sha1-WRUzDZDs7VV9LZOKMcbdIU2cY60=",
6398
+ "dev": true,
6399
+ "optional": true
6400
+ },
6401
+ "os-tmpdir": {
6402
+ "version": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
6403
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
6404
+ "dev": true
6405
+ },
6406
+ "parse-glob": {
6407
+ "version": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
6408
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
6409
+ "dev": true,
6410
+ "requires": {
6411
+ "glob-base": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
6412
+ "is-dotfile": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz",
6413
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
6414
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
6415
+ },
6416
+ "dependencies": {
6417
+ "is-extglob": {
6418
+ "version": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
6419
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
6420
+ "dev": true
6421
+ },
6422
+ "is-glob": {
6423
+ "version": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
6424
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
6425
+ "dev": true,
6426
+ "requires": {
6427
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz"
6428
+ }
6429
+ }
6430
+ }
6431
+ },
6432
+ "parse-json": {
6433
+ "version": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
6434
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
6435
+ "dev": true,
6436
+ "requires": {
6437
+ "error-ex": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz"
6438
+ }
6439
+ },
6440
+ "parse-ms": {
6441
+ "version": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz",
6442
+ "integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=",
6443
+ "dev": true
6444
+ },
6445
+ "parseurl": {
6446
+ "version": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz",
6447
+ "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=",
6448
+ "dev": true
6449
+ },
6450
+ "path-dirname": {
6451
+ "version": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
6452
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
6453
+ "dev": true
6454
+ },
6455
+ "path-exists": {
6456
+ "version": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
6457
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
6458
+ "dev": true,
6459
+ "requires": {
6460
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
6461
+ }
6462
+ },
6463
+ "path-is-absolute": {
6464
+ "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
6465
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
6466
+ "dev": true
6467
+ },
6468
+ "path-type": {
6469
+ "version": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
6470
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
6471
+ "dev": true,
6472
+ "requires": {
6473
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
6474
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
6475
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
6476
+ },
6477
+ "dependencies": {
6478
+ "graceful-fs": {
6479
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
6480
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
6481
+ "dev": true
6482
+ }
6483
+ }
6484
+ },
6485
+ "pend": {
6486
+ "version": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
6487
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
6488
+ "dev": true
6489
+ },
6490
+ "pify": {
6491
+ "version": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
6492
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
6493
+ "dev": true
6494
+ },
6495
+ "pinkie": {
6496
+ "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
6497
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
6498
+ "dev": true
6499
+ },
6500
+ "pinkie-promise": {
6501
+ "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
6502
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
6503
+ "dev": true,
6504
+ "requires": {
6505
+ "pinkie": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
6506
+ }
6507
+ },
6508
+ "plur": {
6509
+ "version": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz",
6510
+ "integrity": "sha1-24XGgU9eXlo7Se/CjWBP7GKXUVY=",
6511
+ "dev": true
6512
+ },
6513
+ "postcss": {
6514
+ "version": "https://registry.npmjs.org/postcss/-/postcss-5.2.6.tgz",
6515
+ "integrity": "sha1-olLNZ81SWFA18X6a0Ss1E3p73Z4=",
6516
+ "dev": true,
6517
+ "requires": {
6518
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
6519
+ "js-base64": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
6520
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
6521
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz"
6522
+ }
6523
+ },
6524
+ "postcss-value-parser": {
6525
+ "version": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
6526
+ "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
6527
+ "dev": true
6528
+ },
6529
+ "prepend-http": {
6530
+ "version": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
6531
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
6532
+ "dev": true
6533
+ },
6534
+ "preserve": {
6535
+ "version": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
6536
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
6537
+ "dev": true
6538
+ },
6539
+ "pretty-bytes": {
6540
+ "version": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz",
6541
+ "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=",
6542
+ "dev": true,
6543
+ "requires": {
6544
+ "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
6545
+ }
6546
+ },
6547
+ "pretty-ms": {
6548
+ "version": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz",
6549
+ "integrity": "sha1-QlfCVt8/sLRR1q/6qwIYhBJpgdw=",
6550
+ "dev": true,
6551
+ "requires": {
6552
+ "is-finite": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
6553
+ "parse-ms": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz",
6554
+ "plur": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz"
6555
+ }
6556
+ },
6557
+ "process-nextick-args": {
6558
+ "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
6559
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
6560
+ "dev": true
6561
+ },
6562
+ "promised-io": {
6563
+ "version": "https://registry.npmjs.org/promised-io/-/promised-io-0.3.5.tgz",
6564
+ "integrity": "sha1-StIXuzZYvKrplGsXqGaOzYUeE1Y=",
6565
+ "dev": true
6566
+ },
6567
+ "q": {
6568
+ "version": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
6569
+ "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=",
6570
+ "dev": true,
6571
+ "optional": true
6572
+ },
6573
+ "qs": {
6574
+ "version": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz",
6575
+ "integrity": "sha1-TZMuXH6kEcynajEtOaYGIA/VDNk=",
6576
+ "dev": true
6577
+ },
6578
+ "randomatic": {
6579
+ "version": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz",
6580
+ "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=",
6581
+ "dev": true,
6582
+ "requires": {
6583
+ "is-number": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
6584
+ "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.1.0.tgz"
6585
+ }
6586
+ },
6587
+ "raw-body": {
6588
+ "version": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz",
6589
+ "integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=",
6590
+ "dev": true,
6591
+ "requires": {
6592
+ "bytes": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz",
6593
+ "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
6594
+ "unpipe": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
6595
+ },
6596
+ "dependencies": {
6597
+ "bytes": {
6598
+ "version": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz",
6599
+ "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=",
6600
+ "dev": true
6601
+ },
6602
+ "iconv-lite": {
6603
+ "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
6604
+ "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=",
6605
+ "dev": true
6606
+ }
6607
+ }
6608
+ },
6609
+ "rc": {
6610
+ "version": "https://registry.npmjs.org/rc/-/rc-1.1.6.tgz",
6611
+ "integrity": "sha1-Q2UbdrauU7XIAvEVH6P8OwWZack=",
6612
+ "dev": true,
6613
+ "requires": {
6614
+ "deep-extend": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz",
6615
+ "ini": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
6616
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
6617
+ "strip-json-comments": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz"
6618
+ }
6619
+ },
6620
+ "read-all-stream": {
6621
+ "version": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
6622
+ "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=",
6623
+ "dev": true,
6624
+ "requires": {
6625
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
6626
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz"
6627
+ }
6628
+ },
6629
+ "read-pkg": {
6630
+ "version": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
6631
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
6632
+ "dev": true,
6633
+ "requires": {
6634
+ "load-json-file": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
6635
+ "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
6636
+ "path-type": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz"
6637
+ }
6638
+ },
6639
+ "read-pkg-up": {
6640
+ "version": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
6641
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
6642
+ "dev": true,
6643
+ "requires": {
6644
+ "find-up": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
6645
+ "read-pkg": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz"
6646
+ }
6647
+ },
6648
+ "readable-stream": {
6649
+ "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
6650
+ "integrity": "sha1-qeb+w8fdqF+LsbO6cChgRVb8gl4=",
6651
+ "dev": true,
6652
+ "requires": {
6653
+ "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
6654
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
6655
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
6656
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
6657
+ "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
6658
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
6659
+ "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
6660
+ }
6661
+ },
6662
+ "redent": {
6663
+ "version": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
6664
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
6665
+ "dev": true,
6666
+ "requires": {
6667
+ "indent-string": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
6668
+ "strip-indent": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz"
6669
+ }
6670
+ },
6671
+ "regex-cache": {
6672
+ "version": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz",
6673
+ "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=",
6674
+ "dev": true,
6675
+ "requires": {
6676
+ "is-equal-shallow": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
6677
+ "is-primitive": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz"
6678
+ }
6679
+ },
6680
+ "repeat-element": {
6681
+ "version": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
6682
+ "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
6683
+ "dev": true
6684
+ },
6685
+ "repeat-string": {
6686
+ "version": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
6687
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
6688
+ "dev": true
6689
+ },
6690
+ "repeating": {
6691
+ "version": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
6692
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
6693
+ "dev": true,
6694
+ "requires": {
6695
+ "is-finite": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz"
6696
+ }
6697
+ },
6698
+ "replace-ext": {
6699
+ "version": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
6700
+ "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
6701
+ "dev": true
6702
+ },
6703
+ "rimraf": {
6704
+ "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
6705
+ "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
6706
+ "dev": true
6707
+ },
6708
+ "rsyncwrapper": {
6709
+ "version": "2.0.1",
6710
+ "resolved": "https://registry.npmjs.org/rsyncwrapper/-/rsyncwrapper-2.0.1.tgz",
6711
+ "integrity": "sha1-itRMAz4W1IFvMBgMWy17ssIlk5A=",
6712
+ "dev": true,
6713
+ "requires": {
6714
+ "lodash": "4.15.0"
6715
+ },
6716
+ "dependencies": {
6717
+ "lodash": {
6718
+ "version": "4.15.0",
6719
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.15.0.tgz",
6720
+ "integrity": "sha1-MWI5HY8BQKoiz49rPDTWt/Y9Oqk=",
6721
+ "dev": true
6722
+ }
6723
+ }
6724
+ },
6725
+ "sax": {
6726
+ "version": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz",
6727
+ "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=",
6728
+ "dev": true,
6729
+ "optional": true
6730
+ },
6731
+ "seek-bzip": {
6732
+ "version": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz",
6733
+ "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=",
6734
+ "dev": true,
6735
+ "requires": {
6736
+ "commander": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz"
6737
+ }
6738
+ },
6739
+ "semver": {
6740
+ "version": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
6741
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
6742
+ "dev": true
6743
+ },
6744
+ "semver-regex": {
6745
+ "version": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz",
6746
+ "integrity": "sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk=",
6747
+ "dev": true,
6748
+ "optional": true
6749
+ },
6750
+ "semver-truncate": {
6751
+ "version": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz",
6752
+ "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=",
6753
+ "dev": true,
6754
+ "optional": true,
6755
+ "requires": {
6756
+ "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
6757
+ }
6758
+ },
6759
+ "set-immediate-shim": {
6760
+ "version": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
6761
+ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
6762
+ "dev": true
6763
+ },
6764
+ "shelljs": {
6765
+ "version": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
6766
+ "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=",
6767
+ "dev": true
6768
+ },
6769
+ "sigmund": {
6770
+ "version": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
6771
+ "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
6772
+ "dev": true
6773
+ },
6774
+ "signal-exit": {
6775
+ "version": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
6776
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
6777
+ "dev": true
6778
+ },
6779
+ "source-map": {
6780
+ "version": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
6781
+ "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
6782
+ "dev": true
6783
+ },
6784
+ "sparkles": {
6785
+ "version": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
6786
+ "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=",
6787
+ "dev": true
6788
+ },
6789
+ "spdx-correct": {
6790
+ "version": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
6791
+ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
6792
+ "dev": true,
6793
+ "requires": {
6794
+ "spdx-license-ids": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz"
6795
+ }
6796
+ },
6797
+ "spdx-expression-parse": {
6798
+ "version": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
6799
+ "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
6800
+ "dev": true
6801
+ },
6802
+ "spdx-license-ids": {
6803
+ "version": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
6804
+ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
6805
+ "dev": true
6806
+ },
6807
+ "sprintf-js": {
6808
+ "version": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
6809
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
6810
+ "dev": true,
6811
+ "optional": true
6812
+ },
6813
+ "squeak": {
6814
+ "version": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz",
6815
+ "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=",
6816
+ "dev": true,
6817
+ "optional": true,
6818
+ "requires": {
6819
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
6820
+ "console-stream": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz",
6821
+ "lpad-align": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.0.tgz"
6822
+ }
6823
+ },
6824
+ "stat-mode": {
6825
+ "version": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz",
6826
+ "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=",
6827
+ "dev": true
6828
+ },
6829
+ "statuses": {
6830
+ "version": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
6831
+ "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
6832
+ "dev": true
6833
+ },
6834
+ "stream-buffers": {
6835
+ "version": "2.2.0",
6836
+ "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz",
6837
+ "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=",
6838
+ "dev": true
6839
+ },
6840
+ "stream-combiner2": {
6841
+ "version": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
6842
+ "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=",
6843
+ "dev": true,
6844
+ "requires": {
6845
+ "duplexer2": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
6846
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz"
6847
+ }
6848
+ },
6849
+ "stream-shift": {
6850
+ "version": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
6851
+ "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
6852
+ "dev": true
6853
+ },
6854
+ "string_decoder": {
6855
+ "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
6856
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
6857
+ "dev": true
6858
+ },
6859
+ "strip-ansi": {
6860
+ "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
6861
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
6862
+ "dev": true,
6863
+ "requires": {
6864
+ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz"
6865
+ }
6866
+ },
6867
+ "strip-bom": {
6868
+ "version": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
6869
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
6870
+ "dev": true,
6871
+ "requires": {
6872
+ "is-utf8": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz"
6873
+ }
6874
+ },
6875
+ "strip-bom-stream": {
6876
+ "version": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz",
6877
+ "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=",
6878
+ "dev": true,
6879
+ "requires": {
6880
+ "first-chunk-stream": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
6881
+ "strip-bom": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz"
6882
+ }
6883
+ },
6884
+ "strip-dirs": {
6885
+ "version": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-1.1.1.tgz",
6886
+ "integrity": "sha1-lgu9EoeETzl1pFWKoQOoJV4kVqA=",
6887
+ "dev": true,
6888
+ "requires": {
6889
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
6890
+ "get-stdin": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
6891
+ "is-absolute": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz",
6892
+ "is-natural-number": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-2.1.1.tgz",
6893
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
6894
+ "sum-up": "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz"
6895
+ }
6896
+ },
6897
+ "strip-indent": {
6898
+ "version": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
6899
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
6900
+ "dev": true,
6901
+ "requires": {
6902
+ "get-stdin": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz"
6903
+ }
6904
+ },
6905
+ "strip-json-comments": {
6906
+ "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
6907
+ "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
6908
+ "dev": true
6909
+ },
6910
+ "strip-outer": {
6911
+ "version": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.0.tgz",
6912
+ "integrity": "sha1-qsC6YNLpDF1PJ1/Yhp/ZotMQ/7g=",
6913
+ "dev": true,
6914
+ "requires": {
6915
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
6916
+ }
6917
+ },
6918
+ "sum-up": {
6919
+ "version": "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz",
6920
+ "integrity": "sha1-HGYfZnBX9jvLeHWqFDi8FiUlFW4=",
6921
+ "dev": true,
6922
+ "requires": {
6923
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
6924
+ }
6925
+ },
6926
+ "supports-color": {
6927
+ "version": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz",
6928
+ "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=",
6929
+ "dev": true,
6930
+ "requires": {
6931
+ "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz"
6932
+ }
6933
+ },
6934
+ "svgo": {
6935
+ "version": "https://registry.npmjs.org/svgo/-/svgo-0.6.6.tgz",
6936
+ "integrity": "sha1-s0CIkDbyD5tEdUMHfQ9Vc+0ETAg=",
6937
+ "dev": true,
6938
+ "optional": true,
6939
+ "requires": {
6940
+ "coa": "https://registry.npmjs.org/coa/-/coa-1.0.1.tgz",
6941
+ "colors": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
6942
+ "csso": "https://registry.npmjs.org/csso/-/csso-2.0.0.tgz",
6943
+ "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz",
6944
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
6945
+ "sax": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz",
6946
+ "whet.extend": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz"
6947
+ },
6948
+ "dependencies": {
6949
+ "argparse": {
6950
+ "version": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
6951
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
6952
+ "dev": true,
6953
+ "optional": true,
6954
+ "requires": {
6955
+ "sprintf-js": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"
6956
+ }
6957
+ },
6958
+ "colors": {
6959
+ "version": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
6960
+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
6961
+ "dev": true,
6962
+ "optional": true
6963
+ },
6964
+ "esprima": {
6965
+ "version": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
6966
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
6967
+ "dev": true,
6968
+ "optional": true
6969
+ },
6970
+ "js-yaml": {
6971
+ "version": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz",
6972
+ "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=",
6973
+ "dev": true,
6974
+ "optional": true,
6975
+ "requires": {
6976
+ "argparse": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
6977
+ "esprima": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz"
6978
+ }
6979
+ }
6980
+ }
6981
+ },
6982
+ "tar-stream": {
6983
+ "version": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.2.tgz",
6984
+ "integrity": "sha1-+8bG6DwaGdTLSMfZYXH8JI7/x78=",
6985
+ "dev": true,
6986
+ "requires": {
6987
+ "bl": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz",
6988
+ "end-of-stream": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz",
6989
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
6990
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
6991
+ }
6992
+ },
6993
+ "tempfile": {
6994
+ "version": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz",
6995
+ "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=",
6996
+ "dev": true,
6997
+ "requires": {
6998
+ "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
6999
+ "uuid": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz"
7000
+ }
7001
+ },
7002
+ "text-table": {
7003
+ "version": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
7004
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
7005
+ "dev": true
7006
+ },
7007
+ "through2": {
7008
+ "version": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
7009
+ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
7010
+ "dev": true,
7011
+ "requires": {
7012
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
7013
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
7014
+ },
7015
+ "dependencies": {
7016
+ "isarray": {
7017
+ "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
7018
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
7019
+ "dev": true
7020
+ },
7021
+ "readable-stream": {
7022
+ "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
7023
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
7024
+ "dev": true,
7025
+ "requires": {
7026
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
7027
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
7028
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
7029
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
7030
+ }
7031
+ }
7032
+ }
7033
+ },
7034
+ "through2-filter": {
7035
+ "version": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz",
7036
+ "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=",
7037
+ "dev": true,
7038
+ "requires": {
7039
+ "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
7040
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
7041
+ },
7042
+ "dependencies": {
7043
+ "through2": {
7044
+ "version": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
7045
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
7046
+ "dev": true,
7047
+ "requires": {
7048
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
7049
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
7050
+ }
7051
+ }
7052
+ }
7053
+ },
7054
+ "time-grunt": {
7055
+ "version": "https://registry.npmjs.org/time-grunt/-/time-grunt-1.4.0.tgz",
7056
+ "integrity": "sha1-BiIT5mDJB+hvRAVWwB6mWXtxJCA=",
7057
+ "dev": true,
7058
+ "requires": {
7059
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
7060
+ "date-time": "https://registry.npmjs.org/date-time/-/date-time-1.1.0.tgz",
7061
+ "figures": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
7062
+ "hooker": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
7063
+ "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
7064
+ "pretty-ms": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz",
7065
+ "text-table": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
7066
+ }
7067
+ },
7068
+ "time-stamp": {
7069
+ "version": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.0.1.tgz",
7070
+ "integrity": "sha1-n0vSNVnJNllm8zAtu6KwfGuZsVE=",
7071
+ "dev": true
7072
+ },
7073
+ "time-zone": {
7074
+ "version": "https://registry.npmjs.org/time-zone/-/time-zone-0.1.0.tgz",
7075
+ "integrity": "sha1-Sncotqwo2w4Aj1FAQ/1VW9VXO0Y=",
7076
+ "dev": true
7077
+ },
7078
+ "timed-out": {
7079
+ "version": "https://registry.npmjs.org/timed-out/-/timed-out-3.0.0.tgz",
7080
+ "integrity": "sha1-/4jelgMM6WDqvUJIfbYdOt0iknM=",
7081
+ "dev": true
7082
+ },
7083
+ "tiny-lr": {
7084
+ "version": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.2.1.tgz",
7085
+ "integrity": "sha1-s/26gC5dVqM8L28QeUsy5Hescp0=",
7086
+ "dev": true,
7087
+ "requires": {
7088
+ "body-parser": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz",
7089
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
7090
+ "faye-websocket": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
7091
+ "livereload-js": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.2.2.tgz",
7092
+ "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz",
7093
+ "qs": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz"
7094
+ }
7095
+ },
7096
+ "to-absolute-glob": {
7097
+ "version": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz",
7098
+ "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=",
7099
+ "dev": true,
7100
+ "requires": {
7101
+ "extend-shallow": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"
7102
+ }
7103
+ },
7104
+ "trim-newlines": {
7105
+ "version": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
7106
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
7107
+ "dev": true
7108
+ },
7109
+ "trim-repeated": {
7110
+ "version": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
7111
+ "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=",
7112
+ "dev": true,
7113
+ "requires": {
7114
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
7115
+ }
7116
+ },
7117
+ "tunnel-agent": {
7118
+ "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
7119
+ "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
7120
+ "dev": true
7121
+ },
7122
+ "type-is": {
7123
+ "version": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz",
7124
+ "integrity": "sha1-4hljnBfe0coHiQkt1UoDgmuBfLI=",
7125
+ "dev": true,
7126
+ "requires": {
7127
+ "media-typer": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
7128
+ "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz"
7129
+ }
7130
+ },
7131
+ "typedarray": {
7132
+ "version": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
7133
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
7134
+ "dev": true
7135
+ },
7136
+ "underscore": {
7137
+ "version": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
7138
+ "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
7139
+ "dev": true
7140
+ },
7141
+ "underscore.string": {
7142
+ "version": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
7143
+ "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=",
7144
+ "dev": true
7145
+ },
7146
+ "unique-stream": {
7147
+ "version": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz",
7148
+ "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=",
7149
+ "dev": true,
7150
+ "requires": {
7151
+ "json-stable-stringify": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
7152
+ "through2-filter": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz"
7153
+ }
7154
+ },
7155
+ "unpipe": {
7156
+ "version": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
7157
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
7158
+ "dev": true
7159
+ },
7160
+ "unzip-response": {
7161
+ "version": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz",
7162
+ "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=",
7163
+ "dev": true
7164
+ },
7165
+ "url-parse-lax": {
7166
+ "version": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
7167
+ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
7168
+ "dev": true,
7169
+ "requires": {
7170
+ "prepend-http": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz"
7171
+ }
7172
+ },
7173
+ "url-regex": {
7174
+ "version": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz",
7175
+ "integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=",
7176
+ "dev": true,
7177
+ "optional": true,
7178
+ "requires": {
7179
+ "ip-regex": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz"
7180
+ }
7181
+ },
7182
+ "util-deprecate": {
7183
+ "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
7184
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
7185
+ "dev": true
7186
+ },
7187
+ "uuid": {
7188
+ "version": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
7189
+ "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
7190
+ "dev": true
7191
+ },
7192
+ "vali-date": {
7193
+ "version": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
7194
+ "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=",
7195
+ "dev": true
7196
+ },
7197
+ "validate-npm-package-license": {
7198
+ "version": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
7199
+ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
7200
+ "dev": true,
7201
+ "requires": {
7202
+ "spdx-correct": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
7203
+ "spdx-expression-parse": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz"
7204
+ }
7205
+ },
7206
+ "vinyl": {
7207
+ "version": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
7208
+ "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
7209
+ "dev": true,
7210
+ "requires": {
7211
+ "clone": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
7212
+ "clone-stats": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
7213
+ "replace-ext": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz"
7214
+ }
7215
+ },
7216
+ "vinyl-assign": {
7217
+ "version": "https://registry.npmjs.org/vinyl-assign/-/vinyl-assign-1.2.1.tgz",
7218
+ "integrity": "sha1-TRmIkbVRWRHXcajNnFSApGoHSkU=",
7219
+ "dev": true,
7220
+ "requires": {
7221
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
7222
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz"
7223
+ },
7224
+ "dependencies": {
7225
+ "object-assign": {
7226
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
7227
+ "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
7228
+ "dev": true
7229
+ }
7230
+ }
7231
+ },
7232
+ "vinyl-fs": {
7233
+ "version": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz",
7234
+ "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=",
7235
+ "dev": true,
7236
+ "requires": {
7237
+ "duplexify": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz",
7238
+ "glob-stream": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz",
7239
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
7240
+ "gulp-sourcemaps": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz",
7241
+ "is-valid-glob": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz",
7242
+ "lazystream": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
7243
+ "lodash.isequal": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.4.0.tgz",
7244
+ "merge-stream": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
7245
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
7246
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
7247
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
7248
+ "strip-bom": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
7249
+ "strip-bom-stream": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz",
7250
+ "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
7251
+ "through2-filter": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz",
7252
+ "vali-date": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
7253
+ "vinyl": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz"
7254
+ },
7255
+ "dependencies": {
7256
+ "graceful-fs": {
7257
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
7258
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
7259
+ "dev": true
7260
+ },
7261
+ "object-assign": {
7262
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
7263
+ "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
7264
+ "dev": true
7265
+ },
7266
+ "through2": {
7267
+ "version": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
7268
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
7269
+ "dev": true,
7270
+ "requires": {
7271
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
7272
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
7273
+ }
7274
+ }
7275
+ }
7276
+ },
7277
+ "vow": {
7278
+ "version": "https://registry.npmjs.org/vow/-/vow-0.4.4.tgz",
7279
+ "integrity": "sha1-yf5GCRKdf1qmIVCOvmS1HJW8e5g=",
7280
+ "dev": true
7281
+ },
7282
+ "vow-fs": {
7283
+ "version": "https://registry.npmjs.org/vow-fs/-/vow-fs-0.3.2.tgz",
7284
+ "integrity": "sha1-6isDTYXh24wnfrLpqG0cFfXTjno=",
7285
+ "dev": true,
7286
+ "requires": {
7287
+ "glob": "https://registry.npmjs.org/glob/-/glob-3.2.8.tgz",
7288
+ "node-uuid": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.0.tgz",
7289
+ "vow": "https://registry.npmjs.org/vow/-/vow-0.4.4.tgz",
7290
+ "vow-queue": "https://registry.npmjs.org/vow-queue/-/vow-queue-0.3.1.tgz"
7291
+ },
7292
+ "dependencies": {
7293
+ "glob": {
7294
+ "version": "https://registry.npmjs.org/glob/-/glob-3.2.8.tgz",
7295
+ "integrity": "sha1-VQb0MRchvMYYx9jboUQYh1AwcHM=",
7296
+ "dev": true,
7297
+ "requires": {
7298
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
7299
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz"
7300
+ }
7301
+ }
7302
+ }
7303
+ },
7304
+ "vow-queue": {
7305
+ "version": "https://registry.npmjs.org/vow-queue/-/vow-queue-0.3.1.tgz",
7306
+ "integrity": "sha1-WYxRoVsKgabV/AX0dhzrRi3h6Gg=",
7307
+ "dev": true,
7308
+ "requires": {
7309
+ "vow": "https://registry.npmjs.org/vow/-/vow-0.4.4.tgz"
7310
+ }
7311
+ },
7312
+ "walkdir": {
7313
+ "version": "0.0.11",
7314
+ "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz",
7315
+ "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=",
7316
+ "dev": true
7317
+ },
7318
+ "ware": {
7319
+ "version": "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz",
7320
+ "integrity": "sha1-0bFPOdLiy0q4xAmPdW/ksWTkc9Q=",
7321
+ "dev": true,
7322
+ "requires": {
7323
+ "wrap-fn": "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz"
7324
+ }
7325
+ },
7326
+ "websocket-driver": {
7327
+ "version": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz",
7328
+ "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=",
7329
+ "dev": true,
7330
+ "requires": {
7331
+ "websocket-extensions": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz"
7332
+ }
7333
+ },
7334
+ "websocket-extensions": {
7335
+ "version": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz",
7336
+ "integrity": "sha1-domUmcGEtu91Q3fC27DNbLVdKec=",
7337
+ "dev": true
7338
+ },
7339
+ "whet.extend": {
7340
+ "version": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
7341
+ "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=",
7342
+ "dev": true,
7343
+ "optional": true
7344
+ },
7345
+ "which": {
7346
+ "version": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
7347
+ "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
7348
+ "dev": true
7349
+ },
7350
+ "wrap-fn": {
7351
+ "version": "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz",
7352
+ "integrity": "sha1-8htuQQFv9KfjFyDbxjoJAWvfmEU=",
7353
+ "dev": true,
7354
+ "requires": {
7355
+ "co": "https://registry.npmjs.org/co/-/co-3.1.0.tgz"
7356
+ }
7357
+ },
7358
+ "wrappy": {
7359
+ "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
7360
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
7361
+ "dev": true
7362
+ },
7363
+ "xtend": {
7364
+ "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
7365
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
7366
+ "dev": true
7367
+ },
7368
+ "yauzl": {
7369
+ "version": "https://registry.npmjs.org/yauzl/-/yauzl-2.7.0.tgz",
7370
+ "integrity": "sha1-4h2EeGi0lvwp6uwj7of90z6bK84=",
7371
+ "dev": true,
7372
+ "requires": {
7373
+ "buffer-crc32": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
7374
+ "fd-slicer": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz"
7375
+ }
7376
+ },
7377
+ "zip-stream": {
7378
+ "version": "1.2.0",
7379
+ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz",
7380
+ "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=",
7381
+ "dev": true,
7382
+ "requires": {
7383
+ "archiver-utils": "1.3.0",
7384
+ "compress-commons": "1.2.0",
7385
+ "lodash": "4.17.4",
7386
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz"
7387
+ },
7388
+ "dependencies": {
7389
+ "lodash": {
7390
+ "version": "4.17.4",
7391
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
7392
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
7393
+ "dev": true
7394
+ }
7395
+ }
7396
+ }
7397
+ }
7398
+ }
readme.txt CHANGED
@@ -21,6 +21,8 @@ The plugin uses Google Visualization API to add responsive & animated charts/dia
21
  > * Easy edit the data using a live editor
22
  > * 3 more chart types ( Combo, Timeline and Table chart )
23
  > * Auto synchronize with your online file.
 
 
24
  > * Create charts from your wordpress posts, pages,products or any other post_type.
25
  > * Priority email support from the developer of the plugin
26
  > * Support and updates for 1 year
@@ -129,6 +131,9 @@ Pay attention that to turn your shortcodes into graphs, your theme has to have `
129
  = How to enable frontend action buttons? =
130
 
131
  [http://docs.themeisle.com/article/675-how-to-enable-frontend-action-buttons](http://docs.themeisle.com/article/675-how-to-enable-frontend-action-buttons)
 
 
 
132
 
133
  == Screenshots ==
134
 
@@ -139,6 +144,12 @@ Pay attention that to turn your shortcodes into graphs, your theme has to have `
139
  5. Charts library
140
 
141
  == Changelog ==
 
 
 
 
 
 
142
  = 2.2.0 - 2017-08-16 =
143
 
144
  * Added custom number format for pie chart.
21
  > * Easy edit the data using a live editor
22
  > * 3 more chart types ( Combo, Timeline and Table chart )
23
  > * Auto synchronize with your online file.
24
+ > * Create private charts.
25
+ > * Allow users to edit charts.
26
  > * Create charts from your wordpress posts, pages,products or any other post_type.
27
  > * Priority email support from the developer of the plugin
28
  > * Support and updates for 1 year
131
  = How to enable frontend action buttons? =
132
 
133
  [http://docs.themeisle.com/article/675-how-to-enable-frontend-action-buttons](http://docs.themeisle.com/article/675-how-to-enable-frontend-action-buttons)
134
+ = How to use Google Visualization variables? =
135
+
136
+ [http://docs.themeisle.com/article/691-how-to-use-google-visualization-variables](http://docs.themeisle.com/article/691-how-to-use-google-visualization-variables)
137
 
138
  == Screenshots ==
139
 
144
  5. Charts library
145
 
146
  == Changelog ==
147
+ = 3.0.0 - 2017-09-05 =
148
+
149
+ * Adds support manual configuration according to Google Visualization API.
150
+ * Improves compatibility with more features from the pro version.
151
+
152
+
153
  = 2.2.0 - 2017-08-16 =
154
 
155
  * Added custom number format for pie chart.
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
- return ComposerAutoloaderInitdf441e16037886c4ad0eeeed40591433::getLoader();
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInitb0e1a7b6f3dc380ceb44f8d105d24966::getLoader();
vendor/autoload_52.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
- return ComposerAutoloaderInit79b3ba5fcae86b56f2e6e39b0f1ef47e::getLoader();
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
+ return ComposerAutoloaderInit3f3dd7b2e2be87635096d0ddedd0d0c7::getLoader();
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-deactivate.php CHANGED
@@ -413,7 +413,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
413
  $list .= '<li ti-option-id="' . $id . '"><input type="radio" name="ti-deactivate-option" id="' . $key . $id . '"><label for="' . $key . $id . '">' . str_replace( '{theme}', $this->product->get_name(), $title ) . '</label>';
414
  if ( array_key_exists( 'type', $attributes ) ) {
415
  $list .= '<div>';
416
- $placeholder = array_key_exists( 'placeholder', $attributes ) ? __( $attributes['placeholder'] ) : '';
417
  switch ( $attributes['type'] ) {
418
  case 'text':
419
  $list .= '<textarea style="width: 100%" rows="1" name="comments" placeholder="' . $placeholder . '"></textarea>';
@@ -431,11 +431,11 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
431
  . '<ul class="ti-list">' . $list . '</ul>'
432
  . '<div class="actions">'
433
  . get_submit_button(
434
- __( $button_submit_before ), 'secondary', $this->product->get_key() . 'ti-deactivate-yes', false, array(
435
  'data-after-text' => $button_submit,
436
  )
437
  )
438
- . get_submit_button( __( $button_cancel ), 'primary', $this->product->get_key() . 'ti-deactivate-no', false )
439
  . '</div></div>';
440
  }
441
 
413
  $list .= '<li ti-option-id="' . $id . '"><input type="radio" name="ti-deactivate-option" id="' . $key . $id . '"><label for="' . $key . $id . '">' . str_replace( '{theme}', $this->product->get_name(), $title ) . '</label>';
414
  if ( array_key_exists( 'type', $attributes ) ) {
415
  $list .= '<div>';
416
+ $placeholder = array_key_exists( 'placeholder', $attributes ) ? $attributes['placeholder'] : '';
417
  switch ( $attributes['type'] ) {
418
  case 'text':
419
  $list .= '<textarea style="width: 100%" rows="1" name="comments" placeholder="' . $placeholder . '"></textarea>';
431
  . '<ul class="ti-list">' . $list . '</ul>'
432
  . '<div class="actions">'
433
  . get_submit_button(
434
+ $button_submit_before , 'secondary', $this->product->get_key() . 'ti-deactivate-yes', false, array(
435
  'data-after-text' => $button_submit,
436
  )
437
  )
438
+ . get_submit_button( $button_cancel, 'primary', $this->product->get_key() . 'ti-deactivate-no', false )
439
  . '</div></div>';
440
  }
441
 
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-logger.php CHANGED
@@ -155,12 +155,12 @@ if ( ! class_exists( 'ThemeIsle_SDK_Logger' ) ) :
155
  . '<p>' . $heading . '</p>'
156
  . '<div class="actions">'
157
  . get_submit_button(
158
- __( $button_submit ), 'primary ' . $this->product->get_key() . '-ti-logger', $this->product->get_key() . 'ti-logger-yes', false, array(
159
  'data-ti-log-enable' => 1,
160
  )
161
  )
162
  . get_submit_button(
163
- __( $button_cancel ), 'secondary ' . $this->product->get_key() . '-ti-logger', $this->product->get_key() . 'ti-logger-no', false, array(
164
  'data-ti-log-enable' => 0,
165
  )
166
  )
155
  . '<p>' . $heading . '</p>'
156
  . '<div class="actions">'
157
  . get_submit_button(
158
+ $button_submit, 'primary ' . $this->product->get_key() . '-ti-logger', $this->product->get_key() . 'ti-logger-yes', false, array(
159
  'data-ti-log-enable' => 1,
160
  )
161
  )
162
  . get_submit_button(
163
+ $button_cancel, 'secondary ' . $this->product->get_key() . '-ti-logger', $this->product->get_key() . 'ti-logger-no', false, array(
164
  'data-ti-log-enable' => 0,
165
  )
166
  )
vendor/codeinwp/themeisle-sdk/load.php CHANGED
@@ -11,7 +11,7 @@
11
  */
12
 
13
  // Current SDK version and path.
14
- $themeisle_sdk_version = '1.5.5';
15
  $themeisle_sdk_path = dirname( __FILE__ );
16
 
17
  global $themeisle_sdk_max_version;
11
  */
12
 
13
  // Current SDK version and path.
14
+ $themeisle_sdk_version = '1.5.6';
15
  $themeisle_sdk_path = dirname( __FILE__ );
16
 
17
  global $themeisle_sdk_max_version;
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInitdf441e16037886c4ad0eeeed40591433
6
  {
7
  private static $loader;
8
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitdf441e16037886c4ad0eeeed40591433
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitdf441e16037886c4ad0eeeed40591433', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitdf441e16037886c4ad0eeeed40591433', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
@@ -42,14 +42,14 @@ class ComposerAutoloaderInitdf441e16037886c4ad0eeeed40591433
42
 
43
  $includeFiles = require __DIR__ . '/autoload_files.php';
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
- composerRequiredf441e16037886c4ad0eeeed40591433($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
- function composerRequiredf441e16037886c4ad0eeeed40591433($fileIdentifier, $file)
53
  {
54
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInitb0e1a7b6f3dc380ceb44f8d105d24966
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInitb0e1a7b6f3dc380ceb44f8d105d24966', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInitb0e1a7b6f3dc380ceb44f8d105d24966', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
42
 
43
  $includeFiles = require __DIR__ . '/autoload_files.php';
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
+ composerRequireb0e1a7b6f3dc380ceb44f8d105d24966($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
+ function composerRequireb0e1a7b6f3dc380ceb44f8d105d24966($fileIdentifier, $file)
53
  {
54
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
  require $file;
vendor/composer/autoload_real_52.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
- class ComposerAutoloaderInit79b3ba5fcae86b56f2e6e39b0f1ef47e {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit79b3ba5fcae86b56f2e6e39b0f1ef47e {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit79b3ba5fcae86b56f2e6e39b0f1ef47e', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit79b3ba5fcae86b56f2e6e39b0f1ef47e', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
+ class ComposerAutoloaderInit3f3dd7b2e2be87635096d0ddedd0d0c7 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit3f3dd7b2e2be87635096d0ddedd0d0c7', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit3f3dd7b2e2be87635096d0ddedd0d0c7', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
vendor/composer/installed.json CHANGED
@@ -39,15 +39,15 @@
39
  "source": {
40
  "type": "git",
41
  "url": "https://github.com/Codeinwp/themeisle-sdk.git",
42
- "reference": "f05bd8f0fe4d628424484e2bdd6d20ee65f454ee"
43
  },
44
  "dist": {
45
  "type": "zip",
46
- "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/f05bd8f0fe4d628424484e2bdd6d20ee65f454ee",
47
- "reference": "f05bd8f0fe4d628424484e2bdd6d20ee65f454ee",
48
  "shasum": ""
49
  },
50
- "time": "2017-08-08 22:09:54",
51
  "type": "library",
52
  "installation-source": "dist",
53
  "autoload": {
39
  "source": {
40
  "type": "git",
41
  "url": "https://github.com/Codeinwp/themeisle-sdk.git",
42
+ "reference": "1fb829fd268e739864b6f1822239c1112d80853f"
43
  },
44
  "dist": {
45
  "type": "zip",
46
+ "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/1fb829fd268e739864b6f1822239c1112d80853f",
47
+ "reference": "1fb829fd268e739864b6f1822239c1112d80853f",
48
  "shasum": ""
49
  },
50
+ "time": "2017-08-22 16:09:34",
51
  "type": "library",
52
  "installation-source": "dist",
53
  "autoload": {
vendor/phpoffice/phpexcel/Examples/01pharSimple.php DELETED
@@ -1,112 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- /** Include PHPExcel */
37
- require_once '../Build/PHPExcel.phar';
38
-
39
-
40
- // Create new PHPExcel object
41
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
42
- $objPHPExcel = new PHPExcel();
43
-
44
- // Set document properties
45
- echo date('H:i:s') , " Set document properties" , EOL;
46
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
47
- ->setLastModifiedBy("Maarten Balliauw")
48
- ->setTitle("PHPExcel Test Document")
49
- ->setSubject("PHPExcel Test Document")
50
- ->setDescription("Test document for PHPExcel, generated using PHP classes.")
51
- ->setKeywords("office PHPExcel php")
52
- ->setCategory("Test result file");
53
-
54
-
55
- // Add some data
56
- echo date('H:i:s') , " Add some data" , EOL;
57
- $objPHPExcel->setActiveSheetIndex(0)
58
- ->setCellValue('A1', 'Hello')
59
- ->setCellValue('B2', 'world!')
60
- ->setCellValue('C1', 'Hello')
61
- ->setCellValue('D2', 'world!');
62
-
63
- // Miscellaneous glyphs, UTF-8
64
- $objPHPExcel->setActiveSheetIndex(0)
65
- ->setCellValue('A4', 'Miscellaneous glyphs')
66
- ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
67
-
68
- // Rename worksheet
69
- echo date('H:i:s') , " Rename worksheet" , EOL;
70
- $objPHPExcel->getActiveSheet()->setTitle('Simple');
71
-
72
-
73
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
74
- $objPHPExcel->setActiveSheetIndex(0);
75
-
76
-
77
- // Save Excel 2007 file
78
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
79
- $callStartTime = microtime(true);
80
-
81
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
82
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
83
- $callEndTime = microtime(true);
84
- $callTime = $callEndTime - $callStartTime;
85
-
86
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
87
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
88
- // Echo memory usage
89
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
90
-
91
-
92
- // Save Excel5 file
93
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
94
- $callStartTime = microtime(true);
95
-
96
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
97
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
98
- $callEndTime = microtime(true);
99
- $callTime = $callEndTime - $callStartTime;
100
-
101
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
102
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
103
- // Echo memory usage
104
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
105
-
106
-
107
- // Echo memory peak usage
108
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
109
-
110
- // Echo done
111
- echo date('H:i:s') , " Done writing files" , EOL;
112
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/01simple-download-ods.php DELETED
@@ -1,89 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- if (PHP_SAPI == 'cli')
35
- die('This example should only be run from a Web Browser');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- // Create new PHPExcel object
42
- $objPHPExcel = new PHPExcel();
43
-
44
- // Set document properties
45
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
46
- ->setLastModifiedBy("Maarten Balliauw")
47
- ->setTitle("Office 2007 XLSX Test Document")
48
- ->setSubject("Office 2007 XLSX Test Document")
49
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
50
- ->setKeywords("office 2007 openxml php")
51
- ->setCategory("Test result file");
52
-
53
-
54
- // Add some data
55
- $objPHPExcel->setActiveSheetIndex(0)
56
- ->setCellValue('A1', 'Hello')
57
- ->setCellValue('B2', 'world!')
58
- ->setCellValue('C1', 'Hello')
59
- ->setCellValue('D2', 'world!');
60
-
61
- // Miscellaneous glyphs, UTF-8
62
- $objPHPExcel->setActiveSheetIndex(0)
63
- ->setCellValue('A4', 'Miscellaneous glyphs')
64
- ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
65
-
66
- // Rename worksheet
67
- $objPHPExcel->getActiveSheet()->setTitle('Simple');
68
-
69
-
70
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
71
- $objPHPExcel->setActiveSheetIndex(0);
72
-
73
-
74
- // Redirect output to a client’s web browser (OpenDocument)
75
- header('Content-Type: application/vnd.oasis.opendocument.spreadsheet');
76
- header('Content-Disposition: attachment;filename="01simple.ods"');
77
- header('Cache-Control: max-age=0');
78
- // If you're serving to IE 9, then the following may be needed
79
- header('Cache-Control: max-age=1');
80
-
81
- // If you're serving to IE over SSL, then the following may be needed
82
- header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
83
- header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
84
- header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
85
- header ('Pragma: public'); // HTTP/1.0
86
-
87
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'OpenDocument');
88
- $objWriter->save('php://output');
89
- exit;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/01simple-download-pdf.php DELETED
@@ -1,104 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- if (PHP_SAPI == 'cli')
35
- die('This example should only be run from a Web Browser');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- // Change these values to select the Rendering library that you wish to use
42
- // and its directory location on your server
43
- //$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
44
- $rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
45
- //$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
46
- //$rendererLibrary = 'tcPDF5.9';
47
- $rendererLibrary = 'mPDF5.4';
48
- //$rendererLibrary = 'domPDF0.6.0beta3';
49
- $rendererLibraryPath = dirname(__FILE__).'/../../../libraries/PDF/' . $rendererLibrary;
50
-
51
-
52
- // Create new PHPExcel object
53
- $objPHPExcel = new PHPExcel();
54
-
55
- // Set document properties
56
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
57
- ->setLastModifiedBy("Maarten Balliauw")
58
- ->setTitle("PDF Test Document")
59
- ->setSubject("PDF Test Document")
60
- ->setDescription("Test document for PDF, generated using PHP classes.")
61
- ->setKeywords("pdf php")
62
- ->setCategory("Test result file");
63
-
64
-
65
- // Add some data
66
- $objPHPExcel->setActiveSheetIndex(0)
67
- ->setCellValue('A1', 'Hello')
68
- ->setCellValue('B2', 'world!')
69
- ->setCellValue('C1', 'Hello')
70
- ->setCellValue('D2', 'world!');
71
-
72
- // Miscellaneous glyphs, UTF-8
73
- $objPHPExcel->setActiveSheetIndex(0)
74
- ->setCellValue('A4', 'Miscellaneous glyphs')
75
- ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
76
-
77
- // Rename worksheet
78
- $objPHPExcel->getActiveSheet()->setTitle('Simple');
79
- $objPHPExcel->getActiveSheet()->setShowGridLines(false);
80
-
81
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
82
- $objPHPExcel->setActiveSheetIndex(0);
83
-
84
-
85
- if (!PHPExcel_Settings::setPdfRenderer(
86
- $rendererName,
87
- $rendererLibraryPath
88
- )) {
89
- die(
90
- 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
91
- '<br />' .
92
- 'at the top of this script as appropriate for your directory structure'
93
- );
94
- }
95
-
96
-
97
- // Redirect output to a client’s web browser (PDF)
98
- header('Content-Type: application/pdf');
99
- header('Content-Disposition: attachment;filename="01simple.pdf"');
100
- header('Cache-Control: max-age=0');
101
-
102
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
103
- $objWriter->save('php://output');
104
- exit;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/01simple-download-xls.php DELETED
@@ -1,89 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- if (PHP_SAPI == 'cli')
35
- die('This example should only be run from a Web Browser');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- // Create new PHPExcel object
42
- $objPHPExcel = new PHPExcel();
43
-
44
- // Set document properties
45
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
46
- ->setLastModifiedBy("Maarten Balliauw")
47
- ->setTitle("Office 2007 XLSX Test Document")
48
- ->setSubject("Office 2007 XLSX Test Document")
49
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
50
- ->setKeywords("office 2007 openxml php")
51
- ->setCategory("Test result file");
52
-
53
-
54
- // Add some data
55
- $objPHPExcel->setActiveSheetIndex(0)
56
- ->setCellValue('A1', 'Hello')
57
- ->setCellValue('B2', 'world!')
58
- ->setCellValue('C1', 'Hello')
59
- ->setCellValue('D2', 'world!');
60
-
61
- // Miscellaneous glyphs, UTF-8
62
- $objPHPExcel->setActiveSheetIndex(0)
63
- ->setCellValue('A4', 'Miscellaneous glyphs')
64
- ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
65
-
66
- // Rename worksheet
67
- $objPHPExcel->getActiveSheet()->setTitle('Simple');
68
-
69
-
70
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
71
- $objPHPExcel->setActiveSheetIndex(0);
72
-
73
-
74
- // Redirect output to a client’s web browser (Excel5)
75
- header('Content-Type: application/vnd.ms-excel');
76
- header('Content-Disposition: attachment;filename="01simple.xls"');
77
- header('Cache-Control: max-age=0');
78
- // If you're serving to IE 9, then the following may be needed
79
- header('Cache-Control: max-age=1');
80
-
81
- // If you're serving to IE over SSL, then the following may be needed
82
- header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
83
- header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
84
- header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
85
- header ('Pragma: public'); // HTTP/1.0
86
-
87
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
88
- $objWriter->save('php://output');
89
- exit;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/01simple-download-xlsx.php DELETED
@@ -1,89 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- if (PHP_SAPI == 'cli')
35
- die('This example should only be run from a Web Browser');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- // Create new PHPExcel object
42
- $objPHPExcel = new PHPExcel();
43
-
44
- // Set document properties
45
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
46
- ->setLastModifiedBy("Maarten Balliauw")
47
- ->setTitle("Office 2007 XLSX Test Document")
48
- ->setSubject("Office 2007 XLSX Test Document")
49
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
50
- ->setKeywords("office 2007 openxml php")
51
- ->setCategory("Test result file");
52
-
53
-
54
- // Add some data
55
- $objPHPExcel->setActiveSheetIndex(0)
56
- ->setCellValue('A1', 'Hello')
57
- ->setCellValue('B2', 'world!')
58
- ->setCellValue('C1', 'Hello')
59
- ->setCellValue('D2', 'world!');
60
-
61
- // Miscellaneous glyphs, UTF-8
62
- $objPHPExcel->setActiveSheetIndex(0)
63
- ->setCellValue('A4', 'Miscellaneous glyphs')
64
- ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
65
-
66
- // Rename worksheet
67
- $objPHPExcel->getActiveSheet()->setTitle('Simple');
68
-
69
-
70
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
71
- $objPHPExcel->setActiveSheetIndex(0);
72
-
73
-
74
- // Redirect output to a client’s web browser (Excel2007)
75
- header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
76
- header('Content-Disposition: attachment;filename="01simple.xlsx"');
77
- header('Cache-Control: max-age=0');
78
- // If you're serving to IE 9, then the following may be needed
79
- header('Cache-Control: max-age=1');
80
-
81
- // If you're serving to IE over SSL, then the following may be needed
82
- header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
83
- header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
84
- header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
85
- header ('Pragma: public'); // HTTP/1.0
86
-
87
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
88
- $objWriter->save('php://output');
89
- exit;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/01simple.php DELETED
@@ -1,118 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- /** Include PHPExcel */
37
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
38
-
39
-
40
- // Create new PHPExcel object
41
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
42
- $objPHPExcel = new PHPExcel();
43
-
44
- // Set document properties
45
- echo date('H:i:s') , " Set document properties" , EOL;
46
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
47
- ->setLastModifiedBy("Maarten Balliauw")
48
- ->setTitle("PHPExcel Test Document")
49
- ->setSubject("PHPExcel Test Document")
50
- ->setDescription("Test document for PHPExcel, generated using PHP classes.")
51
- ->setKeywords("office PHPExcel php")
52
- ->setCategory("Test result file");
53
-
54
-
55
- // Add some data
56
- echo date('H:i:s') , " Add some data" , EOL;
57
- $objPHPExcel->setActiveSheetIndex(0)
58
- ->setCellValue('A1', 'Hello')
59
- ->setCellValue('B2', 'world!')
60
- ->setCellValue('C1', 'Hello')
61
- ->setCellValue('D2', 'world!');
62
-
63
- // Miscellaneous glyphs, UTF-8
64
- $objPHPExcel->setActiveSheetIndex(0)
65
- ->setCellValue('A4', 'Miscellaneous glyphs')
66
- ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
67
-
68
-
69
- $objPHPExcel->getActiveSheet()->setCellValue('A8',"Hello\nWorld");
70
- $objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1);
71
- $objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true);
72
-
73
-
74
- // Rename worksheet
75
- echo date('H:i:s') , " Rename worksheet" , EOL;
76
- $objPHPExcel->getActiveSheet()->setTitle('Simple');
77
-
78
-
79
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
80
- $objPHPExcel->setActiveSheetIndex(0);
81
-
82
-
83
- // Save Excel 2007 file
84
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
85
- $callStartTime = microtime(true);
86
-
87
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
88
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
89
- $callEndTime = microtime(true);
90
- $callTime = $callEndTime - $callStartTime;
91
-
92
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
93
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
94
- // Echo memory usage
95
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
96
-
97
-
98
- // Save Excel 95 file
99
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
100
- $callStartTime = microtime(true);
101
-
102
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
103
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
104
- $callEndTime = microtime(true);
105
- $callTime = $callEndTime - $callStartTime;
106
-
107
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
108
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
109
- // Echo memory usage
110
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
111
-
112
-
113
- // Echo memory peak usage
114
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
115
-
116
- // Echo done
117
- echo date('H:i:s') , " Done writing files" , EOL;
118
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/01simplePCLZip.php DELETED
@@ -1,106 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- /** Include PHPExcel */
37
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
38
-
39
-
40
- // Create new PHPExcel object
41
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
42
- $objPHPExcel = new PHPExcel();
43
-
44
- // Set document properties
45
- echo date('H:i:s') , " Set document properties" , EOL;
46
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
47
- ->setLastModifiedBy("Maarten Balliauw")
48
- ->setTitle("PHPExcel Test Document")
49
- ->setSubject("PHPExcel Test Document")
50
- ->setDescription("Test document for PHPExcel, generated using PHP classes.")
51
- ->setKeywords("office PHPExcel php")
52
- ->setCategory("Test result file");
53
-
54
-
55
- // Add some data
56
- echo date('H:i:s') , " Add some data" , EOL;
57
- $objPHPExcel->setActiveSheetIndex(0)
58
- ->setCellValue('A1', 'Hello')
59
- ->setCellValue('B2', 'world!')
60
- ->setCellValue('C1', 'Hello')
61
- ->setCellValue('D2', 'world!');
62
-
63
- // Miscellaneous glyphs, UTF-8
64
- $objPHPExcel->setActiveSheetIndex(0)
65
- ->setCellValue('A4', 'Miscellaneous glyphs')
66
- ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
67
-
68
-
69
- $objPHPExcel->getActiveSheet()->setCellValue('A8',"Hello\nWorld");
70
- $objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1);
71
- $objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true);
72
-
73
-
74
- // Rename worksheet
75
- echo date('H:i:s') , " Rename worksheet" , EOL;
76
- $objPHPExcel->getActiveSheet()->setTitle('Simple');
77
-
78
-
79
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
80
- $objPHPExcel->setActiveSheetIndex(0);
81
-
82
-
83
- // Save Excel 2007 file
84
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
85
- $callStartTime = microtime(true);
86
-
87
- // Use PCLZip rather than ZipArchive to create the Excel2007 OfficeOpenXML file
88
- PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
89
-
90
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
91
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
92
- $callEndTime = microtime(true);
93
- $callTime = $callEndTime - $callStartTime;
94
-
95
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
96
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
97
- // Echo memory usage
98
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
99
-
100
-
101
- // Echo memory peak usage
102
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
103
-
104
- // Echo done
105
- echo date('H:i:s') , " Done writing files" , EOL;
106
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/02types-xls.php DELETED
@@ -1,183 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- /** Include PHPExcel */
37
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
38
-
39
-
40
- // Create new PHPExcel object
41
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
42
- $objPHPExcel = new PHPExcel();
43
-
44
- // Set document properties
45
- echo date('H:i:s') , " Set document properties" , EOL;
46
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
47
- ->setLastModifiedBy("Maarten Balliauw")
48
- ->setTitle("Office 2007 XLSX Test Document")
49
- ->setSubject("Office 2007 XLSX Test Document")
50
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
51
- ->setKeywords("office 2007 openxml php")
52
- ->setCategory("Test result file");
53
-
54
- // Set default font
55
- echo date('H:i:s') , " Set default font" , EOL;
56
- $objPHPExcel->getDefaultStyle()->getFont()->setName('Arial')
57
- ->setSize(10);
58
-
59
- // Add some data, resembling some different data types
60
- echo date('H:i:s') , " Add some data" , EOL;
61
- $objPHPExcel->getActiveSheet()->setCellValue('A1', 'String')
62
- ->setCellValue('B1', 'Simple')
63
- ->setCellValue('C1', 'PHPExcel');
64
-
65
- $objPHPExcel->getActiveSheet()->setCellValue('A2', 'String')
66
- ->setCellValue('B2', 'Symbols')
67
- ->setCellValue('C2', '!+&=()~§±æþ');
68
-
69
- $objPHPExcel->getActiveSheet()->setCellValue('A3', 'String')
70
- ->setCellValue('B3', 'UTF-8')
71
- ->setCellValue('C3', 'Создать MS Excel Книги из PHP скриптов');
72
-
73
- $objPHPExcel->getActiveSheet()->setCellValue('A4', 'Number')
74
- ->setCellValue('B4', 'Integer')
75
- ->setCellValue('C4', 12);
76
-
77
- $objPHPExcel->getActiveSheet()->setCellValue('A5', 'Number')
78
- ->setCellValue('B5', 'Float')
79
- ->setCellValue('C5', 34.56);
80
-
81
- $objPHPExcel->getActiveSheet()->setCellValue('A6', 'Number')
82
- ->setCellValue('B6', 'Negative')
83
- ->setCellValue('C6', -7.89);
84
-
85
- $objPHPExcel->getActiveSheet()->setCellValue('A7', 'Boolean')
86
- ->setCellValue('B7', 'True')
87
- ->setCellValue('C7', true);
88
-
89
- $objPHPExcel->getActiveSheet()->setCellValue('A8', 'Boolean')
90
- ->setCellValue('B8', 'False')
91
- ->setCellValue('C8', false);
92
-
93
- $dateTimeNow = time();
94
- $objPHPExcel->getActiveSheet()->setCellValue('A9', 'Date/Time')
95
- ->setCellValue('B9', 'Date')
96
- ->setCellValue('C9', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
97
- $objPHPExcel->getActiveSheet()->getStyle('C9')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
98
-
99
- $objPHPExcel->getActiveSheet()->setCellValue('A10', 'Date/Time')
100
- ->setCellValue('B10', 'Time')
101
- ->setCellValue('C10', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
102
- $objPHPExcel->getActiveSheet()->getStyle('C10')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);
103
-
104
- $objPHPExcel->getActiveSheet()->setCellValue('A11', 'Date/Time')
105
- ->setCellValue('B11', 'Date and Time')
106
- ->setCellValue('C11', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
107
- $objPHPExcel->getActiveSheet()->getStyle('C11')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DATETIME);
108
-
109
- $objPHPExcel->getActiveSheet()->setCellValue('A12', 'NULL')
110
- ->setCellValue('C12', NULL);
111
-
112
- $objRichText = new PHPExcel_RichText();
113
- $objRichText->createText('你好 ');
114
- $objPayable = $objRichText->createTextRun('你 好 吗?');
115
- $objPayable->getFont()->setBold(true);
116
- $objPayable->getFont()->setItalic(true);
117
- $objPayable->getFont()->setColor( new PHPExcel_Style_Color( PHPExcel_Style_Color::COLOR_DARKGREEN ) );
118
-
119
- $objRichText->createText(', unless specified otherwise on the invoice.');
120
-
121
- $objPHPExcel->getActiveSheet()->setCellValue('A13', 'Rich Text')
122
- ->setCellValue('C13', $objRichText);
123
-
124
-
125
- $objRichText2 = new PHPExcel_RichText();
126
- $objRichText2->createText("black text\n");
127
-
128
- $objRed = $objRichText2->createTextRun("red text");
129
- $objRed->getFont()->setColor( new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_RED ) );
130
-
131
- $objPHPExcel->getActiveSheet()->getCell("C14")->setValue($objRichText2);
132
- $objPHPExcel->getActiveSheet()->getStyle("C14")->getAlignment()->setWrapText(true);
133
-
134
-
135
- $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
136
- $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);
137
-
138
- // Rename worksheet
139
- echo date('H:i:s') , " Rename worksheet" , EOL;
140
- $objPHPExcel->getActiveSheet()->setTitle('Datatypes');
141
-
142
-
143
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
144
- $objPHPExcel->setActiveSheetIndex(0);
145
-
146
-
147
- // Save Excel 95 file
148
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
149
- $callStartTime = microtime(true);
150
-
151
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
152
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
153
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
154
- $callEndTime = microtime(true);
155
- $callTime = $callEndTime - $callStartTime;
156
-
157
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
158
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
159
- // Echo memory usage
160
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
161
-
162
-
163
- echo date('H:i:s') , " Reload workbook from saved file" , EOL;
164
- $callStartTime = microtime(true);
165
-
166
- $objPHPExcel = PHPExcel_IOFactory::load(str_replace('.php', '.xls', __FILE__));
167
-
168
- $callEndTime = microtime(true);
169
- $callTime = $callEndTime - $callStartTime;
170
- echo 'Call time to reload Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
171
- // Echo memory usage
172
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
173
-
174
-
175
- var_dump($objPHPExcel->getActiveSheet()->toArray());
176
-
177
-
178
- // Echo memory peak usage
179
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
180
-
181
- // Echo done
182
- echo date('H:i:s') , " Done testing file" , EOL;
183
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/02types.php DELETED
@@ -1,183 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- /** Include PHPExcel */
37
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
38
-
39
-
40
- // Create new PHPExcel object
41
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
42
- $objPHPExcel = new PHPExcel();
43
-
44
- // Set document properties
45
- echo date('H:i:s') , " Set document properties" , EOL;
46
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
47
- ->setLastModifiedBy("Maarten Balliauw")
48
- ->setTitle("Office 2007 XLSX Test Document")
49
- ->setSubject("Office 2007 XLSX Test Document")
50
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
51
- ->setKeywords("office 2007 openxml php")
52
- ->setCategory("Test result file");
53
-
54
- // Set default font
55
- echo date('H:i:s') , " Set default font" , EOL;
56
- $objPHPExcel->getDefaultStyle()->getFont()->setName('Arial')
57
- ->setSize(10);
58
-
59
- // Add some data, resembling some different data types
60
- echo date('H:i:s') , " Add some data" , EOL;
61
- $objPHPExcel->getActiveSheet()->setCellValue('A1', 'String')
62
- ->setCellValue('B1', 'Simple')
63
- ->setCellValue('C1', 'PHPExcel');
64
-
65
- $objPHPExcel->getActiveSheet()->setCellValue('A2', 'String')
66
- ->setCellValue('B2', 'Symbols')
67
- ->setCellValue('C2', '!+&=()~§±æþ');
68
-
69
- $objPHPExcel->getActiveSheet()->setCellValue('A3', 'String')
70
- ->setCellValue('B3', 'UTF-8')
71
- ->setCellValue('C3', 'Создать MS Excel Книги из PHP скриптов');
72
-
73
- $objPHPExcel->getActiveSheet()->setCellValue('A4', 'Number')
74
- ->setCellValue('B4', 'Integer')
75
- ->setCellValue('C4', 12);
76
-
77
- $objPHPExcel->getActiveSheet()->setCellValue('A5', 'Number')
78
- ->setCellValue('B5', 'Float')
79
- ->setCellValue('C5', 34.56);
80
-
81
- $objPHPExcel->getActiveSheet()->setCellValue('A6', 'Number')
82
- ->setCellValue('B6', 'Negative')
83
- ->setCellValue('C6', -7.89);
84
-
85
- $objPHPExcel->getActiveSheet()->setCellValue('A7', 'Boolean')
86
- ->setCellValue('B7', 'True')
87
- ->setCellValue('C7', true);
88
-
89
- $objPHPExcel->getActiveSheet()->setCellValue('A8', 'Boolean')
90
- ->setCellValue('B8', 'False')
91
- ->setCellValue('C8', false);
92
-
93
- $dateTimeNow = time();
94
- $objPHPExcel->getActiveSheet()->setCellValue('A9', 'Date/Time')
95
- ->setCellValue('B9', 'Date')
96
- ->setCellValue('C9', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
97
- $objPHPExcel->getActiveSheet()->getStyle('C9')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
98
-
99
- $objPHPExcel->getActiveSheet()->setCellValue('A10', 'Date/Time')
100
- ->setCellValue('B10', 'Time')
101
- ->setCellValue('C10', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
102
- $objPHPExcel->getActiveSheet()->getStyle('C10')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);
103
-
104
- $objPHPExcel->getActiveSheet()->setCellValue('A11', 'Date/Time')
105
- ->setCellValue('B11', 'Date and Time')
106
- ->setCellValue('C11', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
107
- $objPHPExcel->getActiveSheet()->getStyle('C11')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DATETIME);
108
-
109
- $objPHPExcel->getActiveSheet()->setCellValue('A12', 'NULL')
110
- ->setCellValue('C12', NULL);
111
-
112
- $objRichText = new PHPExcel_RichText();
113
- $objRichText->createText('你好 ');
114
-
115
- $objPayable = $objRichText->createTextRun('你 好 吗?');
116
- $objPayable->getFont()->setBold(true);
117
- $objPayable->getFont()->setItalic(true);
118
- $objPayable->getFont()->setColor( new PHPExcel_Style_Color( PHPExcel_Style_Color::COLOR_DARKGREEN ) );
119
-
120
- $objRichText->createText(', unless specified otherwise on the invoice.');
121
-
122
- $objPHPExcel->getActiveSheet()->setCellValue('A13', 'Rich Text')
123
- ->setCellValue('C13', $objRichText);
124
-
125
-
126
- $objRichText2 = new PHPExcel_RichText();
127
- $objRichText2->createText("black text\n");
128
-
129
- $objRed = $objRichText2->createTextRun("red text");
130
- $objRed->getFont()->setColor( new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_RED ) );
131
-
132
- $objPHPExcel->getActiveSheet()->getCell("C14")->setValue($objRichText2);
133
- $objPHPExcel->getActiveSheet()->getStyle("C14")->getAlignment()->setWrapText(true);
134
-
135
-
136
- $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
137
- $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);
138
-
139
- // Rename worksheet
140
- echo date('H:i:s') , " Rename worksheet" , EOL;
141
- $objPHPExcel->getActiveSheet()->setTitle('Datatypes');
142
-
143
-
144
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
145
- $objPHPExcel->setActiveSheetIndex(0);
146
-
147
-
148
- // Save Excel 2007 file
149
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
150
- $callStartTime = microtime(true);
151
-
152
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
153
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
154
- $callEndTime = microtime(true);
155
- $callTime = $callEndTime - $callStartTime;
156
-
157
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
158
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
159
- // Echo memory usage
160
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
161
-
162
-
163
- echo date('H:i:s') , " Reload workbook from saved file" , EOL;
164
- $callStartTime = microtime(true);
165
-
166
- $objPHPExcel = PHPExcel_IOFactory::load(str_replace('.php', '.xlsx', __FILE__));
167
-
168
- $callEndTime = microtime(true);
169
- $callTime = $callEndTime - $callStartTime;
170
- echo 'Call time to reload Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
171
- // Echo memory usage
172
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
173
-
174
-
175
- var_dump($objPHPExcel->getActiveSheet()->toArray());
176
-
177
-
178
- // Echo memory peak usage
179
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
180
-
181
- // Echo done
182
- echo date('H:i:s') , " Done testing file" , EOL;
183
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/03formulas.php DELETED
@@ -1,149 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- /** Include PHPExcel */
37
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
38
-
39
-
40
- // Create new PHPExcel object
41
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
42
- $objPHPExcel = new PHPExcel();
43
-
44
- // Set document properties
45
- echo date('H:i:s') , " Set document properties" , EOL;
46
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
47
- ->setLastModifiedBy("Maarten Balliauw")
48
- ->setTitle("Office 2007 XLSX Test Document")
49
- ->setSubject("Office 2007 XLSX Test Document")
50
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
51
- ->setKeywords("office 2007 openxml php")
52
- ->setCategory("Test result file");
53
-
54
-
55
- // Add some data, we will use some formulas here
56
- echo date('H:i:s') , " Add some data" , EOL;
57
- $objPHPExcel->getActiveSheet()->setCellValue('A5', 'Sum:');
58
-
59
- $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Range #1')
60
- ->setCellValue('B2', 3)
61
- ->setCellValue('B3', 7)
62
- ->setCellValue('B4', 13)
63
- ->setCellValue('B5', '=SUM(B2:B4)');
64
- echo date('H:i:s') , " Sum of Range #1 is " ,
65
- $objPHPExcel->getActiveSheet()->getCell('B5')->getCalculatedValue() , EOL;
66
-
67
- $objPHPExcel->getActiveSheet()->setCellValue('C1', 'Range #2')
68
- ->setCellValue('C2', 5)
69
- ->setCellValue('C3', 11)
70
- ->setCellValue('C4', 17)
71
- ->setCellValue('C5', '=SUM(C2:C4)');
72
- echo date('H:i:s') , " Sum of Range #2 is " ,
73
- $objPHPExcel->getActiveSheet()->getCell('C5')->getCalculatedValue() , EOL;
74
-
75
- $objPHPExcel->getActiveSheet()->setCellValue('A7', 'Total of both ranges:');
76
- $objPHPExcel->getActiveSheet()->setCellValue('B7', '=SUM(B5:C5)');
77
- echo date('H:i:s') , " Sum of both Ranges is " ,
78
- $objPHPExcel->getActiveSheet()->getCell('B7')->getCalculatedValue() , EOL;
79
-
80
- $objPHPExcel->getActiveSheet()->setCellValue('A8', 'Minimum of both ranges:');
81
- $objPHPExcel->getActiveSheet()->setCellValue('B8', '=MIN(B2:C4)');
82
- echo date('H:i:s') , " Minimum value in either Range is " ,
83
- $objPHPExcel->getActiveSheet()->getCell('B8')->getCalculatedValue() , EOL;
84
-
85
- $objPHPExcel->getActiveSheet()->setCellValue('A9', 'Maximum of both ranges:');
86
- $objPHPExcel->getActiveSheet()->setCellValue('B9', '=MAX(B2:C4)');
87
- echo date('H:i:s') , " Maximum value in either Range is " ,
88
- $objPHPExcel->getActiveSheet()->getCell('B9')->getCalculatedValue() , EOL;
89
-
90
- $objPHPExcel->getActiveSheet()->setCellValue('A10', 'Average of both ranges:');
91
- $objPHPExcel->getActiveSheet()->setCellValue('B10', '=AVERAGE(B2:C4)');
92
- echo date('H:i:s') , " Average value of both Ranges is " ,
93
- $objPHPExcel->getActiveSheet()->getCell('B10')->getCalculatedValue() , EOL;
94
-
95
-
96
- // Rename worksheet
97
- echo date('H:i:s') , " Rename worksheet" , EOL;
98
- $objPHPExcel->getActiveSheet()->setTitle('Formulas');
99
-
100
-
101
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
102
- $objPHPExcel->setActiveSheetIndex(0);
103
-
104
-
105
- // Save Excel 2007 file
106
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
107
- $callStartTime = microtime(true);
108
-
109
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
110
-
111
- //
112
- // If we set Pre Calculated Formulas to true then PHPExcel will calculate all formulae in the
113
- // workbook before saving. This adds time and memory overhead, and can cause some problems with formulae
114
- // using functions or features (such as array formulae) that aren't yet supported by the calculation engine
115
- // If the value is false (the default) for the Excel2007 Writer, then MS Excel (or the application used to
116
- // open the file) will need to recalculate values itself to guarantee that the correct results are available.
117
- //
118
- //$objWriter->setPreCalculateFormulas(true);
119
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
120
- $callEndTime = microtime(true);
121
- $callTime = $callEndTime - $callStartTime;
122
-
123
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
124
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
125
- // Echo memory usage
126
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
127
-
128
-
129
- // Save Excel 95 file
130
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
131
- $callStartTime = microtime(true);
132
-
133
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
134
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
135
- $callEndTime = microtime(true);
136
- $callTime = $callEndTime - $callStartTime;
137
-
138
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
139
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
140
- // Echo memory usage
141
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
142
-
143
-
144
- // Echo memory peak usage
145
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
146
-
147
- // Echo done
148
- echo date('H:i:s') , " Done writing files" , EOL;
149
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/04printing.php DELETED
@@ -1,125 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- // Create new PHPExcel object
42
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
43
- $objPHPExcel = new PHPExcel();
44
-
45
- // Set document properties
46
- echo date('H:i:s') , " Set document properties" , EOL;
47
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
48
- ->setLastModifiedBy("Maarten Balliauw")
49
- ->setTitle("Office 2007 XLSX Test Document")
50
- ->setSubject("Office 2007 XLSX Test Document")
51
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
52
- ->setKeywords("office 2007 openxml php")
53
- ->setCategory("Test result file");
54
-
55
-
56
- // Add some data, we will use printing features
57
- echo date('H:i:s') , " Add some data" , EOL;
58
- for ($i = 1; $i < 200; $i++) {
59
- $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $i);
60
- $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, 'Test value');
61
- }
62
-
63
- // Set header and footer. When no different headers for odd/even are used, odd header is assumed.
64
- echo date('H:i:s') , " Set header/footer" , EOL;
65
- $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&G&C&HPlease treat this document as confidential!');
66
- $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objPHPExcel->getProperties()->getTitle() . '&RPage &P of &N');
67
-
68
- // Add a drawing to the header
69
- echo date('H:i:s') , " Add a drawing to the header" , EOL;
70
- $objDrawing = new PHPExcel_Worksheet_HeaderFooterDrawing();
71
- $objDrawing->setName('PHPExcel logo');
72
- $objDrawing->setPath('./images/phpexcel_logo.gif');
73
- $objDrawing->setHeight(36);
74
- $objPHPExcel->getActiveSheet()->getHeaderFooter()->addImage($objDrawing, PHPExcel_Worksheet_HeaderFooter::IMAGE_HEADER_LEFT);
75
-
76
- // Set page orientation and size
77
- echo date('H:i:s') , " Set page orientation and size" , EOL;
78
- $objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
79
- $objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
80
-
81
- // Rename worksheet
82
- echo date('H:i:s') , " Rename worksheet" , EOL;
83
- $objPHPExcel->getActiveSheet()->setTitle('Printing');
84
-
85
-
86
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
87
- $objPHPExcel->setActiveSheetIndex(0);
88
-
89
-
90
- // Save Excel 2007 file
91
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
92
- $callStartTime = microtime(true);
93
-
94
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
95
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
96
- $callEndTime = microtime(true);
97
- $callTime = $callEndTime - $callStartTime;
98
-
99
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
100
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
101
- // Echo memory usage
102
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
103
-
104
-
105
- // Save Excel 95 file
106
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
107
- $callStartTime = microtime(true);
108
-
109
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
110
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
111
- $callEndTime = microtime(true);
112
- $callTime = $callEndTime - $callStartTime;
113
-
114
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
115
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
116
- // Echo memory usage
117
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
118
-
119
-
120
- // Echo memory peak usage
121
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
122
-
123
- // Echo done
124
- echo date('H:i:s') , " Done writing files" , EOL;
125
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/05featuredemo.inc.php DELETED
@@ -1,394 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
-
31
- /** Include PHPExcel */
32
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
33
-
34
-
35
- // Create new PHPExcel object
36
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
37
- $objPHPExcel = new PHPExcel();
38
-
39
- // Set document properties
40
- echo date('H:i:s') , " Set document properties" , EOL;
41
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
42
- ->setLastModifiedBy("Maarten Balliauw")
43
- ->setTitle("Office 2007 XLSX Test Document")
44
- ->setSubject("Office 2007 XLSX Test Document")
45
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
46
- ->setKeywords("office 2007 openxml php")
47
- ->setCategory("Test result file");
48
-
49
-
50
- // Create a first sheet, representing sales data
51
- echo date('H:i:s') , " Add some data" , EOL;
52
- $objPHPExcel->setActiveSheetIndex(0);
53
- $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Invoice');
54
- $objPHPExcel->getActiveSheet()->setCellValue('D1', PHPExcel_Shared_Date::PHPToExcel( gmmktime(0,0,0,date('m'),date('d'),date('Y')) ));
55
- $objPHPExcel->getActiveSheet()->getStyle('D1')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX15);
56
- $objPHPExcel->getActiveSheet()->setCellValue('E1', '#12566');
57
-
58
- $objPHPExcel->getActiveSheet()->setCellValue('A3', 'Product Id');
59
- $objPHPExcel->getActiveSheet()->setCellValue('B3', 'Description');
60
- $objPHPExcel->getActiveSheet()->setCellValue('C3', 'Price');
61
- $objPHPExcel->getActiveSheet()->setCellValue('D3', 'Amount');
62
- $objPHPExcel->getActiveSheet()->setCellValue('E3', 'Total');
63
-
64
- $objPHPExcel->getActiveSheet()->setCellValue('A4', '1001');
65
- $objPHPExcel->getActiveSheet()->setCellValue('B4', 'PHP for dummies');
66
- $objPHPExcel->getActiveSheet()->setCellValue('C4', '20');
67
- $objPHPExcel->getActiveSheet()->setCellValue('D4', '1');
68
- $objPHPExcel->getActiveSheet()->setCellValue('E4', '=IF(D4<>"",C4*D4,"")');
69
-
70
- $objPHPExcel->getActiveSheet()->setCellValue('A5', '1012');
71
- $objPHPExcel->getActiveSheet()->setCellValue('B5', 'OpenXML for dummies');
72
- $objPHPExcel->getActiveSheet()->setCellValue('C5', '22');
73
- $objPHPExcel->getActiveSheet()->setCellValue('D5', '2');
74
- $objPHPExcel->getActiveSheet()->setCellValue('E5', '=IF(D5<>"",C5*D5,"")');
75
-
76
- $objPHPExcel->getActiveSheet()->setCellValue('E6', '=IF(D6<>"",C6*D6,"")');
77
- $objPHPExcel->getActiveSheet()->setCellValue('E7', '=IF(D7<>"",C7*D7,"")');
78
- $objPHPExcel->getActiveSheet()->setCellValue('E8', '=IF(D8<>"",C8*D8,"")');
79
- $objPHPExcel->getActiveSheet()->setCellValue('E9', '=IF(D9<>"",C9*D9,"")');
80
-
81
- $objPHPExcel->getActiveSheet()->setCellValue('D11', 'Total excl.:');
82
- $objPHPExcel->getActiveSheet()->setCellValue('E11', '=SUM(E4:E9)');
83
-
84
- $objPHPExcel->getActiveSheet()->setCellValue('D12', 'VAT:');
85
- $objPHPExcel->getActiveSheet()->setCellValue('E12', '=E11*0.21');
86
-
87
- $objPHPExcel->getActiveSheet()->setCellValue('D13', 'Total incl.:');
88
- $objPHPExcel->getActiveSheet()->setCellValue('E13', '=E11+E12');
89
-
90
- // Add comment
91
- echo date('H:i:s') , " Add comments" , EOL;
92
-
93
- $objPHPExcel->getActiveSheet()->getComment('E11')->setAuthor('PHPExcel');
94
- $objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun('PHPExcel:');
95
- $objCommentRichText->getFont()->setBold(true);
96
- $objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun("\r\n");
97
- $objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun('Total amount on the current invoice, excluding VAT.');
98
-
99
- $objPHPExcel->getActiveSheet()->getComment('E12')->setAuthor('PHPExcel');
100
- $objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E12')->getText()->createTextRun('PHPExcel:');
101
- $objCommentRichText->getFont()->setBold(true);
102
- $objPHPExcel->getActiveSheet()->getComment('E12')->getText()->createTextRun("\r\n");
103
- $objPHPExcel->getActiveSheet()->getComment('E12')->getText()->createTextRun('Total amount of VAT on the current invoice.');
104
-
105
- $objPHPExcel->getActiveSheet()->getComment('E13')->setAuthor('PHPExcel');
106
- $objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E13')->getText()->createTextRun('PHPExcel:');
107
- $objCommentRichText->getFont()->setBold(true);
108
- $objPHPExcel->getActiveSheet()->getComment('E13')->getText()->createTextRun("\r\n");
109
- $objPHPExcel->getActiveSheet()->getComment('E13')->getText()->createTextRun('Total amount on the current invoice, including VAT.');
110
- $objPHPExcel->getActiveSheet()->getComment('E13')->setWidth('100pt');
111
- $objPHPExcel->getActiveSheet()->getComment('E13')->setHeight('100pt');
112
- $objPHPExcel->getActiveSheet()->getComment('E13')->setMarginLeft('150pt');
113
- $objPHPExcel->getActiveSheet()->getComment('E13')->getFillColor()->setRGB('EEEEEE');
114
-
115
-
116
- // Add rich-text string
117
- echo date('H:i:s') , " Add rich-text string" , EOL;
118
- $objRichText = new PHPExcel_RichText();
119
- $objRichText->createText('This invoice is ');
120
-
121
- $objPayable = $objRichText->createTextRun('payable within thirty days after the end of the month');
122
- $objPayable->getFont()->setBold(true);
123
- $objPayable->getFont()->setItalic(true);
124
- $objPayable->getFont()->setColor( new PHPExcel_Style_Color( PHPExcel_Style_Color::COLOR_DARKGREEN ) );
125
-
126
- $objRichText->createText(', unless specified otherwise on the invoice.');
127
-
128
- $objPHPExcel->getActiveSheet()->getCell('A18')->setValue($objRichText);
129
-
130
- // Merge cells
131
- echo date('H:i:s') , " Merge cells" , EOL;
132
- $objPHPExcel->getActiveSheet()->mergeCells('A18:E22');
133
- $objPHPExcel->getActiveSheet()->mergeCells('A28:B28'); // Just to test...
134
- $objPHPExcel->getActiveSheet()->unmergeCells('A28:B28'); // Just to test...
135
-
136
- // Protect cells
137
- echo date('H:i:s') , " Protect cells" , EOL;
138
- $objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); // Needs to be set to true in order to enable any worksheet protection!
139
- $objPHPExcel->getActiveSheet()->protectCells('A3:E13', 'PHPExcel');
140
-
141
- // Set cell number formats
142
- echo date('H:i:s') , " Set cell number formats" , EOL;
143
- $objPHPExcel->getActiveSheet()->getStyle('E4:E13')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);
144
-
145
- // Set column widths
146
- echo date('H:i:s') , " Set column widths" , EOL;
147
- $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
148
- $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);
149
- $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(12);
150
-
151
- // Set fonts
152
- echo date('H:i:s') , " Set fonts" , EOL;
153
- $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setName('Candara');
154
- $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(20);
155
- $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);
156
- $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
157
- $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
158
-
159
- $objPHPExcel->getActiveSheet()->getStyle('D1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
160
- $objPHPExcel->getActiveSheet()->getStyle('E1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
161
-
162
- $objPHPExcel->getActiveSheet()->getStyle('D13')->getFont()->setBold(true);
163
- $objPHPExcel->getActiveSheet()->getStyle('E13')->getFont()->setBold(true);
164
-
165
- // Set alignments
166
- echo date('H:i:s') , " Set alignments" , EOL;
167
- $objPHPExcel->getActiveSheet()->getStyle('D11')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
168
- $objPHPExcel->getActiveSheet()->getStyle('D12')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
169
- $objPHPExcel->getActiveSheet()->getStyle('D13')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
170
-
171
- $objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY);
172
- $objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
173
-
174
- $objPHPExcel->getActiveSheet()->getStyle('B5')->getAlignment()->setShrinkToFit(true);
175
-
176
- // Set thin black border outline around column
177
- echo date('H:i:s') , " Set thin black border outline around column" , EOL;
178
- $styleThinBlackBorderOutline = array(
179
- 'borders' => array(
180
- 'outline' => array(
181
- 'style' => PHPExcel_Style_Border::BORDER_THIN,
182
- 'color' => array('argb' => 'FF000000'),
183
- ),
184
- ),
185
- );
186
- $objPHPExcel->getActiveSheet()->getStyle('A4:E10')->applyFromArray($styleThinBlackBorderOutline);
187
-
188
-
189
- // Set thick brown border outline around "Total"
190
- echo date('H:i:s') , " Set thick brown border outline around Total" , EOL;
191
- $styleThickBrownBorderOutline = array(
192
- 'borders' => array(
193
- 'outline' => array(
194
- 'style' => PHPExcel_Style_Border::BORDER_THICK,
195
- 'color' => array('argb' => 'FF993300'),
196
- ),
197
- ),
198
- );
199
- $objPHPExcel->getActiveSheet()->getStyle('D13:E13')->applyFromArray($styleThickBrownBorderOutline);
200
-
201
- // Set fills
202
- echo date('H:i:s') , " Set fills" , EOL;
203
- $objPHPExcel->getActiveSheet()->getStyle('A1:E1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
204
- $objPHPExcel->getActiveSheet()->getStyle('A1:E1')->getFill()->getStartColor()->setARGB('FF808080');
205
-
206
- // Set style for header row using alternative method
207
- echo date('H:i:s') , " Set style for header row using alternative method" , EOL;
208
- $objPHPExcel->getActiveSheet()->getStyle('A3:E3')->applyFromArray(
209
- array(
210
- 'font' => array(
211
- 'bold' => true
212
- ),
213
- 'alignment' => array(
214
- 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT,
215
- ),
216
- 'borders' => array(
217
- 'top' => array(
218
- 'style' => PHPExcel_Style_Border::BORDER_THIN
219
- )
220
- ),
221
- 'fill' => array(
222
- 'type' => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
223
- 'rotation' => 90,
224
- 'startcolor' => array(
225
- 'argb' => 'FFA0A0A0'
226
- ),
227
- 'endcolor' => array(
228
- 'argb' => 'FFFFFFFF'
229
- )
230
- )
231
- )
232
- );
233
-
234
- $objPHPExcel->getActiveSheet()->getStyle('A3')->applyFromArray(
235
- array(
236
- 'alignment' => array(
237
- 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT,
238
- ),
239
- 'borders' => array(
240
- 'left' => array(
241
- 'style' => PHPExcel_Style_Border::BORDER_THIN
242
- )
243
- )
244
- )
245
- );
246
-
247
- $objPHPExcel->getActiveSheet()->getStyle('B3')->applyFromArray(
248
- array(
249
- 'alignment' => array(
250
- 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT,
251
- )
252
- )
253
- );
254
-
255
- $objPHPExcel->getActiveSheet()->getStyle('E3')->applyFromArray(
256
- array(
257
- 'borders' => array(
258
- 'right' => array(
259
- 'style' => PHPExcel_Style_Border::BORDER_THIN
260
- )
261
- )
262
- )
263
- );
264
-
265
- // Unprotect a cell
266
- echo date('H:i:s') , " Unprotect a cell" , EOL;
267
- $objPHPExcel->getActiveSheet()->getStyle('B1')->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);
268
-
269
- // Add a hyperlink to the sheet
270
- echo date('H:i:s') , " Add a hyperlink to an external website" , EOL;
271
- $objPHPExcel->getActiveSheet()->setCellValue('E26', 'www.phpexcel.net');
272
- $objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl('http://www.phpexcel.net');
273
- $objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setTooltip('Navigate to website');
274
- $objPHPExcel->getActiveSheet()->getStyle('E26')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
275
-
276
- echo date('H:i:s') , " Add a hyperlink to another cell on a different worksheet within the workbook" , EOL;
277
- $objPHPExcel->getActiveSheet()->setCellValue('E27', 'Terms and conditions');
278
- $objPHPExcel->getActiveSheet()->getCell('E27')->getHyperlink()->setUrl("sheet://'Terms and conditions'!A1");
279
- $objPHPExcel->getActiveSheet()->getCell('E27')->getHyperlink()->setTooltip('Review terms and conditions');
280
- $objPHPExcel->getActiveSheet()->getStyle('E27')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
281
-
282
- // Add a drawing to the worksheet
283
- echo date('H:i:s') , " Add a drawing to the worksheet" , EOL;
284
- $objDrawing = new PHPExcel_Worksheet_Drawing();
285
- $objDrawing->setName('Logo');
286
- $objDrawing->setDescription('Logo');
287
- $objDrawing->setPath('./images/officelogo.jpg');
288
- $objDrawing->setHeight(36);
289
- $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
290
-
291
- // Add a drawing to the worksheet
292
- echo date('H:i:s') , " Add a drawing to the worksheet" , EOL;
293
- $objDrawing = new PHPExcel_Worksheet_Drawing();
294
- $objDrawing->setName('Paid');
295
- $objDrawing->setDescription('Paid');
296
- $objDrawing->setPath('./images/paid.png');
297
- $objDrawing->setCoordinates('B15');
298
- $objDrawing->setOffsetX(110);
299
- $objDrawing->setRotation(25);
300
- $objDrawing->getShadow()->setVisible(true);
301
- $objDrawing->getShadow()->setDirection(45);
302
- $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
303
-
304
- // Add a drawing to the worksheet
305
- echo date('H:i:s') , " Add a drawing to the worksheet" , EOL;
306
- $objDrawing = new PHPExcel_Worksheet_Drawing();
307
- $objDrawing->setName('PHPExcel logo');
308
- $objDrawing->setDescription('PHPExcel logo');
309
- $objDrawing->setPath('./images/phpexcel_logo.gif');
310
- $objDrawing->setHeight(36);
311
- $objDrawing->setCoordinates('D24');
312
- $objDrawing->setOffsetX(10);
313
- $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
314
-
315
- // Play around with inserting and removing rows and columns
316
- echo date('H:i:s') , " Play around with inserting and removing rows and columns" , EOL;
317
- $objPHPExcel->getActiveSheet()->insertNewRowBefore(6, 10);
318
- $objPHPExcel->getActiveSheet()->removeRow(6, 10);
319
- $objPHPExcel->getActiveSheet()->insertNewColumnBefore('E', 5);
320
- $objPHPExcel->getActiveSheet()->removeColumn('E', 5);
321
-
322
- // Set header and footer. When no different headers for odd/even are used, odd header is assumed.
323
- echo date('H:i:s') , " Set header/footer" , EOL;
324
- $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&BInvoice&RPrinted on &D');
325
- $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objPHPExcel->getProperties()->getTitle() . '&RPage &P of &N');
326
-
327
- // Set page orientation and size
328
- echo date('H:i:s') , " Set page orientation and size" , EOL;
329
- $objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);
330
- $objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
331
-
332
- // Rename first worksheet
333
- echo date('H:i:s') , " Rename first worksheet" , EOL;
334
- $objPHPExcel->getActiveSheet()->setTitle('Invoice');
335
-
336
-
337
- // Create a new worksheet, after the default sheet
338
- echo date('H:i:s') , " Create a second Worksheet object" , EOL;
339
- $objPHPExcel->createSheet();
340
-
341
- // Llorem ipsum...
342
- $sLloremIpsum = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus eget ante. Sed cursus nunc semper tortor. Aliquam luctus purus non elit. Fusce vel elit commodo sapien dignissim dignissim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur accumsan magna sed massa. Nullam bibendum quam ac ipsum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin augue. Praesent malesuada justo sed orci. Pellentesque lacus ligula, sodales quis, ultricies a, ultricies vitae, elit. Sed luctus consectetuer dolor. Vivamus vel sem ut nisi sodales accumsan. Nunc et felis. Suspendisse semper viverra odio. Morbi at odio. Integer a orci a purus venenatis molestie. Nam mattis. Praesent rhoncus, nisi vel mattis auctor, neque nisi faucibus sem, non dapibus elit pede ac nisl. Cras turpis.';
343
-
344
- // Add some data to the second sheet, resembling some different data types
345
- echo date('H:i:s') , " Add some data" , EOL;
346
- $objPHPExcel->setActiveSheetIndex(1);
347
- $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Terms and conditions');
348
- $objPHPExcel->getActiveSheet()->setCellValue('A3', $sLloremIpsum);
349
- $objPHPExcel->getActiveSheet()->setCellValue('A4', $sLloremIpsum);
350
- $objPHPExcel->getActiveSheet()->setCellValue('A5', $sLloremIpsum);
351
- $objPHPExcel->getActiveSheet()->setCellValue('A6', $sLloremIpsum);
352
-
353
- // Set the worksheet tab color
354
- echo date('H:i:s') , " Set the worksheet tab color" , EOL;
355
- $objPHPExcel->getActiveSheet()->getTabColor()->setARGB('FF0094FF');;
356
-
357
- // Set alignments
358
- echo date('H:i:s') , " Set alignments" , EOL;
359
- $objPHPExcel->getActiveSheet()->getStyle('A3:A6')->getAlignment()->setWrapText(true);
360
-
361
- // Set column widths
362
- echo date('H:i:s') , " Set column widths" , EOL;
363
- $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(80);
364
-
365
- // Set fonts
366
- echo date('H:i:s') , " Set fonts" , EOL;
367
- $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setName('Candara');
368
- $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(20);
369
- $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
370
- $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
371
-
372
- $objPHPExcel->getActiveSheet()->getStyle('A3:A6')->getFont()->setSize(8);
373
-
374
- // Add a drawing to the worksheet
375
- echo date('H:i:s') , " Add a drawing to the worksheet" , EOL;
376
- $objDrawing = new PHPExcel_Worksheet_Drawing();
377
- $objDrawing->setName('Terms and conditions');
378
- $objDrawing->setDescription('Terms and conditions');
379
- $objDrawing->setPath('./images/termsconditions.jpg');
380
- $objDrawing->setCoordinates('B14');
381
- $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
382
-
383
- // Set page orientation and size
384
- echo date('H:i:s') , " Set page orientation and size" , EOL;
385
- $objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
386
- $objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
387
-
388
- // Rename second worksheet
389
- echo date('H:i:s') , " Rename second worksheet" , EOL;
390
- $objPHPExcel->getActiveSheet()->setTitle('Terms and conditions');
391
-
392
-
393
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
394
- $objPHPExcel->setActiveSheetIndex(0);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/05featuredemo.php DELETED
@@ -1,78 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- include "05featuredemo.inc.php";
38
-
39
- /** Include PHPExcel_IOFactory */
40
- require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
41
-
42
-
43
- // Save Excel 2007 file
44
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
45
- $callStartTime = microtime(true);
46
-
47
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
48
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
49
- $callEndTime = microtime(true);
50
- $callTime = $callEndTime - $callStartTime;
51
-
52
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
53
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
54
- // Echo memory usage
55
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
56
-
57
-
58
- // Save Excel 95 file
59
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
60
- $callStartTime = microtime(true);
61
-
62
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
63
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
64
- $callEndTime = microtime(true);
65
- $callTime = $callEndTime - $callStartTime;
66
-
67
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
68
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
69
- // Echo memory usage
70
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
71
-
72
-
73
- // Echo memory peak usage
74
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
75
-
76
- // Echo done
77
- echo date('H:i:s') , " Done writing files" , EOL;
78
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite.php DELETED
@@ -1,129 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
- $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_sqlite;
41
- if (PHPExcel_Settings::setCacheStorageMethod($cacheMethod)) {
42
- echo date('H:i:s') , " Enable Cell Caching using " , $cacheMethod , " method" , EOL;
43
- } else {
44
- echo date('H:i:s') , " Unable to set Cell Caching using " , $cacheMethod , " method, reverting to memory" , EOL;
45
- }
46
-
47
-
48
- // Create new PHPExcel object
49
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
50
- $objPHPExcel = new PHPExcel();
51
-
52
- // Set document properties
53
- echo date('H:i:s') , " Set properties" , EOL;
54
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
55
- ->setLastModifiedBy("Maarten Balliauw")
56
- ->setTitle("Office 2007 XLSX Test Document")
57
- ->setSubject("Office 2007 XLSX Test Document")
58
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
59
- ->setKeywords("office 2007 openxml php")
60
- ->setCategory("Test result file");
61
-
62
-
63
- // Create a first sheet
64
- echo date('H:i:s') , " Add data" , EOL;
65
- $objPHPExcel->setActiveSheetIndex(0);
66
- $objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname");
67
- $objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname");
68
- $objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone");
69
- $objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax");
70
- $objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?");
71
-
72
-
73
- // Hide "Phone" and "fax" column
74
- echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL;
75
- $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false);
76
- $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false);
77
-
78
-
79
- // Set outline levels
80
- echo date('H:i:s') , " Set outline levels" , EOL;
81
- $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1)
82
- ->setVisible(false)
83
- ->setCollapsed(true);
84
-
85
- // Freeze panes
86
- echo date('H:i:s') , " Freeze panes" , EOL;
87
- $objPHPExcel->getActiveSheet()->freezePane('A2');
88
-
89
-
90
- // Rows to repeat at top
91
- echo date('H:i:s') , " Rows to repeat at top" , EOL;
92
- $objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1);
93
-
94
-
95
- // Add data
96
- for ($i = 2; $i <= 5000; $i++) {
97
- $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i")
98
- ->setCellValue('B' . $i, "LName $i")
99
- ->setCellValue('C' . $i, "PhoneNo $i")
100
- ->setCellValue('D' . $i, "FaxNo $i")
101
- ->setCellValue('E' . $i, true);
102
- }
103
-
104
-
105
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
106
- $objPHPExcel->setActiveSheetIndex(0);
107
-
108
-
109
- // Save Excel 2007 file
110
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
111
- $callStartTime = microtime(true);
112
-
113
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
114
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
115
- $callEndTime = microtime(true);
116
- $callTime = $callEndTime - $callStartTime;
117
-
118
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
119
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
120
- // Echo memory usage
121
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
122
-
123
-
124
- // Echo memory peak usage
125
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
126
-
127
- // Echo done
128
- echo date('H:i:s') , " Done writing file" , EOL;
129
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite3.php DELETED
@@ -1,129 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
- $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_sqlite3;
41
- if (PHPExcel_Settings::setCacheStorageMethod($cacheMethod)) {
42
- echo date('H:i:s') , " Enable Cell Caching using " , $cacheMethod , " method" , EOL;
43
- } else {
44
- echo date('H:i:s') , " Unable to set Cell Caching using " , $cacheMethod , " method, reverting to memory" , EOL;
45
- }
46
-
47
-
48
- // Create new PHPExcel object
49
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
50
- $objPHPExcel = new PHPExcel();
51
-
52
- // Set document properties
53
- echo date('H:i:s') , " Set properties" , EOL;
54
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
55
- ->setLastModifiedBy("Maarten Balliauw")
56
- ->setTitle("Office 2007 XLSX Test Document")
57
- ->setSubject("Office 2007 XLSX Test Document")
58
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
59
- ->setKeywords("office 2007 openxml php")
60
- ->setCategory("Test result file");
61
-
62
-
63
- // Create a first sheet
64
- echo date('H:i:s') , " Add data" , EOL;
65
- $objPHPExcel->setActiveSheetIndex(0);
66
- $objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname");
67
- $objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname");
68
- $objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone");
69
- $objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax");
70
- $objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?");
71
-
72
-
73
- // Hide "Phone" and "fax" column
74
- echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL;
75
- $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false);
76
- $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false);
77
-
78
-
79
- // Set outline levels
80
- echo date('H:i:s') , " Set outline levels" , EOL;
81
- $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1)
82
- ->setVisible(false)
83
- ->setCollapsed(true);
84
-
85
- // Freeze panes
86
- echo date('H:i:s') , " Freeze panes" , EOL;
87
- $objPHPExcel->getActiveSheet()->freezePane('A2');
88
-
89
-
90
- // Rows to repeat at top
91
- echo date('H:i:s') , " Rows to repeat at top" , EOL;
92
- $objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1);
93
-
94
-
95
- // Add data
96
- for ($i = 2; $i <= 5000; $i++) {
97
- $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i")
98
- ->setCellValue('B' . $i, "LName $i")
99
- ->setCellValue('C' . $i, "PhoneNo $i")
100
- ->setCellValue('D' . $i, "FaxNo $i")
101
- ->setCellValue('E' . $i, true);
102
- }
103
-
104
-
105
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
106
- $objPHPExcel->setActiveSheetIndex(0);
107
-
108
-
109
- // Save Excel 2007 file
110
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
111
- $callStartTime = microtime(true);
112
-
113
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
114
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
115
- $callEndTime = microtime(true);
116
- $callTime = $callEndTime - $callStartTime;
117
-
118
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
119
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
120
- // Echo memory usage
121
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
122
-
123
-
124
- // Echo memory peak usage
125
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
126
-
127
- // Echo done
128
- echo date('H:i:s') , " Done writing file" , EOL;
129
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/06largescale-with-cellcaching.php DELETED
@@ -1,128 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
- $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
41
- if (!PHPExcel_Settings::setCacheStorageMethod($cacheMethod)) {
42
- die($cacheMethod . " caching method is not available" . EOL);
43
- }
44
- echo date('H:i:s') , " Enable Cell Caching using " , $cacheMethod , " method" , EOL;
45
-
46
-
47
- // Create new PHPExcel object
48
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
49
- $objPHPExcel = new PHPExcel();
50
-
51
- // Set document properties
52
- echo date('H:i:s') , " Set properties" , EOL;
53
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
54
- ->setLastModifiedBy("Maarten Balliauw")
55
- ->setTitle("Office 2007 XLSX Test Document")
56
- ->setSubject("Office 2007 XLSX Test Document")
57
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
58
- ->setKeywords("office 2007 openxml php")
59
- ->setCategory("Test result file");
60
-
61
-
62
- // Create a first sheet
63
- echo date('H:i:s') , " Add data" , EOL;
64
- $objPHPExcel->setActiveSheetIndex(0);
65
- $objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname");
66
- $objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname");
67
- $objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone");
68
- $objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax");
69
- $objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?");
70
-
71
-
72
- // Hide "Phone" and "fax" column
73
- echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL;
74
- $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false);
75
- $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false);
76
-
77
-
78
- // Set outline levels
79
- echo date('H:i:s') , " Set outline levels" , EOL;
80
- $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1)
81
- ->setVisible(false)
82
- ->setCollapsed(true);
83
-
84
- // Freeze panes
85
- echo date('H:i:s') , " Freeze panes" , EOL;
86
- $objPHPExcel->getActiveSheet()->freezePane('A2');
87
-
88
-
89
- // Rows to repeat at top
90
- echo date('H:i:s') , " Rows to repeat at top" , EOL;
91
- $objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1);
92
-
93
-
94
- // Add data
95
- for ($i = 2; $i <= 5000; $i++) {
96
- $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i")
97
- ->setCellValue('B' . $i, "LName $i")
98
- ->setCellValue('C' . $i, "PhoneNo $i")
99
- ->setCellValue('D' . $i, "FaxNo $i")
100
- ->setCellValue('E' . $i, true);
101
- }
102
-
103
-
104
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
105
- $objPHPExcel->setActiveSheetIndex(0);
106
-
107
-
108
- // Save Excel 2007 file
109
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
110
- $callStartTime = microtime(true);
111
-
112
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
113
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
114
- $callEndTime = microtime(true);
115
- $callTime = $callEndTime - $callStartTime;
116
-
117
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
118
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
119
- // Echo memory usage
120
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
121
-
122
-
123
- // Echo memory peak usage
124
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
125
-
126
- // Echo done
127
- echo date('H:i:s') , " Done writing file" , EOL;
128
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/06largescale-xls.php DELETED
@@ -1,136 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- /*
42
- After doing some test, I've got these results benchmarked
43
- for writing to Excel2007:
44
-
45
- Number of rows Seconds to generate
46
- 200 3
47
- 500 4
48
- 1000 6
49
- 2000 12
50
- 4000 36
51
- 8000 64
52
- 15000 465
53
- */
54
-
55
- // Create new PHPExcel object
56
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
57
- $objPHPExcel = new PHPExcel();
58
-
59
- // Set document properties
60
- echo date('H:i:s') , " Set properties" , EOL;
61
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
62
- ->setLastModifiedBy("Maarten Balliauw")
63
- ->setTitle("Office 2007 XLSX Test Document")
64
- ->setSubject("Office 2007 XLSX Test Document")
65
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
66
- ->setKeywords("office 2007 openxml php")
67
- ->setCategory("Test result file");
68
-
69
-
70
- // Create a first sheet
71
- echo date('H:i:s') , " Add data" , EOL;
72
- $objPHPExcel->setActiveSheetIndex(0);
73
- $objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname");
74
- $objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname");
75
- $objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone");
76
- $objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax");
77
- $objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?");
78
-
79
-
80
- // Hide "Phone" and "fax" column
81
- echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL;
82
- $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false);
83
- $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false);
84
-
85
-
86
- // Set outline levels
87
- echo date('H:i:s') , " Set outline levels" , EOL;
88
- $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1)
89
- ->setVisible(false)
90
- ->setCollapsed(true);
91
-
92
- // Freeze panes
93
- echo date('H:i:s') , " Freeze panes" , EOL;
94
- $objPHPExcel->getActiveSheet()->freezePane('A2');
95
-
96
-
97
- // Rows to repeat at top
98
- echo date('H:i:s') , " Rows to repeat at top" , EOL;
99
- $objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1);
100
-
101
-
102
- // Add data
103
- for ($i = 2; $i <= 5000; $i++) {
104
- $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i")
105
- ->setCellValue('B' . $i, "LName $i")
106
- ->setCellValue('C' . $i, "PhoneNo $i")
107
- ->setCellValue('D' . $i, "FaxNo $i")
108
- ->setCellValue('E' . $i, true);
109
- }
110
-
111
-
112
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
113
- $objPHPExcel->setActiveSheetIndex(0);
114
-
115
-
116
- // Save Excel 95 file
117
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
118
- $callStartTime = microtime(true);
119
-
120
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
121
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
122
- $callEndTime = microtime(true);
123
- $callTime = $callEndTime - $callStartTime;
124
-
125
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
126
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
127
- // Echo memory usage
128
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
129
-
130
-
131
- // Echo memory peak usage
132
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
133
-
134
- // Echo done
135
- echo date('H:i:s') , " Done writing file" , EOL;
136
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/06largescale.php DELETED
@@ -1,136 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- /*
42
- After doing some test, I've got these results benchmarked
43
- for writing to Excel2007:
44
-
45
- Number of rows Seconds to generate
46
- 200 3
47
- 500 4
48
- 1000 6
49
- 2000 12
50
- 4000 36
51
- 8000 64
52
- 15000 465
53
- */
54
-
55
- // Create new PHPExcel object
56
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
57
- $objPHPExcel = new PHPExcel();
58
-
59
- // Set document properties
60
- echo date('H:i:s') , " Set properties" , EOL;
61
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
62
- ->setLastModifiedBy("Maarten Balliauw")
63
- ->setTitle("Office 2007 XLSX Test Document")
64
- ->setSubject("Office 2007 XLSX Test Document")
65
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
66
- ->setKeywords("office 2007 openxml php")
67
- ->setCategory("Test result file");
68
-
69
-
70
- // Create a first sheet
71
- echo date('H:i:s') , " Add data" , EOL;
72
- $objPHPExcel->setActiveSheetIndex(0);
73
- $objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname");
74
- $objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname");
75
- $objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone");
76
- $objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax");
77
- $objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?");
78
-
79
-
80
- // Hide "Phone" and "fax" column
81
- echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL;
82
- $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false);
83
- $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false);
84
-
85
-
86
- // Set outline levels
87
- echo date('H:i:s') , " Set outline levels" , EOL;
88
- $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1)
89
- ->setVisible(false)
90
- ->setCollapsed(true);
91
-
92
- // Freeze panes
93
- echo date('H:i:s') , " Freeze panes" , EOL;
94
- $objPHPExcel->getActiveSheet()->freezePane('A2');
95
-
96
-
97
- // Rows to repeat at top
98
- echo date('H:i:s') , " Rows to repeat at top" , EOL;
99
- $objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1);
100
-
101
-
102
- // Add data
103
- for ($i = 2; $i <= 5000; $i++) {
104
- $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i")
105
- ->setCellValue('B' . $i, "LName $i")
106
- ->setCellValue('C' . $i, "PhoneNo $i")
107
- ->setCellValue('D' . $i, "FaxNo $i")
108
- ->setCellValue('E' . $i, true);
109
- }
110
-
111
-
112
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
113
- $objPHPExcel->setActiveSheetIndex(0);
114
-
115
-
116
- // Save Excel 2007 file
117
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
118
- $callStartTime = microtime(true);
119
-
120
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
121
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
122
- $callEndTime = microtime(true);
123
- $callTime = $callEndTime - $callStartTime;
124
-
125
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
126
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
127
- // Echo memory usage
128
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
129
-
130
-
131
- // Echo memory peak usage
132
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
133
-
134
- // Echo done
135
- echo date('H:i:s') , " Done writing file" , EOL;
136
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/07reader.php DELETED
@@ -1,76 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- error_reporting(E_ALL);
29
- ini_set('display_errors', TRUE);
30
- ini_set('display_startup_errors', TRUE);
31
-
32
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
33
-
34
- date_default_timezone_set('Europe/London');
35
-
36
- /** Include PHPExcel_IOFactory */
37
- require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
38
-
39
-
40
- if (!file_exists("05featuredemo.xlsx")) {
41
- exit("Please run 05featuredemo.php first." . EOL);
42
- }
43
-
44
- echo date('H:i:s') , " Load from Excel2007 file" , EOL;
45
- $callStartTime = microtime(true);
46
-
47
- $objPHPExcel = PHPExcel_IOFactory::load("05featuredemo.xlsx");
48
-
49
- $callEndTime = microtime(true);
50
- $callTime = $callEndTime - $callStartTime;
51
- echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
52
- // Echo memory usage
53
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
54
-
55
-
56
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
57
- $callStartTime = microtime(true);
58
-
59
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
60
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
61
-
62
- $callEndTime = microtime(true);
63
- $callTime = $callEndTime - $callStartTime;
64
-
65
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
66
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
67
- // Echo memory usage
68
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
69
-
70
-
71
- // Echo memory peak usage
72
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
73
-
74
- // Echo done
75
- echo date('H:i:s') , " Done writing file" , EOL;
76
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/07readerPCLZip.php DELETED
@@ -1,79 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- error_reporting(E_ALL);
29
- ini_set('display_errors', TRUE);
30
- ini_set('display_startup_errors', TRUE);
31
-
32
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
33
-
34
- date_default_timezone_set('Europe/London');
35
-
36
- /** Include PHPExcel_IOFactory */
37
- require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
38
-
39
-
40
- if (!file_exists("05featuredemo.xlsx")) {
41
- exit("Please run 05featuredemo.php first." . EOL);
42
- }
43
-
44
- // Use PCLZip rather than ZipArchive to read the Excel2007 OfficeOpenXML file
45
- PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
46
-
47
- echo date('H:i:s') , " Load from Excel2007 file" , EOL;
48
- $callStartTime = microtime(true);
49
-
50
- $objPHPExcel = PHPExcel_IOFactory::load("05featuredemo.xlsx");
51
-
52
- $callEndTime = microtime(true);
53
- $callTime = $callEndTime - $callStartTime;
54
- echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
55
- // Echo memory usage
56
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
57
-
58
-
59
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
60
- $callStartTime = microtime(true);
61
-
62
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
63
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
64
-
65
- $callEndTime = microtime(true);
66
- $callTime = $callEndTime - $callStartTime;
67
-
68
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
69
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
70
- // Echo memory usage
71
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
72
-
73
-
74
- // Echo memory peak usage
75
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
76
-
77
- // Echo done
78
- echo date('H:i:s') , " Done writing file" , EOL;
79
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/08conditionalformatting.php DELETED
@@ -1,189 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- // Create new PHPExcel object
42
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
43
- $objPHPExcel = new PHPExcel();
44
-
45
- // Set document properties
46
- echo date('H:i:s') , " Set document properties" , EOL;
47
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
48
- ->setLastModifiedBy("Maarten Balliauw")
49
- ->setTitle("Office 2007 XLSX Test Document")
50
- ->setSubject("Office 2007 XLSX Test Document")
51
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
52
- ->setKeywords("office 2007 openxml php")
53
- ->setCategory("Test result file");
54
-
55
-
56
- // Create a first sheet, representing sales data
57
- echo date('H:i:s') , " Add some data" , EOL;
58
- $objPHPExcel->setActiveSheetIndex(0);
59
- $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Description')
60
- ->setCellValue('B1', 'Amount');
61
-
62
- $objPHPExcel->getActiveSheet()->setCellValue('A2', 'Paycheck received')
63
- ->setCellValue('B2', 100);
64
-
65
- $objPHPExcel->getActiveSheet()->setCellValue('A3', 'Cup of coffee bought')
66
- ->setCellValue('B3', -1.5);
67
-
68
- $objPHPExcel->getActiveSheet()->setCellValue('A4', 'Cup of coffee bought')
69
- ->setCellValue('B4', -1.5);
70
-
71
- $objPHPExcel->getActiveSheet()->setCellValue('A5', 'Cup of tea bought')
72
- ->setCellValue('B5', -1.2);
73
-
74
- $objPHPExcel->getActiveSheet()->setCellValue('A6', 'Found some money')
75
- ->setCellValue('B6', 8);
76
-
77
- $objPHPExcel->getActiveSheet()->setCellValue('A7', 'Total:')
78
- ->setCellValue('B7', '=SUM(B2:B6)');
79
-
80
-
81
- // Set column widths
82
- echo date('H:i:s') , " Set column widths" , EOL;
83
- $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(30);
84
- $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(12);
85
-
86
-
87
- // Add conditional formatting
88
- echo date('H:i:s') , " Add conditional formatting" , EOL;
89
- $objConditional1 = new PHPExcel_Style_Conditional();
90
- $objConditional1->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS)
91
- ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_BETWEEN)
92
- ->addCondition('200')
93
- ->addCondition('400');
94
- $objConditional1->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_YELLOW);
95
- $objConditional1->getStyle()->getFont()->setBold(true);
96
- $objConditional1->getStyle()->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);
97
-
98
- $objConditional2 = new PHPExcel_Style_Conditional();
99
- $objConditional2->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS)
100
- ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_LESSTHAN)
101
- ->addCondition('0');
102
- $objConditional2->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);
103
- $objConditional2->getStyle()->getFont()->setItalic(true);
104
- $objConditional2->getStyle()->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);
105
-
106
- $objConditional3 = new PHPExcel_Style_Conditional();
107
- $objConditional3->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS)
108
- ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_GREATERTHANOREQUAL)
109
- ->addCondition('0');
110
- $objConditional3->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_GREEN);
111
- $objConditional3->getStyle()->getFont()->setItalic(true);
112
- $objConditional3->getStyle()->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);
113
-
114
- $conditionalStyles = $objPHPExcel->getActiveSheet()->getStyle('B2')->getConditionalStyles();
115
- array_push($conditionalStyles, $objConditional1);
116
- array_push($conditionalStyles, $objConditional2);
117
- array_push($conditionalStyles, $objConditional3);
118
- $objPHPExcel->getActiveSheet()->getStyle('B2')->setConditionalStyles($conditionalStyles);
119
-
120
-
121
- // duplicate the conditional styles across a range of cells
122
- echo date('H:i:s') , " Duplicate the conditional formatting across a range of cells" , EOL;
123
- $objPHPExcel->getActiveSheet()->duplicateConditionalStyle(
124
- $objPHPExcel->getActiveSheet()->getStyle('B2')->getConditionalStyles(),
125
- 'B3:B7'
126
- );
127
-
128
-
129
- // Set fonts
130
- echo date('H:i:s') , " Set fonts" , EOL;
131
- $objPHPExcel->getActiveSheet()->getStyle('A1:B1')->getFont()->setBold(true);
132
- //$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);
133
- $objPHPExcel->getActiveSheet()->getStyle('A7:B7')->getFont()->setBold(true);
134
- //$objPHPExcel->getActiveSheet()->getStyle('B7')->getFont()->setBold(true);
135
-
136
-
137
- // Set header and footer. When no different headers for odd/even are used, odd header is assumed.
138
- echo date('H:i:s') , " Set header/footer" , EOL;
139
- $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&BPersonal cash register&RPrinted on &D');
140
- $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objPHPExcel->getProperties()->getTitle() . '&RPage &P of &N');
141
-
142
-
143
- // Set page orientation and size
144
- echo date('H:i:s') , " Set page orientation and size" , EOL;
145
- $objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);
146
- $objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
147
-
148
-
149
- // Rename worksheet
150
- echo date('H:i:s') , " Rename worksheet" , EOL;
151
- $objPHPExcel->getActiveSheet()->setTitle('Invoice');
152
-
153
-
154
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
155
- $objPHPExcel->setActiveSheetIndex(0);
156
-
157
-
158
- // Save Excel 2007 file
159
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
160
- $callStartTime = microtime(true);
161
-
162
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
163
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
164
- $callEndTime = microtime(true);
165
- $callTime = $callEndTime - $callStartTime;
166
-
167
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
168
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
169
- // Save Excel5 file
170
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
171
- $callStartTime = microtime(true);
172
-
173
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
174
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
175
- $callEndTime = microtime(true);
176
- $callTime = $callEndTime - $callStartTime;
177
-
178
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
179
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
180
- // Echo memory usage
181
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
182
-
183
-
184
- // Echo memory peak usage
185
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
186
-
187
- // Echo done
188
- echo date('H:i:s') , " Done writing file" , EOL;
189
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/08conditionalformatting2.php DELETED
@@ -1,136 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- // Create new PHPExcel object
42
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
43
- $objPHPExcel = new PHPExcel();
44
-
45
- // Set document properties
46
- echo date('H:i:s') , " Set document properties" , EOL;
47
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
48
- ->setLastModifiedBy("Maarten Balliauw")
49
- ->setTitle("Office 2007 XLSX Test Document")
50
- ->setSubject("Office 2007 XLSX Test Document")
51
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
52
- ->setKeywords("office 2007 openxml php")
53
- ->setCategory("Test result file");
54
-
55
-
56
- // Create a first sheet, representing sales data
57
- echo date('H:i:s') , " Add some data" , EOL;
58
- $objPHPExcel->setActiveSheetIndex(0);
59
- $objPHPExcel->getActiveSheet()
60
- ->setCellValue('A1', '-0.5')
61
- ->setCellValue('A2', '-0.25')
62
- ->setCellValue('A3', '0.0')
63
- ->setCellValue('A4', '0.25')
64
- ->setCellValue('A5', '0.5')
65
- ->setCellValue('A6', '0.75')
66
- ->setCellValue('A7', '1.0')
67
- ->setCellValue('A8', '1.25')
68
- ;
69
-
70
- $objPHPExcel->getActiveSheet()->getStyle('A1:A8')
71
- ->getNumberFormat()
72
- ->setFormatCode(
73
- PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE_00
74
- );
75
-
76
-
77
- // Add conditional formatting
78
- echo date('H:i:s') , " Add conditional formatting" , EOL;
79
- $objConditional1 = new PHPExcel_Style_Conditional();
80
- $objConditional1->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS)
81
- ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_LESSTHAN)
82
- ->addCondition('0');
83
- $objConditional1->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);
84
-
85
- $objConditional3 = new PHPExcel_Style_Conditional();
86
- $objConditional3->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS)
87
- ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_GREATERTHANOREQUAL)
88
- ->addCondition('1');
89
- $objConditional3->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_GREEN);
90
-
91
- $conditionalStyles = $objPHPExcel->getActiveSheet()->getStyle('A1')->getConditionalStyles();
92
- array_push($conditionalStyles, $objConditional1);
93
- array_push($conditionalStyles, $objConditional3);
94
- $objPHPExcel->getActiveSheet()->getStyle('A1')->setConditionalStyles($conditionalStyles);
95
-
96
-
97
- // duplicate the conditional styles across a range of cells
98
- echo date('H:i:s') , " Duplicate the conditional formatting across a range of cells" , EOL;
99
- $objPHPExcel->getActiveSheet()->duplicateConditionalStyle(
100
- $objPHPExcel->getActiveSheet()->getStyle('A1')->getConditionalStyles(),
101
- 'A2:A8'
102
- );
103
-
104
-
105
- // Save Excel 2007 file
106
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
107
- $callStartTime = microtime(true);
108
-
109
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
110
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
111
- $callEndTime = microtime(true);
112
- $callTime = $callEndTime - $callStartTime;
113
-
114
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
115
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
116
- // Save Excel5 file
117
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
118
- $callStartTime = microtime(true);
119
-
120
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
121
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
122
- $callEndTime = microtime(true);
123
- $callTime = $callEndTime - $callStartTime;
124
-
125
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
126
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
127
- // Echo memory usage
128
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
129
-
130
-
131
- // Echo memory peak usage
132
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
133
-
134
- // Echo done
135
- echo date('H:i:s') , " Done writing file" , EOL;
136
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/09pagebreaks.php DELETED
@@ -1,134 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- // Create new PHPExcel object
42
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
43
- $objPHPExcel = new PHPExcel();
44
-
45
- // Set document properties
46
- echo date('H:i:s') , " Set document properties" , EOL;
47
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
48
- ->setLastModifiedBy("Maarten Balliauw")
49
- ->setTitle("Office 2007 XLSX Test Document")
50
- ->setSubject("Office 2007 XLSX Test Document")
51
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
52
- ->setKeywords("office 2007 openxml php")
53
- ->setCategory("Test result file");
54
-
55
-
56
- // Create a first sheet
57
- echo date('H:i:s') , " Add data and page breaks" , EOL;
58
- $objPHPExcel->setActiveSheetIndex(0);
59
- $objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname")
60
- ->setCellValue('B1', "Lastname")
61
- ->setCellValue('C1', "Phone")
62
- ->setCellValue('D1', "Fax")
63
- ->setCellValue('E1', "Is Client ?");
64
-
65
-
66
- // Add data
67
- for ($i = 2; $i <= 50; $i++) {
68
- $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i");
69
- $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, "LName $i");
70
- $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, "PhoneNo $i");
71
- $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, "FaxNo $i");
72
- $objPHPExcel->getActiveSheet()->setCellValue('E' . $i, true);
73
-
74
- // Add page breaks every 10 rows
75
- if ($i % 10 == 0) {
76
- // Add a page break
77
- $objPHPExcel->getActiveSheet()->setBreak( 'A' . $i, PHPExcel_Worksheet::BREAK_ROW );
78
- }
79
- }
80
-
81
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
82
- $objPHPExcel->setActiveSheetIndex(0);
83
- $objPHPExcel->getActiveSheet()->setTitle('Printing Options');
84
-
85
- // Set print headers
86
- $objPHPExcel->getActiveSheet()
87
- ->getHeaderFooter()->setOddHeader('&C&24&K0000FF&B&U&A');
88
- $objPHPExcel->getActiveSheet()
89
- ->getHeaderFooter()->setEvenHeader('&C&24&K0000FF&B&U&A');
90
-
91
- // Set print footers
92
- $objPHPExcel->getActiveSheet()
93
- ->getHeaderFooter()->setOddFooter('&R&D &T&C&F&LPage &P / &N');
94
- $objPHPExcel->getActiveSheet()
95
- ->getHeaderFooter()->setEvenFooter('&L&D &T&C&F&RPage &P / &N');
96
-
97
-
98
-
99
- // Save Excel 2007 file
100
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
101
- $callStartTime = microtime(true);
102
-
103
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
104
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
105
- $callEndTime = microtime(true);
106
- $callTime = $callEndTime - $callStartTime;
107
-
108
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
109
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
110
- // Echo memory usage
111
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
112
-
113
-
114
- // Save Excel 95 file
115
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
116
- $callStartTime = microtime(true);
117
-
118
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
119
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
120
- $callEndTime = microtime(true);
121
- $callTime = $callEndTime - $callStartTime;
122
-
123
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
124
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
125
- // Echo memory usage
126
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
127
-
128
-
129
- // Echo memory peak usage
130
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
131
-
132
- // Echo done
133
- echo date('H:i:s') , " Done writing files" , EOL;
134
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/10autofilter-selection-1.php DELETED
@@ -1,221 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- /** Include PHPExcel */
37
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
38
-
39
-
40
- // Create new PHPExcel object
41
- echo date('H:i:s').' Create new PHPExcel object'.EOL;
42
- $objPHPExcel = new PHPExcel();
43
-
44
- // Set document properties
45
- echo date('H:i:s').' Set document properties'.EOL;
46
- $objPHPExcel->getProperties()->setCreator('Maarten Balliauw')
47
- ->setLastModifiedBy('Maarten Balliauw')
48
- ->setTitle('PHPExcel Test Document')
49
- ->setSubject('PHPExcel Test Document')
50
- ->setDescription('Test document for PHPExcel, generated using PHP classes.')
51
- ->setKeywords('office PHPExcel php')
52
- ->setCategory('Test result file');
53
-
54
- // Create the worksheet
55
- echo date('H:i:s').' Add data'.EOL;
56
- $objPHPExcel->setActiveSheetIndex(0);
57
- $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Financial Year')
58
- ->setCellValue('B1', 'Financial Period')
59
- ->setCellValue('C1', 'Country')
60
- ->setCellValue('D1', 'Date')
61
- ->setCellValue('E1', 'Sales Value')
62
- ->setCellValue('F1', 'Expenditure')
63
- ;
64
- $startYear = $endYear = $currentYear = date('Y');
65
- $startYear--;
66
- $endYear++;
67
-
68
- $years = range($startYear,$endYear);
69
- $periods = range(1,12);
70
- $countries = array( 'United States', 'UK', 'France', 'Germany',
71
- 'Italy', 'Spain', 'Portugal', 'Japan'
72
- );
73
-
74
- $row = 2;
75
- foreach($years as $year) {
76
- foreach($periods as $period) {
77
- foreach($countries as $country) {
78
- $endDays = date('t',mktime(0,0,0,$period,1,$year));
79
- for($i = 1; $i <= $endDays; ++$i) {
80
- $eDate = PHPExcel_Shared_Date::FormattedPHPToExcel(
81
- $year,
82
- $period,
83
- $i
84
- );
85
- $value = rand(500,1000) * (1 + rand(-0.25,+0.25));
86
- $salesValue = $invoiceValue = NULL;
87
- $incomeOrExpenditure = rand(-1,1);
88
- if ($incomeOrExpenditure == -1) {
89
- $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25));
90
- $income = NULL;
91
- } elseif ($incomeOrExpenditure == 1) {
92
- $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25));
93
- $income = rand(500,1000) * (1 + rand(-0.25,+0.25));;
94
- } else {
95
- $expenditure = NULL;
96
- $income = rand(500,1000) * (1 + rand(-0.25,+0.25));;
97
- }
98
- $dataArray = array( $year,
99
- $period,
100
- $country,
101
- $eDate,
102
- $income,
103
- $expenditure,
104
- );
105
- $objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A'.$row++);
106
- }
107
- }
108
- }
109
- }
110
- $row--;
111
-
112
-
113
- // Set styling
114
- echo date('H:i:s').' Set styling'.EOL;
115
- $objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true);
116
- $objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(TRUE);
117
- $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12.5);
118
- $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10.5);
119
- $objPHPExcel->getActiveSheet()->getStyle('D2:D'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
120
- $objPHPExcel->getActiveSheet()->getStyle('E2:F'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);
121
- $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(14);
122
- $objPHPExcel->getActiveSheet()->freezePane('A2');
123
-
124
-
125
-
126
- // Set autofilter range
127
- echo date('H:i:s').' Set autofilter range'.EOL;
128
- // Always include the complete filter range!
129
- // Excel does support setting only the caption
130
- // row, but that's not a best practise...
131
- $objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension());
132
-
133
- // Set active filters
134
- $autoFilter = $objPHPExcel->getActiveSheet()->getAutoFilter();
135
- echo date('H:i:s').' Set active filters'.EOL;
136
- // Filter the Country column on a filter value of countries beginning with the letter U (or Japan)
137
- // We use * as a wildcard, so specify as U* and using a wildcard requires customFilter
138
- $autoFilter->getColumn('C')
139
- ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER)
140
- ->createRule()
141
- ->setRule(
142
- PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
143
- 'u*'
144
- )
145
- ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER);
146
- $autoFilter->getColumn('C')
147
- ->createRule()
148
- ->setRule(
149
- PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
150
- 'japan'
151
- )
152
- ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER);
153
- // Filter the Date column on a filter value of the first day of every period of the current year
154
- // We us a dateGroup ruletype for this, although it is still a standard filter
155
- foreach($periods as $period) {
156
- $endDate = date('t',mktime(0,0,0,$period,1,$currentYear));
157
-
158
- $autoFilter->getColumn('D')
159
- ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER)
160
- ->createRule()
161
- ->setRule(
162
- PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
163
- array(
164
- 'year' => $currentYear,
165
- 'month' => $period,
166
- 'day' => $endDate
167
- )
168
- )
169
- ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP);
170
- }
171
- // Display only sales values that are blank
172
- // Standard filter, operator equals, and value of NULL
173
- $autoFilter->getColumn('E')
174
- ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER)
175
- ->createRule()
176
- ->setRule(
177
- PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
178
- ''
179
- );
180
-
181
-
182
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
183
- $objPHPExcel->setActiveSheetIndex(0);
184
-
185
-
186
- // Save Excel 2007 file
187
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
188
- $callStartTime = microtime(true);
189
-
190
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
191
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
192
- $callEndTime = microtime(true);
193
- $callTime = $callEndTime - $callStartTime;
194
-
195
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
196
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
197
- // Echo memory usage
198
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
199
-
200
-
201
- // Save Excel 95 file
202
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
203
- $callStartTime = microtime(true);
204
-
205
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
206
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
207
- $callEndTime = microtime(true);
208
- $callTime = $callEndTime - $callStartTime;
209
-
210
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
211
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
212
- // Echo memory usage
213
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
214
-
215
-
216
- // Echo memory peak usage
217
- echo date('H:i:s').' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024).' MB'.EOL;
218
-
219
- // Echo done
220
- echo date('H:i:s').' Done writing files'.EOL;
221
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/10autofilter-selection-2.php DELETED
@@ -1,213 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- /** Include PHPExcel */
37
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
38
-
39
-
40
- // Create new PHPExcel object
41
- echo date('H:i:s').' Create new PHPExcel object'.EOL;
42
- $objPHPExcel = new PHPExcel();
43
-
44
- // Set document properties
45
- echo date('H:i:s').' Set document properties'.EOL;
46
- $objPHPExcel->getProperties()->setCreator('Maarten Balliauw')
47
- ->setLastModifiedBy('Maarten Balliauw')
48
- ->setTitle('PHPExcel Test Document')
49
- ->setSubject('PHPExcel Test Document')
50
- ->setDescription('Test document for PHPExcel, generated using PHP classes.')
51
- ->setKeywords('office PHPExcel php')
52
- ->setCategory('Test result file');
53
-
54
- // Create the worksheet
55
- echo date('H:i:s').' Add data'.EOL;
56
- $objPHPExcel->setActiveSheetIndex(0);
57
- $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Financial Year')
58
- ->setCellValue('B1', 'Financial Period')
59
- ->setCellValue('C1', 'Country')
60
- ->setCellValue('D1', 'Date')
61
- ->setCellValue('E1', 'Sales Value')
62
- ->setCellValue('F1', 'Expenditure')
63
- ;
64
- $startYear = $endYear = $currentYear = date('Y');
65
- $startYear--;
66
- $endYear++;
67
-
68
- $years = range($startYear,$endYear);
69
- $periods = range(1,12);
70
- $countries = array( 'United States', 'UK', 'France', 'Germany',
71
- 'Italy', 'Spain', 'Portugal', 'Japan'
72
- );
73
-
74
- $row = 2;
75
- foreach($years as $year) {
76
- foreach($periods as $period) {
77
- foreach($countries as $country) {
78
- $endDays = date('t',mktime(0,0,0,$period,1,$year));
79
- for($i = 1; $i <= $endDays; ++$i) {
80
- $eDate = PHPExcel_Shared_Date::FormattedPHPToExcel(
81
- $year,
82
- $period,
83
- $i
84
- );
85
- $value = rand(500,1000) * (1 + rand(-0.25,+0.25));
86
- $salesValue = $invoiceValue = NULL;
87
- $incomeOrExpenditure = rand(-1,1);
88
- if ($incomeOrExpenditure == -1) {
89
- $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25));
90
- $income = NULL;
91
- } elseif ($incomeOrExpenditure == 1) {
92
- $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25));
93
- $income = rand(500,1000) * (1 + rand(-0.25,+0.25));;
94
- } else {
95
- $expenditure = NULL;
96
- $income = rand(500,1000) * (1 + rand(-0.25,+0.25));;
97
- }
98
- $dataArray = array( $year,
99
- $period,
100
- $country,
101
- $eDate,
102
- $income,
103
- $expenditure,
104
- );
105
- $objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A'.$row++);
106
- }
107
- }
108
- }
109
- }
110
- $row--;
111
-
112
-
113
- // Set styling
114
- echo date('H:i:s').' Set styling'.EOL;
115
- $objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true);
116
- $objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(TRUE);
117
- $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12.5);
118
- $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10.5);
119
- $objPHPExcel->getActiveSheet()->getStyle('D2:D'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
120
- $objPHPExcel->getActiveSheet()->getStyle('E2:F'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);
121
- $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(14);
122
- $objPHPExcel->getActiveSheet()->freezePane('A2');
123
-
124
-
125
-
126
- // Set autofilter range
127
- echo date('H:i:s').' Set autofilter range'.EOL;
128
- // Always include the complete filter range!
129
- // Excel does support setting only the caption
130
- // row, but that's not a best practise...
131
- $objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension());
132
-
133
- // Set active filters
134
- $autoFilter = $objPHPExcel->getActiveSheet()->getAutoFilter();
135
- echo date('H:i:s').' Set active filters'.EOL;
136
- // Filter the Country column on a filter value of Germany
137
- // As it's just a simple value filter, we can use FILTERTYPE_FILTER
138
- $autoFilter->getColumn('C')
139
- ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER)
140
- ->createRule()
141
- ->setRule(
142
- PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
143
- 'Germany'
144
- );
145
- // Filter the Date column on a filter value of the year to date
146
- $autoFilter->getColumn('D')
147
- ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER)
148
- ->createRule()
149
- ->setRule(
150
- PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
151
- NULL,
152
- PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE
153
- )
154
- ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER);
155
- // Display only sales values that are between 400 and 600
156
- $autoFilter->getColumn('E')
157
- ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER)
158
- ->createRule()
159
- ->setRule(
160
- PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL,
161
- 400
162
- )
163
- ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER);
164
- $autoFilter->getColumn('E')
165
- ->setJoin(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_AND)
166
- ->createRule()
167
- ->setRule(
168
- PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL,
169
- 600
170
- )
171
- ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER);
172
-
173
-
174
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
175
- $objPHPExcel->setActiveSheetIndex(0);
176
-
177
-
178
- // Save Excel 2007 file
179
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
180
- $callStartTime = microtime(true);
181
-
182
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
183
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
184
- $callEndTime = microtime(true);
185
- $callTime = $callEndTime - $callStartTime;
186
-
187
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
188
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
189
- // Echo memory usage
190
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
191
-
192
-
193
- // Save Excel 95 file
194
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
195
- $callStartTime = microtime(true);
196
-
197
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
198
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
199
- $callEndTime = microtime(true);
200
- $callTime = $callEndTime - $callStartTime;
201
-
202
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
203
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
204
- // Echo memory usage
205
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
206
-
207
-
208
- // Echo memory peak usage
209
- echo date('H:i:s').' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024).' MB'.EOL;
210
-
211
- // Echo done
212
- echo date('H:i:s').' Done writing files'.EOL;
213
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/10autofilter-selection-display.php DELETED
@@ -1,198 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- /** Include PHPExcel */
37
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
38
-
39
-
40
- // Create new PHPExcel object
41
- echo date('H:i:s').' Create new PHPExcel object'.EOL;
42
- $objPHPExcel = new PHPExcel();
43
-
44
- // Set document properties
45
- echo date('H:i:s').' Set document properties'.EOL;
46
- $objPHPExcel->getProperties()->setCreator('Maarten Balliauw')
47
- ->setLastModifiedBy('Maarten Balliauw')
48
- ->setTitle('PHPExcel Test Document')
49
- ->setSubject('PHPExcel Test Document')
50
- ->setDescription('Test document for PHPExcel, generated using PHP classes.')
51
- ->setKeywords('office PHPExcel php')
52
- ->setCategory('Test result file');
53
-
54
- // Create the worksheet
55
- echo date('H:i:s').' Add data'.EOL;
56
- $objPHPExcel->setActiveSheetIndex(0);
57
- $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Financial Year')
58
- ->setCellValue('B1', 'Financial Period')
59
- ->setCellValue('C1', 'Country')
60
- ->setCellValue('D1', 'Date')
61
- ->setCellValue('E1', 'Sales Value')
62
- ->setCellValue('F1', 'Expenditure')
63
- ;
64
- $startYear = $endYear = $currentYear = date('Y');
65
- $startYear--;
66
- $endYear++;
67
-
68
- $years = range($startYear,$endYear);
69
- $periods = range(1,12);
70
- $countries = array( 'United States', 'UK', 'France', 'Germany',
71
- 'Italy', 'Spain', 'Portugal', 'Japan'
72
- );
73
-
74
- $row = 2;
75
- foreach($years as $year) {
76
- foreach($periods as $period) {
77
- foreach($countries as $country) {
78
- $endDays = date('t',mktime(0,0,0,$period,1,$year));
79
- for($i = 1; $i <= $endDays; ++$i) {
80
- $eDate = PHPExcel_Shared_Date::FormattedPHPToExcel(
81
- $year,
82
- $period,
83
- $i
84
- );
85
- $value = rand(500,1000) * (1 + rand(-0.25,+0.25));
86
- $salesValue = $invoiceValue = NULL;
87
- $incomeOrExpenditure = rand(-1,1);
88
- if ($incomeOrExpenditure == -1) {
89
- $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25));
90
- $income = NULL;
91
- } elseif ($incomeOrExpenditure == 1) {
92
- $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25));
93
- $income = rand(500,1000) * (1 + rand(-0.25,+0.25));;
94
- } else {
95
- $expenditure = NULL;
96
- $income = rand(500,1000) * (1 + rand(-0.25,+0.25));;
97
- }
98
- $dataArray = array( $year,
99
- $period,
100
- $country,
101
- $eDate,
102
- $income,
103
- $expenditure,
104
- );
105
- $objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A'.$row++);
106
- }
107
- }
108
- }
109
- }
110
- $row--;
111
-
112
-
113
- // Set styling
114
- echo date('H:i:s').' Set styling'.EOL;
115
- $objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true);
116
- $objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(TRUE);
117
- $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12.5);
118
- $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10.5);
119
- $objPHPExcel->getActiveSheet()->getStyle('D2:D'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
120
- $objPHPExcel->getActiveSheet()->getStyle('E2:F'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);
121
- $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(14);
122
- $objPHPExcel->getActiveSheet()->freezePane('A2');
123
-
124
-
125
-
126
- // Set autofilter range
127
- echo date('H:i:s').' Set autofilter range'.EOL;
128
- // Always include the complete filter range!
129
- // Excel does support setting only the caption
130
- // row, but that's not a best practise...
131
- $objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension());
132
-
133
- // Set active filters
134
- $autoFilter = $objPHPExcel->getActiveSheet()->getAutoFilter();
135
- echo date('H:i:s').' Set active filters'.EOL;
136
- // Filter the Country column on a filter value of countries beginning with the letter U (or Japan)
137
- // We use * as a wildcard, so specify as U* and using a wildcard requires customFilter
138
- $autoFilter->getColumn('C')
139
- ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER)
140
- ->createRule()
141
- ->setRule(
142
- PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
143
- 'u*'
144
- )
145
- ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER);
146
- $autoFilter->getColumn('C')
147
- ->createRule()
148
- ->setRule(
149
- PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
150
- 'japan'
151
- )
152
- ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER);
153
- // Filter the Date column on a filter value of the first day of every period of the current year
154
- // We us a dateGroup ruletype for this, although it is still a standard filter
155
- foreach($periods as $period) {
156
- $endDate = date('t',mktime(0,0,0,$period,1,$currentYear));
157
-
158
- $autoFilter->getColumn('D')
159
- ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER)
160
- ->createRule()
161
- ->setRule(
162
- PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
163
- array(
164
- 'year' => $currentYear,
165
- 'month' => $period,
166
- 'day' => $endDate
167
- )
168
- )
169
- ->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP);
170
- }
171
- // Display only sales values that are blank
172
- // Standard filter, operator equals, and value of NULL
173
- $autoFilter->getColumn('E')
174
- ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER)
175
- ->createRule()
176
- ->setRule(
177
- PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
178
- ''
179
- );
180
-
181
- // Execute filtering
182
- echo date('H:i:s').' Execute filtering'.EOL;
183
- $autoFilter->showHideRows();
184
-
185
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
186
- $objPHPExcel->setActiveSheetIndex(0);
187
-
188
-
189
- // Display Results of filtering
190
- echo date('H:i:s').' Display filtered rows'.EOL;
191
- foreach ($objPHPExcel->getActiveSheet()->getRowIterator() as $row) {
192
- if ($objPHPExcel->getActiveSheet()->getRowDimension($row->getRowIndex())->getVisible()) {
193
- echo ' Row number - ' , $row->getRowIndex() , ' ';
194
- echo $objPHPExcel->getActiveSheet()->getCell('C'.$row->getRowIndex())->getValue(), ' ';
195
- echo $objPHPExcel->getActiveSheet()->getCell('D'.$row->getRowIndex())->getFormattedValue(), ' ';
196
- echo EOL;
197
- }
198
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/10autofilter.php DELETED
@@ -1,171 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
- // Create new PHPExcel object
41
- echo date('H:i:s').' Create new PHPExcel object'.EOL;
42
- $objPHPExcel = new PHPExcel();
43
-
44
- // Set document properties
45
- echo date('H:i:s').' Set document properties'.EOL;
46
- $objPHPExcel->getProperties()->setCreator('Maarten Balliauw')
47
- ->setLastModifiedBy('Maarten Balliauw')
48
- ->setTitle('PHPExcel Test Document')
49
- ->setSubject('PHPExcel Test Document')
50
- ->setDescription('Test document for PHPExcel, generated using PHP classes.')
51
- ->setKeywords('office PHPExcel php')
52
- ->setCategory('Test result file');
53
-
54
- // Create the worksheet
55
- echo date('H:i:s').' Add data'.EOL;
56
- $objPHPExcel->setActiveSheetIndex(0);
57
- $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Year')
58
- ->setCellValue('B1', 'Quarter')
59
- ->setCellValue('C1', 'Country')
60
- ->setCellValue('D1', 'Sales');
61
-
62
- $dataArray = array(array('2010', 'Q1', 'United States', 790),
63
- array('2010', 'Q2', 'United States', 730),
64
- array('2010', 'Q3', 'United States', 860),
65
- array('2010', 'Q4', 'United States', 850),
66
- array('2011', 'Q1', 'United States', 800),
67
- array('2011', 'Q2', 'United States', 700),
68
- array('2011', 'Q3', 'United States', 900),
69
- array('2011', 'Q4', 'United States', 950),
70
- array('2010', 'Q1', 'Belgium', 380),
71
- array('2010', 'Q2', 'Belgium', 390),
72
- array('2010', 'Q3', 'Belgium', 420),
73
- array('2010', 'Q4', 'Belgium', 460),
74
- array('2011', 'Q1', 'Belgium', 400),
75
- array('2011', 'Q2', 'Belgium', 350),
76
- array('2011', 'Q3', 'Belgium', 450),
77
- array('2011', 'Q4', 'Belgium', 500),
78
- array('2010', 'Q1', 'UK', 690),
79
- array('2010', 'Q2', 'UK', 610),
80
- array('2010', 'Q3', 'UK', 620),
81
- array('2010', 'Q4', 'UK', 600),
82
- array('2011', 'Q1', 'UK', 720),
83
- array('2011', 'Q2', 'UK', 650),
84
- array('2011', 'Q3', 'UK', 580),
85
- array('2011', 'Q4', 'UK', 510),
86
- array('2010', 'Q1', 'France', 510),
87
- array('2010', 'Q2', 'France', 490),
88
- array('2010', 'Q3', 'France', 460),
89
- array('2010', 'Q4', 'France', 590),
90
- array('2011', 'Q1', 'France', 620),
91
- array('2011', 'Q2', 'France', 650),
92
- array('2011', 'Q3', 'France', 415),
93
- array('2011', 'Q4', 'France', 570),
94
- array('2010', 'Q1', 'Germany', 720),
95
- array('2010', 'Q2', 'Germany', 680),
96
- array('2010', 'Q3', 'Germany', 640),
97
- array('2010', 'Q4', 'Germany', 660),
98
- array('2011', 'Q1', 'Germany', 680),
99
- array('2011', 'Q2', 'Germany', 620),
100
- array('2011', 'Q3', 'Germany', 710),
101
- array('2011', 'Q4', 'Germany', 690),
102
- array('2010', 'Q1', 'Spain', 510),
103
- array('2010', 'Q2', 'Spain', 490),
104
- array('2010', 'Q3', 'Spain', 470),
105
- array('2010', 'Q4', 'Spain', 420),
106
- array('2011', 'Q1', 'Spain', 460),
107
- array('2011', 'Q2', 'Spain', 390),
108
- array('2011', 'Q3', 'Spain', 430),
109
- array('2011', 'Q4', 'Spain', 415),
110
- array('2010', 'Q1', 'Italy', 440),
111
- array('2010', 'Q2', 'Italy', 410),
112
- array('2010', 'Q3', 'Italy', 420),
113
- array('2010', 'Q4', 'Italy', 450),
114
- array('2011', 'Q1', 'Italy', 430),
115
- array('2011', 'Q2', 'Italy', 370),
116
- array('2011', 'Q3', 'Italy', 350),
117
- array('2011', 'Q4', 'Italy', 335),
118
- );
119
- $objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A2');
120
-
121
- // Set title row bold
122
- echo date('H:i:s').' Set title row bold'.EOL;
123
- $objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFont()->setBold(true);
124
-
125
- // Set autofilter
126
- echo date('H:i:s').' Set autofilter'.EOL;
127
- // Always include the complete filter range!
128
- // Excel does support setting only the caption
129
- // row, but that's not a best practise...
130
- $objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension());
131
-
132
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
133
- $objPHPExcel->setActiveSheetIndex(0);
134
-
135
-
136
- // Save Excel 2007 file
137
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
138
- $callStartTime = microtime(true);
139
-
140
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
141
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
142
- $callEndTime = microtime(true);
143
- $callTime = $callEndTime - $callStartTime;
144
-
145
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
146
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
147
- // Echo memory usage
148
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
149
-
150
-
151
- // Save Excel 95 file
152
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
153
- $callStartTime = microtime(true);
154
-
155
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
156
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
157
- $callEndTime = microtime(true);
158
- $callTime = $callEndTime - $callStartTime;
159
-
160
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
161
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
162
- // Echo memory usage
163
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
164
-
165
-
166
- // Echo memory peak usage
167
- echo date('H:i:s').' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024).' MB'.EOL;
168
-
169
- // Echo done
170
- echo date('H:i:s').' Done writing files'.EOL;
171
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/11documentsecurity-xls.php DELETED
@@ -1,109 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- // Create new PHPExcel object
42
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
43
- $objPHPExcel = new PHPExcel();
44
-
45
- // Set document properties
46
- echo date('H:i:s') , " Set document properties" , EOL;
47
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
48
- ->setLastModifiedBy("Maarten Balliauw")
49
- ->setTitle("Office 2007 XLSX Test Document")
50
- ->setSubject("Office 2007 XLSX Test Document")
51
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
52
- ->setKeywords("office 2007 openxml php")
53
- ->setCategory("Test result file");
54
-
55
-
56
- // Add some data
57
- echo date('H:i:s') , " Add some data" , EOL;
58
- $objPHPExcel->setActiveSheetIndex(0);
59
- $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello');
60
- $objPHPExcel->getActiveSheet()->setCellValue('B2', 'world!');
61
- $objPHPExcel->getActiveSheet()->setCellValue('C1', 'Hello');
62
- $objPHPExcel->getActiveSheet()->setCellValue('D2', 'world!');
63
-
64
- // Rename worksheet
65
- echo date('H:i:s') , " Rename worksheet" , EOL;
66
- $objPHPExcel->getActiveSheet()->setTitle('Simple');
67
-
68
-
69
- // Set document security
70
- echo date('H:i:s') , " Set document security" , EOL;
71
- $objPHPExcel->getSecurity()->setLockWindows(true);
72
- $objPHPExcel->getSecurity()->setLockStructure(true);
73
- $objPHPExcel->getSecurity()->setWorkbookPassword("PHPExcel");
74
-
75
-
76
- // Set sheet security
77
- echo date('H:i:s') , " Set sheet security" , EOL;
78
- $objPHPExcel->getActiveSheet()->getProtection()->setPassword('PHPExcel');
79
- $objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); // This should be enabled in order to enable any of the following!
80
- $objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
81
- $objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true);
82
- $objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);
83
-
84
-
85
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
86
- $objPHPExcel->setActiveSheetIndex(0);
87
-
88
-
89
- // Save Excel 95 file
90
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
91
- $callStartTime = microtime(true);
92
-
93
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
94
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
95
- $callEndTime = microtime(true);
96
- $callTime = $callEndTime - $callStartTime;
97
-
98
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
99
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
100
- // Echo memory usage
101
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
102
-
103
-
104
- // Echo memory peak usage
105
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
106
-
107
- // Echo done
108
- echo date('H:i:s') , " Done writing file" , EOL;
109
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/11documentsecurity.php DELETED
@@ -1,109 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- // Create new PHPExcel object
42
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
43
- $objPHPExcel = new PHPExcel();
44
-
45
- // Set document properties
46
- echo date('H:i:s') , " Set document properties" , EOL;
47
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
48
- ->setLastModifiedBy("Maarten Balliauw")
49
- ->setTitle("Office 2007 XLSX Test Document")
50
- ->setSubject("Office 2007 XLSX Test Document")
51
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
52
- ->setKeywords("office 2007 openxml php")
53
- ->setCategory("Test result file");
54
-
55
-
56
- // Add some data
57
- echo date('H:i:s') , " Add some data" , EOL;
58
- $objPHPExcel->setActiveSheetIndex(0);
59
- $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello');
60
- $objPHPExcel->getActiveSheet()->setCellValue('B2', 'world!');
61
- $objPHPExcel->getActiveSheet()->setCellValue('C1', 'Hello');
62
- $objPHPExcel->getActiveSheet()->setCellValue('D2', 'world!');
63
-
64
- // Rename worksheet
65
- echo date('H:i:s') , " Rename worksheet" , EOL;
66
- $objPHPExcel->getActiveSheet()->setTitle('Simple');
67
-
68
-
69
- // Set document security
70
- echo date('H:i:s') , " Set document security" , EOL;
71
- $objPHPExcel->getSecurity()->setLockWindows(true);
72
- $objPHPExcel->getSecurity()->setLockStructure(true);
73
- $objPHPExcel->getSecurity()->setWorkbookPassword("PHPExcel");
74
-
75
-
76
- // Set sheet security
77
- echo date('H:i:s') , " Set sheet security" , EOL;
78
- $objPHPExcel->getActiveSheet()->getProtection()->setPassword('PHPExcel');
79
- $objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); // This should be enabled in order to enable any of the following!
80
- $objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
81
- $objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true);
82
- $objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);
83
-
84
-
85
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
86
- $objPHPExcel->setActiveSheetIndex(0);
87
-
88
-
89
- // Save Excel 2007 file
90
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
91
- $callStartTime = microtime(true);
92
-
93
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
94
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
95
- $callEndTime = microtime(true);
96
- $callTime = $callEndTime - $callStartTime;
97
-
98
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
99
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
100
- // Echo memory usage
101
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
102
-
103
-
104
- // Echo memory peak usage
105
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
106
-
107
- // Echo done
108
- echo date('H:i:s') , " Done writing file" , EOL;
109
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/12cellProtection.php DELETED
@@ -1,107 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- // Create new PHPExcel object
42
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
43
- $objPHPExcel = new PHPExcel();
44
-
45
- // Set document properties
46
- echo date('H:i:s') , " Set document properties" , EOL;
47
- $objPHPExcel->getProperties()->setCreator("Mark Baker")
48
- ->setLastModifiedBy("Mark Baker")
49
- ->setTitle("Office 2007 XLSX Test Document")
50
- ->setSubject("Office 2007 XLSX Test Document")
51
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
52
- ->setKeywords("office 2007 openxml php")
53
- ->setCategory("Test result file");
54
-
55
-
56
- // Add some data
57
- echo date('H:i:s') , " Add some data" , EOL;
58
- $objPHPExcel->setActiveSheetIndex(0);
59
- $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Crouching');
60
- $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Tiger');
61
- $objPHPExcel->getActiveSheet()->setCellValue('A2', 'Hidden');
62
- $objPHPExcel->getActiveSheet()->setCellValue('B2', 'Dragon');
63
-
64
- // Rename worksheet
65
- echo date('H:i:s') , " Rename worksheet" , EOL;
66
- $objPHPExcel->getActiveSheet()->setTitle('Simple');
67
-
68
-
69
- // Set document security
70
- echo date('H:i:s') , " Set cell protection" , EOL;
71
-
72
-
73
- // Set sheet security
74
- echo date('H:i:s') , " Set sheet security" , EOL;
75
- $objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
76
- $objPHPExcel->getActiveSheet()
77
- ->getStyle('A2:B2')
78
- ->getProtection()->setLocked(
79
- PHPExcel_Style_Protection::PROTECTION_UNPROTECTED
80
- );
81
-
82
-
83
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
84
- $objPHPExcel->setActiveSheetIndex(0);
85
-
86
-
87
- // Save Excel 2007 file
88
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
89
- $callStartTime = microtime(true);
90
-
91
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
92
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
93
- $callEndTime = microtime(true);
94
- $callTime = $callEndTime - $callStartTime;
95
-
96
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
97
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
98
- // Echo memory usage
99
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
100
-
101
-
102
- // Echo memory peak usage
103
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
104
-
105
- // Echo done
106
- echo date('H:i:s') , " Done writing file" , EOL;
107
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/13calculation.php DELETED
@@ -1,235 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- date_default_timezone_set('Europe/London');
37
- mt_srand(1234567890);
38
-
39
- /** Include PHPExcel */
40
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
41
-
42
-
43
- // List functions
44
- echo date('H:i:s') , " List implemented functions" , EOL;
45
- $objCalc = PHPExcel_Calculation::getInstance();
46
- print_r($objCalc->listFunctionNames());
47
-
48
- // Create new PHPExcel object
49
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
50
- $objPHPExcel = new PHPExcel();
51
-
52
- // Add some data, we will use some formulas here
53
- echo date('H:i:s') , " Add some data and formulas" , EOL;
54
- $objPHPExcel->getActiveSheet()->setCellValue('A14', 'Count:')
55
- ->setCellValue('A15', 'Sum:')
56
- ->setCellValue('A16', 'Max:')
57
- ->setCellValue('A17', 'Min:')
58
- ->setCellValue('A18', 'Average:')
59
- ->setCellValue('A19', 'Median:')
60
- ->setCellValue('A20', 'Mode:');
61
-
62
- $objPHPExcel->getActiveSheet()->setCellValue('A22', 'CountA:')
63
- ->setCellValue('A23', 'MaxA:')
64
- ->setCellValue('A24', 'MinA:');
65
-
66
- $objPHPExcel->getActiveSheet()->setCellValue('A26', 'StDev:')
67
- ->setCellValue('A27', 'StDevA:')
68
- ->setCellValue('A28', 'StDevP:')
69
- ->setCellValue('A29', 'StDevPA:');
70
-
71
- $objPHPExcel->getActiveSheet()->setCellValue('A31', 'DevSq:')
72
- ->setCellValue('A32', 'Var:')
73
- ->setCellValue('A33', 'VarA:')
74
- ->setCellValue('A34', 'VarP:')
75
- ->setCellValue('A35', 'VarPA:');
76
-
77
- $objPHPExcel->getActiveSheet()->setCellValue('A37', 'Date:');
78
-
79
-
80
- $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Range 1')
81
- ->setCellValue('B2', 2)
82
- ->setCellValue('B3', 8)
83
- ->setCellValue('B4', 10)
84
- ->setCellValue('B5', True)
85
- ->setCellValue('B6', False)
86
- ->setCellValue('B7', 'Text String')
87
- ->setCellValue('B9', '22')
88
- ->setCellValue('B10', 4)
89
- ->setCellValue('B11', 6)
90
- ->setCellValue('B12', 12);
91
-
92
- $objPHPExcel->getActiveSheet()->setCellValue('B14', '=COUNT(B2:B12)')
93
- ->setCellValue('B15', '=SUM(B2:B12)')
94
- ->setCellValue('B16', '=MAX(B2:B12)')
95
- ->setCellValue('B17', '=MIN(B2:B12)')
96
- ->setCellValue('B18', '=AVERAGE(B2:B12)')
97
- ->setCellValue('B19', '=MEDIAN(B2:B12)')
98
- ->setCellValue('B20', '=MODE(B2:B12)');
99
-
100
- $objPHPExcel->getActiveSheet()->setCellValue('B22', '=COUNTA(B2:B12)')
101
- ->setCellValue('B23', '=MAXA(B2:B12)')
102
- ->setCellValue('B24', '=MINA(B2:B12)');
103
-
104
- $objPHPExcel->getActiveSheet()->setCellValue('B26', '=STDEV(B2:B12)')
105
- ->setCellValue('B27', '=STDEVA(B2:B12)')
106
- ->setCellValue('B28', '=STDEVP(B2:B12)')
107
- ->setCellValue('B29', '=STDEVPA(B2:B12)');
108
-
109
- $objPHPExcel->getActiveSheet()->setCellValue('B31', '=DEVSQ(B2:B12)')
110
- ->setCellValue('B32', '=VAR(B2:B12)')
111
- ->setCellValue('B33', '=VARA(B2:B12)')
112
- ->setCellValue('B34', '=VARP(B2:B12)')
113
- ->setCellValue('B35', '=VARPA(B2:B12)');
114
-
115
- $objPHPExcel->getActiveSheet()->setCellValue('B37', '=DATE(2007, 12, 21)')
116
- ->setCellValue('B38', '=DATEDIF( DATE(2007, 12, 21), DATE(2007, 12, 22), "D" )')
117
- ->setCellValue('B39', '=DATEVALUE("01-Feb-2006 10:06 AM")')
118
- ->setCellValue('B40', '=DAY( DATE(2006, 1, 2) )')
119
- ->setCellValue('B41', '=DAYS360( DATE(2002, 2, 3), DATE(2005, 5, 31) )');
120
-
121
-
122
- $objPHPExcel->getActiveSheet()->setCellValue('C1', 'Range 2')
123
- ->setCellValue('C2', 1)
124
- ->setCellValue('C3', 2)
125
- ->setCellValue('C4', 2)
126
- ->setCellValue('C5', 3)
127
- ->setCellValue('C6', 3)
128
- ->setCellValue('C7', 3)
129
- ->setCellValue('C8', '0')
130
- ->setCellValue('C9', 4)
131
- ->setCellValue('C10', 4)
132
- ->setCellValue('C11', 4)
133
- ->setCellValue('C12', 4);
134
-
135
- $objPHPExcel->getActiveSheet()->setCellValue('C14', '=COUNT(C2:C12)')
136
- ->setCellValue('C15', '=SUM(C2:C12)')
137
- ->setCellValue('C16', '=MAX(C2:C12)')
138
- ->setCellValue('C17', '=MIN(C2:C12)')
139
- ->setCellValue('C18', '=AVERAGE(C2:C12)')
140
- ->setCellValue('C19', '=MEDIAN(C2:C12)')
141
- ->setCellValue('C20', '=MODE(C2:C12)');
142
-
143
- $objPHPExcel->getActiveSheet()->setCellValue('C22', '=COUNTA(C2:C12)')
144
- ->setCellValue('C23', '=MAXA(C2:C12)')
145
- ->setCellValue('C24', '=MINA(C2:C12)');
146
-
147
- $objPHPExcel->getActiveSheet()->setCellValue('C26', '=STDEV(C2:C12)')
148
- ->setCellValue('C27', '=STDEVA(C2:C12)')
149
- ->setCellValue('C28', '=STDEVP(C2:C12)')
150
- ->setCellValue('C29', '=STDEVPA(C2:C12)');
151
-
152
- $objPHPExcel->getActiveSheet()->setCellValue('C31', '=DEVSQ(C2:C12)')
153
- ->setCellValue('C32', '=VAR(C2:C12)')
154
- ->setCellValue('C33', '=VARA(C2:C12)')
155
- ->setCellValue('C34', '=VARP(C2:C12)')
156
- ->setCellValue('C35', '=VARPA(C2:C12)');
157
-
158
-
159
- $objPHPExcel->getActiveSheet()->setCellValue('D1', 'Range 3')
160
- ->setCellValue('D2', 2)
161
- ->setCellValue('D3', 3)
162
- ->setCellValue('D4', 4);
163
-
164
- $objPHPExcel->getActiveSheet()->setCellValue('D14', '=((D2 * D3) + D4) & " should be 10"');
165
-
166
- $objPHPExcel->getActiveSheet()->setCellValue('E12', 'Other functions')
167
- ->setCellValue('E14', '=PI()')
168
- ->setCellValue('E15', '=RAND()')
169
- ->setCellValue('E16', '=RANDBETWEEN(5, 10)');
170
-
171
- $objPHPExcel->getActiveSheet()->setCellValue('E17', 'Count of both ranges:')
172
- ->setCellValue('F17', '=COUNT(B2:C12)');
173
-
174
- $objPHPExcel->getActiveSheet()->setCellValue('E18', 'Total of both ranges:')
175
- ->setCellValue('F18', '=SUM(B2:C12)');
176
-
177
- $objPHPExcel->getActiveSheet()->setCellValue('E19', 'Maximum of both ranges:')
178
- ->setCellValue('F19', '=MAX(B2:C12)');
179
-
180
- $objPHPExcel->getActiveSheet()->setCellValue('E20', 'Minimum of both ranges:')
181
- ->setCellValue('F20', '=MIN(B2:C12)');
182
-
183
- $objPHPExcel->getActiveSheet()->setCellValue('E21', 'Average of both ranges:')
184
- ->setCellValue('F21', '=AVERAGE(B2:C12)');
185
-
186
- $objPHPExcel->getActiveSheet()->setCellValue('E22', 'Median of both ranges:')
187
- ->setCellValue('F22', '=MEDIAN(B2:C12)');
188
-
189
- $objPHPExcel->getActiveSheet()->setCellValue('E23', 'Mode of both ranges:')
190
- ->setCellValue('F23', '=MODE(B2:C12)');
191
-
192
-
193
- // Calculated data
194
- echo date('H:i:s') , " Calculated data" , EOL;
195
- for ($col = 'B'; $col != 'G'; ++$col) {
196
- for($row = 14; $row <= 41; ++$row) {
197
- if ((!is_null($formula = $objPHPExcel->getActiveSheet()->getCell($col.$row)->getValue())) &&
198
- ($formula[0] == '=')) {
199
- echo 'Value of ' , $col , $row , ' [' , $formula , ']: ' ,
200
- $objPHPExcel->getActiveSheet()->getCell($col.$row)->getCalculatedValue() . EOL;
201
- }
202
- }
203
- }
204
-
205
-
206
- // Save Excel 2007 file
207
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
208
- $callStartTime = microtime(true);
209
-
210
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
211
-
212
- //
213
- // If we set Pre Calculated Formulas to true then PHPExcel will calculate all formulae in the
214
- // workbook before saving. This adds time and memory overhead, and can cause some problems with formulae
215
- // using functions or features (such as array formulae) that aren't yet supported by the calculation engine
216
- // If the value is false (the default) for the Excel2007 Writer, then MS Excel (or the application used to
217
- // open the file) will need to recalculate values itself to guarantee that the correct results are available.
218
- //
219
- //$objWriter->setPreCalculateFormulas(true);
220
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
221
- $callEndTime = microtime(true);
222
- $callTime = $callEndTime - $callStartTime;
223
-
224
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
225
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
226
- // Echo memory usage
227
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
228
-
229
-
230
- // Echo memory peak usage
231
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
232
-
233
- // Echo done
234
- echo date('H:i:s') , " Done writing file" , EOL;
235
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/14excel5.php DELETED
@@ -1,63 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- include "05featuredemo.inc.php";
38
-
39
- /** PHPExcel_IOFactory */
40
- require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
41
-
42
-
43
- // Save Excel 95 file
44
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
45
- $callStartTime = microtime(true);
46
-
47
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
48
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
49
- $callEndTime = microtime(true);
50
- $callTime = $callEndTime - $callStartTime;
51
-
52
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
53
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
54
- // Echo memory usage
55
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
56
-
57
-
58
- // Echo memory peak usage
59
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
60
-
61
- // Echo done
62
- echo date('H:i:s') , " Done writing file" , EOL;
63
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/15datavalidation-xls.php DELETED
@@ -1,142 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- date_default_timezone_set('Europe/London');
37
-
38
- /** Include PHPExcel */
39
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
40
-
41
-
42
- // Create new PHPExcel object
43
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
44
- $objPHPExcel = new PHPExcel();
45
-
46
-
47
- // Set document properties
48
- echo date('H:i:s') , " Set document properties" , EOL;
49
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
50
- ->setLastModifiedBy("Maarten Balliauw")
51
- ->setTitle("Office 2007 XLSX Test Document")
52
- ->setSubject("Office 2007 XLSX Test Document")
53
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
54
- ->setKeywords("office 2007 openxml php")
55
- ->setCategory("Test result file");
56
-
57
-
58
- // Create a first sheet
59
- echo date('H:i:s') , " Add data" , EOL;
60
- $objPHPExcel->setActiveSheetIndex(0);
61
- $objPHPExcel->getActiveSheet()->setCellValue('A1', "Cell B3 and B5 contain data validation...")
62
- ->setCellValue('A3', "Number:")
63
- ->setCellValue('B3', "10")
64
- ->setCellValue('A5', "List:")
65
- ->setCellValue('B5', "Item A")
66
- ->setCellValue('A7', "List #2:")
67
- ->setCellValue('B7', "Item #2")
68
- ->setCellValue('D2', "Item #1")
69
- ->setCellValue('D3', "Item #2")
70
- ->setCellValue('D4', "Item #3")
71
- ->setCellValue('D5', "Item #4")
72
- ->setCellValue('D6', "Item #5")
73
- ;
74
-
75
-
76
- // Set data validation
77
- echo date('H:i:s') , " Set data validation" , EOL;
78
- $objValidation = $objPHPExcel->getActiveSheet()->getCell('B3')->getDataValidation();
79
- $objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_WHOLE );
80
- $objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_STOP );
81
- $objValidation->setAllowBlank(true);
82
- $objValidation->setShowInputMessage(true);
83
- $objValidation->setShowErrorMessage(true);
84
- $objValidation->setErrorTitle('Input error');
85
- $objValidation->setError('Only numbers between 10 and 20 are allowed!');
86
- $objValidation->setPromptTitle('Allowed input');
87
- $objValidation->setPrompt('Only numbers between 10 and 20 are allowed.');
88
- $objValidation->setFormula1(10);
89
- $objValidation->setFormula2(20);
90
-
91
- $objValidation = $objPHPExcel->getActiveSheet()->getCell('B5')->getDataValidation();
92
- $objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST );
93
- $objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION );
94
- $objValidation->setAllowBlank(false);
95
- $objValidation->setShowInputMessage(true);
96
- $objValidation->setShowErrorMessage(true);
97
- $objValidation->setShowDropDown(true);
98
- $objValidation->setErrorTitle('Input error');
99
- $objValidation->setError('Value is not in list.');
100
- $objValidation->setPromptTitle('Pick from list');
101
- $objValidation->setPrompt('Please pick a value from the drop-down list.');
102
- $objValidation->setFormula1('"Item A,Item B,Item C"'); // Make sure to put the list items between " and " !!!
103
-
104
- $objValidation = $objPHPExcel->getActiveSheet()->getCell('B7')->getDataValidation();
105
- $objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST );
106
- $objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION );
107
- $objValidation->setAllowBlank(false);
108
- $objValidation->setShowInputMessage(true);
109
- $objValidation->setShowErrorMessage(true);
110
- $objValidation->setShowDropDown(true);
111
- $objValidation->setErrorTitle('Input error');
112
- $objValidation->setError('Value is not in list.');
113
- $objValidation->setPromptTitle('Pick from list');
114
- $objValidation->setPrompt('Please pick a value from the drop-down list.');
115
- $objValidation->setFormula1('$D$2:$D$6'); // Make sure NOT to put a range of cells or a formula between " and " !!!
116
-
117
-
118
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
119
- $objPHPExcel->setActiveSheetIndex(0);
120
-
121
-
122
- // Save Excel 95 file
123
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
124
- $callStartTime = microtime(true);
125
-
126
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
127
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
128
- $callEndTime = microtime(true);
129
- $callTime = $callEndTime - $callStartTime;
130
-
131
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
132
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
133
- // Echo memory usage
134
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
135
-
136
-
137
- // Echo memory peak usage
138
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
139
-
140
- // Echo done
141
- echo date('H:i:s') , " Done writing file" , EOL;
142
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/15datavalidation.php DELETED
@@ -1,143 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- date_default_timezone_set('Europe/London');
37
-
38
- /** Include PHPExcel */
39
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
40
-
41
-
42
- // Create new PHPExcel object
43
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
44
- $objPHPExcel = new PHPExcel();
45
-
46
-
47
- // Set document properties
48
- echo date('H:i:s') , " Set document properties" , EOL;
49
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
50
- ->setLastModifiedBy("Maarten Balliauw")
51
- ->setTitle("Office 2007 XLSX Test Document")
52
- ->setSubject("Office 2007 XLSX Test Document")
53
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
54
- ->setKeywords("office 2007 openxml php")
55
- ->setCategory("Test result file");
56
-
57
-
58
- // Create a first sheet
59
- echo date('H:i:s') , " Add data" , EOL;
60
- $objPHPExcel->setActiveSheetIndex(0);
61
- $objPHPExcel->getActiveSheet()->setCellValue('A1', "Cell B3 and B5 contain data validation...")
62
- ->setCellValue('A3', "Number:")
63
- ->setCellValue('B3', "10")
64
- ->setCellValue('A5', "List:")
65
- ->setCellValue('B5', "Item A")
66
- ->setCellValue('A7', "List #2:")
67
- ->setCellValue('B7', "Item #2")
68
- ->setCellValue('D2', "Item #1")
69
- ->setCellValue('D3', "Item #2")
70
- ->setCellValue('D4', "Item #3")
71
- ->setCellValue('D5', "Item #4")
72
- ->setCellValue('D6', "Item #5")
73
- ;
74
-
75
-
76
- // Set data validation
77
- echo date('H:i:s') , " Set data validation" , EOL;
78
- $objValidation = $objPHPExcel->getActiveSheet()->getCell('B3')->getDataValidation();
79
- $objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_WHOLE );
80
- $objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_STOP );
81
- $objValidation->setAllowBlank(true);
82
- $objValidation->setShowInputMessage(true);
83
- $objValidation->setShowErrorMessage(true);
84
- $objValidation->setErrorTitle('Input error');
85
- $objValidation->setError('Only numbers between 10 and 20 are allowed!');
86
- $objValidation->setPromptTitle('Allowed input');
87
- $objValidation->setPrompt('Only numbers between 10 and 20 are allowed.');
88
- $objValidation->setFormula1(10);
89
- $objValidation->setFormula2(20);
90
-
91
- $objValidation = $objPHPExcel->getActiveSheet()->getCell('B5')->getDataValidation();
92
- $objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST );
93
- $objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION );
94
- $objValidation->setAllowBlank(false);
95
- $objValidation->setShowInputMessage(true);
96
- $objValidation->setShowErrorMessage(true);
97
- $objValidation->setShowDropDown(true);
98
- $objValidation->setErrorTitle('Input error');
99
- $objValidation->setError('Value is not in list.');
100
- $objValidation->setPromptTitle('Pick from list');
101
- $objValidation->setPrompt('Please pick a value from the drop-down list.');
102
- $objValidation->setFormula1('"Item A,Item B,Item C"'); // Make sure to put the list items between " and " if your list is simply a comma-separated list of values !!!
103
-
104
-
105
- $objValidation = $objPHPExcel->getActiveSheet()->getCell('B7')->getDataValidation();
106
- $objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST );
107
- $objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION );
108
- $objValidation->setAllowBlank(false);
109
- $objValidation->setShowInputMessage(true);
110
- $objValidation->setShowErrorMessage(true);
111
- $objValidation->setShowDropDown(true);
112
- $objValidation->setErrorTitle('Input error');
113
- $objValidation->setError('Value is not in list.');
114
- $objValidation->setPromptTitle('Pick from list');
115
- $objValidation->setPrompt('Please pick a value from the drop-down list.');
116
- $objValidation->setFormula1('$D$2:$D$6'); // Make sure NOT to put a range of cells or a formula between " and " !!!
117
-
118
-
119
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
120
- $objPHPExcel->setActiveSheetIndex(0);
121
-
122
-
123
- // Save Excel 2007 file
124
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
125
- $callStartTime = microtime(true);
126
-
127
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
128
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
129
- $callEndTime = microtime(true);
130
- $callTime = $callEndTime - $callStartTime;
131
-
132
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
133
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
134
- // Echo memory usage
135
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
136
-
137
-
138
- // Echo memory peak usage
139
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
140
-
141
- // Echo done
142
- echo date('H:i:s') , " Done writing file" , EOL;
143
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/16csv.php DELETED
@@ -1,107 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- date_default_timezone_set('Europe/London');
37
-
38
- include "05featuredemo.inc.php";
39
-
40
- /** PHPExcel_IOFactory */
41
- require_once '../Classes/PHPExcel/IOFactory.php';
42
-
43
-
44
- echo date('H:i:s') , " Write to CSV format" , EOL;
45
- $callStartTime = microtime(true);
46
-
47
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV')->setDelimiter(',')
48
- ->setEnclosure('"')
49
- ->setLineEnding("\r\n")
50
- ->setSheetIndex(0)
51
- ->save(str_replace('.php', '.csv', __FILE__));
52
- $callEndTime = microtime(true);
53
- $callTime = $callEndTime - $callStartTime;
54
- echo date('H:i:s') , " File written to " , str_replace('.php', '.csv', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
55
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
56
- // Echo memory usage
57
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
58
-
59
-
60
- echo date('H:i:s') , " Read from CSV format" , EOL;
61
- $callStartTime = microtime(true);
62
- $objReader = PHPExcel_IOFactory::createReader('CSV')->setDelimiter(',')
63
- ->setEnclosure('"')
64
- ->setLineEnding("\r\n")
65
- ->setSheetIndex(0);
66
- $objPHPExcelFromCSV = $objReader->load(str_replace('.php', '.csv', __FILE__));
67
-
68
- $callEndTime = microtime(true);
69
- $callTime = $callEndTime - $callStartTime;
70
- echo 'Call time to reload Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
71
- // Echo memory usage
72
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
73
-
74
-
75
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
76
- $callStartTime = microtime(true);
77
-
78
- $objWriter2007 = PHPExcel_IOFactory::createWriter($objPHPExcelFromCSV, 'Excel2007');
79
- $objWriter2007->save(str_replace('.php', '.xlsx', __FILE__));
80
- $callEndTime = microtime(true);
81
- $callTime = $callEndTime - $callStartTime;
82
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
83
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
84
- // Echo memory usage
85
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
86
-
87
-
88
- echo date('H:i:s') , " Write to CSV format" , EOL;
89
- $callStartTime = microtime(true);
90
-
91
- $objWriterCSV = PHPExcel_IOFactory::createWriter($objPHPExcelFromCSV, 'CSV');
92
- $objWriterCSV->setExcelCompatibility(true);
93
- $objWriterCSV->save(str_replace('.php', '_excel.csv', __FILE__));
94
- $callEndTime = microtime(true);
95
- $callTime = $callEndTime - $callStartTime;
96
- echo date('H:i:s') , " File written to " , str_replace('.php', '_excel.csv', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
97
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
98
- // Echo memory usage
99
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
100
-
101
-
102
- // Echo memory peak usage
103
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
104
-
105
- // Echo done
106
- echo date('H:i:s') , " Done writing files" , EOL;
107
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/17html.php DELETED
@@ -1,64 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- date_default_timezone_set('Europe/London');
37
-
38
- include "05featuredemo.inc.php";
39
-
40
- /** PHPExcel_IOFactory */
41
- require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
42
-
43
-
44
- echo date('H:i:s') , " Write to HTML format" , EOL;
45
- $callStartTime = microtime(true);
46
-
47
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML');
48
- $objWriter->setSheetIndex(0);
49
- //$objWriter->setImagesRoot('http://www.example.com');
50
- $objWriter->save(str_replace('.php', '.htm', __FILE__));
51
- $callEndTime = microtime(true);
52
- $callTime = $callEndTime - $callStartTime;
53
- echo date('H:i:s') , " File written to " , str_replace('.php', '.htm', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
54
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
55
- // Echo memory usage
56
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
57
-
58
-
59
- // Echo memory peak usage
60
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
61
-
62
- // Echo done
63
- echo date('H:i:s') , " Done writing file" , EOL;
64
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/18extendedcalculation.php DELETED
@@ -1,108 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- date_default_timezone_set('Europe/London');
37
-
38
- /** PHPExcel */
39
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
40
-
41
-
42
- // List functions
43
- echo date('H:i:s') . " List implemented functions\n";
44
- $objCalc = PHPExcel_Calculation::getInstance();
45
- print_r($objCalc->listFunctionNames());
46
-
47
- // Create new PHPExcel object
48
- echo date('H:i:s') . " Create new PHPExcel object\n";
49
- $objPHPExcel = new PHPExcel();
50
-
51
- // Add some data, we will use some formulas here
52
- echo date('H:i:s') . " Add some data\n";
53
- $objPHPExcel->getActiveSheet()->setCellValue('A14', 'Count:');
54
-
55
- $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Range 1');
56
- $objPHPExcel->getActiveSheet()->setCellValue('B2', 2);
57
- $objPHPExcel->getActiveSheet()->setCellValue('B3', 8);
58
- $objPHPExcel->getActiveSheet()->setCellValue('B4', 10);
59
- $objPHPExcel->getActiveSheet()->setCellValue('B5', True);
60
- $objPHPExcel->getActiveSheet()->setCellValue('B6', False);
61
- $objPHPExcel->getActiveSheet()->setCellValue('B7', 'Text String');
62
- $objPHPExcel->getActiveSheet()->setCellValue('B9', '22');
63
- $objPHPExcel->getActiveSheet()->setCellValue('B10', 4);
64
- $objPHPExcel->getActiveSheet()->setCellValue('B11', 6);
65
- $objPHPExcel->getActiveSheet()->setCellValue('B12', 12);
66
-
67
- $objPHPExcel->getActiveSheet()->setCellValue('B14', '=COUNT(B2:B12)');
68
-
69
- $objPHPExcel->getActiveSheet()->setCellValue('C1', 'Range 2');
70
- $objPHPExcel->getActiveSheet()->setCellValue('C2', 1);
71
- $objPHPExcel->getActiveSheet()->setCellValue('C3', 2);
72
- $objPHPExcel->getActiveSheet()->setCellValue('C4', 2);
73
- $objPHPExcel->getActiveSheet()->setCellValue('C5', 3);
74
- $objPHPExcel->getActiveSheet()->setCellValue('C6', 3);
75
- $objPHPExcel->getActiveSheet()->setCellValue('C7', 3);
76
- $objPHPExcel->getActiveSheet()->setCellValue('C8', '0');
77
- $objPHPExcel->getActiveSheet()->setCellValue('C9', 4);
78
- $objPHPExcel->getActiveSheet()->setCellValue('C10', 4);
79
- $objPHPExcel->getActiveSheet()->setCellValue('C11', 4);
80
- $objPHPExcel->getActiveSheet()->setCellValue('C12', 4);
81
-
82
- $objPHPExcel->getActiveSheet()->setCellValue('C14', '=COUNT(C2:C12)');
83
-
84
- $objPHPExcel->getActiveSheet()->setCellValue('D1', 'Range 3');
85
- $objPHPExcel->getActiveSheet()->setCellValue('D2', 2);
86
- $objPHPExcel->getActiveSheet()->setCellValue('D3', 3);
87
- $objPHPExcel->getActiveSheet()->setCellValue('D4', 4);
88
-
89
- $objPHPExcel->getActiveSheet()->setCellValue('D5', '=((D2 * D3) + D4) & " should be 10"');
90
-
91
- $objPHPExcel->getActiveSheet()->setCellValue('E1', 'Other functions');
92
- $objPHPExcel->getActiveSheet()->setCellValue('E2', '=PI()');
93
- $objPHPExcel->getActiveSheet()->setCellValue('E3', '=RAND()');
94
- $objPHPExcel->getActiveSheet()->setCellValue('E4', '=RANDBETWEEN(5, 10)');
95
-
96
- $objPHPExcel->getActiveSheet()->setCellValue('E14', 'Count of both ranges:');
97
- $objPHPExcel->getActiveSheet()->setCellValue('F14', '=COUNT(B2:C12)');
98
-
99
- // Calculated data
100
- echo date('H:i:s') . " Calculated data\n";
101
- echo 'Value of B14 [=COUNT(B2:B12)]: ' . $objPHPExcel->getActiveSheet()->getCell('B14')->getCalculatedValue() . "\r\n";
102
-
103
-
104
- // Echo memory peak usage
105
- echo date('H:i:s') . " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB\r\n";
106
-
107
- // Echo done
108
- echo date('H:i:s') . " Done" , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/19namedrange.php DELETED
@@ -1,129 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- date_default_timezone_set('Europe/London');
37
-
38
- /** Include PHPExcel */
39
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
40
-
41
-
42
- // Create new PHPExcel object
43
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
44
- $objPHPExcel = new PHPExcel();
45
-
46
- // Set document properties
47
- echo date('H:i:s') , " Set document properties" , EOL;
48
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
49
- ->setLastModifiedBy("Maarten Balliauw")
50
- ->setTitle("Office 2007 XLSX Test Document")
51
- ->setSubject("Office 2007 XLSX Test Document")
52
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
53
- ->setKeywords("office 2007 openxml php")
54
- ->setCategory("Test result file");
55
-
56
-
57
- // Add some data
58
- echo date('H:i:s') , " Add some data" , EOL;
59
- $objPHPExcel->setActiveSheetIndex(0);
60
- $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Firstname:')
61
- ->setCellValue('A2', 'Lastname:')
62
- ->setCellValue('A3', 'Fullname:')
63
- ->setCellValue('B1', 'Maarten')
64
- ->setCellValue('B2', 'Balliauw')
65
- ->setCellValue('B3', '=B1 & " " & B2');
66
-
67
- // Define named ranges
68
- echo date('H:i:s') , " Define named ranges" , EOL;
69
- $objPHPExcel->addNamedRange( new PHPExcel_NamedRange('PersonName', $objPHPExcel->getActiveSheet(), 'B1') );
70
- $objPHPExcel->addNamedRange( new PHPExcel_NamedRange('PersonLN', $objPHPExcel->getActiveSheet(), 'B2') );
71
-
72
- // Rename named ranges
73
- echo date('H:i:s') , " Rename named ranges" , EOL;
74
- $objPHPExcel->getNamedRange('PersonName')->setName('PersonFN');
75
-
76
- // Rename worksheet
77
- echo date('H:i:s') , " Rename worksheet" , EOL;
78
- $objPHPExcel->getActiveSheet()->setTitle('Person');
79
-
80
-
81
- // Create a new worksheet, after the default sheet
82
- echo date('H:i:s') , " Create new Worksheet object" , EOL;
83
- $objPHPExcel->createSheet();
84
-
85
- // Add some data to the second sheet, resembling some different data types
86
- echo date('H:i:s') , " Add some data" , EOL;
87
- $objPHPExcel->setActiveSheetIndex(1);
88
- $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Firstname:')
89
- ->setCellValue('A2', 'Lastname:')
90
- ->setCellValue('A3', 'Fullname:')
91
- ->setCellValue('B1', '=PersonFN')
92
- ->setCellValue('B2', '=PersonLN')
93
- ->setCellValue('B3', '=PersonFN & " " & PersonLN');
94
-
95
- // Resolve range
96
- echo date('H:i:s') , " Resolve range" , EOL;
97
- echo 'Cell B1 {=PersonFN}: ' , $objPHPExcel->getActiveSheet()->getCell('B1')->getCalculatedValue() , EOL;
98
- echo 'Cell B3 {=PersonFN & " " & PersonLN}: ' , $objPHPExcel->getActiveSheet()->getCell('B3')->getCalculatedValue() , EOL;
99
- echo 'Cell Person!B1: ' , $objPHPExcel->getActiveSheet()->getCell('Person!B1')->getCalculatedValue() , EOL;
100
-
101
- // Rename worksheet
102
- echo date('H:i:s') , " Rename worksheet" , EOL;
103
- $objPHPExcel->getActiveSheet()->setTitle('Person (cloned)');
104
-
105
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
106
- $objPHPExcel->setActiveSheetIndex(0);
107
-
108
-
109
- // Save Excel 2007 file
110
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
111
- $callStartTime = microtime(true);
112
-
113
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
114
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
115
- $callEndTime = microtime(true);
116
- $callTime = $callEndTime - $callStartTime;
117
-
118
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
119
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
120
- // Echo memory usage
121
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
122
-
123
-
124
- // Echo memory peak usage
125
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
126
-
127
- // Echo done
128
- echo date('H:i:s') , " Done writing file" , EOL;
129
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/20readexcel5.php DELETED
@@ -1,79 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- date_default_timezone_set('Europe/London');
37
-
38
- /** Include PHPExcel_IOFactory */
39
- require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
40
-
41
-
42
- if (!file_exists("14excel5.xls")) {
43
- exit("Please run 14excel5.php first.\n");
44
- }
45
-
46
- echo date('H:i:s') , " Load workbook from Excel5 file" , EOL;
47
- $callStartTime = microtime(true);
48
-
49
- $objPHPExcel = PHPExcel_IOFactory::load("14excel5.xls");
50
-
51
- $callEndTime = microtime(true);
52
- $callTime = $callEndTime - $callStartTime;
53
-
54
- echo 'Call time to load Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
55
- // Echo memory usage
56
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
57
-
58
-
59
- // Save Excel 2007 file
60
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
61
- $callStartTime = microtime(true);
62
-
63
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
64
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
65
- $callEndTime = microtime(true);
66
- $callTime = $callEndTime - $callStartTime;
67
-
68
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
69
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
70
- // Echo memory usage
71
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
72
-
73
-
74
- // Echo memory peak usage
75
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
76
-
77
- // Echo done
78
- echo date('H:i:s') , " Done reading file" , EOL;
79
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/21pdf.php DELETED
@@ -1,94 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- date_default_timezone_set('Europe/London');
37
-
38
- include "05featuredemo.inc.php";
39
-
40
- /** PHPExcel_IOFactory */
41
- require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
42
-
43
-
44
- // Change these values to select the Rendering library that you wish to use
45
- // and its directory location on your server
46
- //$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
47
- //$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
48
- $rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
49
- //$rendererLibrary = 'tcPDF5.9';
50
- //$rendererLibrary = 'mPDF5.4';
51
- $rendererLibrary = 'domPDF0.6.0beta3';
52
- $rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary;
53
-
54
-
55
- echo date('H:i:s') , " Hide grid lines" , EOL;
56
- $objPHPExcel->getActiveSheet()->setShowGridLines(false);
57
-
58
- echo date('H:i:s') , " Set orientation to landscape" , EOL;
59
- $objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
60
-
61
-
62
- echo date('H:i:s') , " Write to PDF format using {$rendererName}" , EOL;
63
-
64
- if (!PHPExcel_Settings::setPdfRenderer(
65
- $rendererName,
66
- $rendererLibraryPath
67
- )) {
68
- die(
69
- 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
70
- EOL .
71
- 'at the top of this script as appropriate for your directory structure'
72
- );
73
- }
74
-
75
-
76
- $callStartTime = microtime(true);
77
-
78
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
79
- $objWriter->setSheetIndex(0);
80
- $objWriter->save(str_replace('.php', '_'.$rendererName.'.pdf', __FILE__));
81
- $callEndTime = microtime(true);
82
- $callTime = $callEndTime - $callStartTime;
83
- echo date('H:i:s') , " File written to " , str_replace('.php', '_'.$rendererName.'.pdf', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
84
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
85
- // Echo memory usage
86
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
87
-
88
-
89
- // Echo memory peak usage
90
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
91
-
92
- // Echo done
93
- echo date('H:i:s') , " Done writing files" , EOL;
94
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/22heavilyformatted.php DELETED
@@ -1,116 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- date_default_timezone_set('Europe/London');
37
-
38
- /** Include PHPExcel */
39
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
40
-
41
-
42
- // Create new PHPExcel object
43
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
44
- $objPHPExcel = new PHPExcel();
45
-
46
- // Set document properties
47
- echo date('H:i:s') , " Set document properties" , EOL;
48
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
49
- ->setLastModifiedBy("Maarten Balliauw")
50
- ->setTitle("Office 2007 XLSX Test Document")
51
- ->setSubject("Office 2007 XLSX Test Document")
52
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
53
- ->setKeywords("office 2007 openxml php")
54
- ->setCategory("Test result file");
55
-
56
-
57
- // Add some data
58
- echo date('H:i:s') , " Add some data" , EOL;
59
- $objPHPExcel->setActiveSheetIndex(0);
60
-
61
- $objPHPExcel->getActiveSheet()->getStyle('A1:T100')->applyFromArray(
62
- array('fill' => array(
63
- 'type' => PHPExcel_Style_Fill::FILL_SOLID,
64
- 'color' => array('argb' => 'FFCCFFCC')
65
- ),
66
- 'borders' => array(
67
- 'bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
68
- 'right' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM)
69
- )
70
- )
71
- );
72
-
73
- $objPHPExcel->getActiveSheet()->getStyle('C5:R95')->applyFromArray(
74
- array('fill' => array(
75
- 'type' => PHPExcel_Style_Fill::FILL_SOLID,
76
- 'color' => array('argb' => 'FFFFFF00')
77
- ),
78
- )
79
- );
80
-
81
- // Save Excel 2007 file
82
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
83
- $callStartTime = microtime(true);
84
-
85
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
86
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
87
- $callEndTime = microtime(true);
88
- $callTime = $callEndTime - $callStartTime;
89
-
90
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
91
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
92
- // Echo memory usage
93
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
94
-
95
-
96
- // Save Excel 95 file
97
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
98
- $callStartTime = microtime(true);
99
-
100
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
101
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
102
- $callEndTime = microtime(true);
103
- $callTime = $callEndTime - $callStartTime;
104
-
105
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
106
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
107
- // Echo memory usage
108
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
109
-
110
-
111
- // Echo memory peak usage
112
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
113
-
114
- // Echo done
115
- echo date('H:i:s') , " Done writing file" , EOL;
116
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/23sharedstyles.php DELETED
@@ -1,124 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- date_default_timezone_set('Europe/London');
37
-
38
- /** Include PHPExcel */
39
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
40
-
41
-
42
- // Create new PHPExcel object
43
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
44
- $objPHPExcel = new PHPExcel();
45
-
46
- // Set document properties
47
- echo date('H:i:s') , " Set document properties" , EOL;
48
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
49
- ->setLastModifiedBy("Maarten Balliauw")
50
- ->setTitle("Office 2007 XLSX Test Document")
51
- ->setSubject("Office 2007 XLSX Test Document")
52
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
53
- ->setKeywords("office 2007 openxml php")
54
- ->setCategory("Test result file");
55
-
56
-
57
- // Add some data
58
- echo date('H:i:s') , " Add some data" , EOL;
59
- $objPHPExcel->setActiveSheetIndex(0);
60
-
61
- $sharedStyle1 = new PHPExcel_Style();
62
- $sharedStyle2 = new PHPExcel_Style();
63
-
64
- $sharedStyle1->applyFromArray(
65
- array('fill' => array(
66
- 'type' => PHPExcel_Style_Fill::FILL_SOLID,
67
- 'color' => array('argb' => 'FFCCFFCC')
68
- ),
69
- 'borders' => array(
70
- 'bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
71
- 'right' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM)
72
- )
73
- ));
74
-
75
- $sharedStyle2->applyFromArray(
76
- array('fill' => array(
77
- 'type' => PHPExcel_Style_Fill::FILL_SOLID,
78
- 'color' => array('argb' => 'FFFFFF00')
79
- ),
80
- 'borders' => array(
81
- 'bottom' => array('style' => PHPExcel_Style_Border::BORDER_THIN),
82
- 'right' => array('style' => PHPExcel_Style_Border::BORDER_MEDIUM)
83
- )
84
- ));
85
-
86
- $objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyle1, "A1:T100");
87
- $objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyle2, "C5:R95");
88
-
89
- // Save Excel 2007 file
90
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
91
- $callStartTime = microtime(true);
92
-
93
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
94
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
95
- $callEndTime = microtime(true);
96
- $callTime = $callEndTime - $callStartTime;
97
-
98
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
99
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
100
- // Echo memory usage
101
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
102
-
103
-
104
- // Save Excel 95 file
105
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
106
- $callStartTime = microtime(true);
107
-
108
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
109
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
110
- $callEndTime = microtime(true);
111
- $callTime = $callEndTime - $callStartTime;
112
-
113
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
114
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
115
- // Echo memory usage
116
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
117
-
118
-
119
- // Echo memory peak usage
120
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
121
-
122
- // Echo done
123
- echo date('H:i:s') , " Done writing file" , EOL;
124
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/24readfilter.php DELETED
@@ -1,77 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- error_reporting(E_ALL);
29
- ini_set('display_errors', TRUE);
30
- ini_set('display_startup_errors', TRUE);
31
-
32
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
33
-
34
- date_default_timezone_set('Europe/London');
35
-
36
- /** PHPExcel_IOFactory */
37
- require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
38
-
39
-
40
- // Check prerequisites
41
- if (!file_exists("06largescale.xlsx")) {
42
- exit("Please run 06largescale.php first.\n");
43
- }
44
-
45
- class MyReadFilter implements PHPExcel_Reader_IReadFilter
46
- {
47
- public function readCell($column, $row, $worksheetName = '') {
48
- // Read title row and rows 20 - 30
49
- if ($row == 1 || ($row >= 20 && $row <= 30)) {
50
- return true;
51
- }
52
-
53
- return false;
54
- }
55
- }
56
-
57
-
58
- echo date('H:i:s') , " Load from Excel2007 file" , EOL;
59
- $objReader = PHPExcel_IOFactory::createReader('Excel2007');
60
- $objReader->setReadFilter( new MyReadFilter() );
61
- $objPHPExcel = $objReader->load("06largescale.xlsx");
62
-
63
- echo date('H:i:s') , " Remove unnecessary rows" , EOL;
64
- $objPHPExcel->getActiveSheet()->removeRow(2, 18);
65
-
66
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
67
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
68
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
69
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
70
-
71
-
72
- // Echo memory peak usage
73
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
74
-
75
- // Echo done
76
- echo date('H:i:s') , " Done writing file" , EOL;
77
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/25inmemoryimage.php DELETED
@@ -1,83 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- // Create new PHPExcel object
42
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
43
- $objPHPExcel = new PHPExcel();
44
-
45
- // Set document properties
46
- echo date('H:i:s') , " Set document properties" , EOL;
47
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
48
- ->setLastModifiedBy("Maarten Balliauw")
49
- ->setTitle("Office 2007 XLSX Test Document")
50
- ->setSubject("Office 2007 XLSX Test Document")
51
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
52
- ->setKeywords("office 2007 openxml php")
53
- ->setCategory("Test result file");
54
-
55
- // Generate an image
56
- echo date('H:i:s') , " Generate an image" , EOL;
57
- $gdImage = @imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream');
58
- $textColor = imagecolorallocate($gdImage, 255, 255, 255);
59
- imagestring($gdImage, 1, 5, 5, 'Created with PHPExcel', $textColor);
60
-
61
- // Add a drawing to the worksheet
62
- echo date('H:i:s') , " Add a drawing to the worksheet" , EOL;
63
- $objDrawing = new PHPExcel_Worksheet_MemoryDrawing();
64
- $objDrawing->setName('Sample image');
65
- $objDrawing->setDescription('Sample image');
66
- $objDrawing->setImageResource($gdImage);
67
- $objDrawing->setRenderingFunction(PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG);
68
- $objDrawing->setMimeType(PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT);
69
- $objDrawing->setHeight(36);
70
- $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
71
-
72
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
73
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
74
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
75
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
76
-
77
-
78
- // Echo memory peak usage
79
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
80
-
81
- // Echo done
82
- echo date('H:i:s') , " Done writing file" , EOL;
83
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/26utf8.php DELETED
@@ -1,122 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- // Change these values to select the PDF Rendering library that you wish to use
42
- // and its directory location on your server
43
- //$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
44
- //$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
45
- $rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
46
- //$rendererLibrary = 'tcPDF5.9';
47
- //$rendererLibrary = 'mPDF5.4';
48
- $rendererLibrary = 'domPDF0.6.0beta3';
49
- $rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary;
50
-
51
-
52
- // Read from Excel2007 (.xlsx) template
53
- echo date('H:i:s') , " Load Excel2007 template file" , EOL;
54
- $objReader = PHPExcel_IOFactory::createReader('Excel2007');
55
- $objPHPExcel = $objReader->load("templates/26template.xlsx");
56
-
57
- /** at this point, we could do some manipulations with the template, but we skip this step */
58
-
59
- // Export to Excel2007 (.xlsx)
60
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
61
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
62
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
63
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
64
-
65
- // Export to Excel5 (.xls)
66
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
67
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
68
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
69
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
70
-
71
- // Export to HTML (.html)
72
- echo date('H:i:s') , " Write to HTML format" , EOL;
73
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML');
74
- $objWriter->save(str_replace('.php', '.htm', __FILE__));
75
- echo date('H:i:s') , " File written to " , str_replace('.php', '.htm', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
76
-
77
- // Export to PDF (.pdf)
78
- echo date('H:i:s') , " Write to PDF format" , EOL;
79
- try {
80
- if (!PHPExcel_Settings::setPdfRenderer(
81
- $rendererName,
82
- $rendererLibraryPath
83
- )) {
84
- echo (
85
- 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
86
- EOL .
87
- 'at the top of this script as appropriate for your directory structure' .
88
- EOL
89
- );
90
- } else {
91
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
92
- $objWriter->save(str_replace('.php', '.pdf', __FILE__));
93
- echo date('H:i:s') , " File written to " , str_replace('.php', '.pdf', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
94
- }
95
- } catch (Exception $e) {
96
- echo date('H:i:s') , ' EXCEPTION: ', $e->getMessage() , EOL;
97
- }
98
-
99
- // Remove first two rows with field headers before exporting to CSV
100
- echo date('H:i:s') , " Removing first two heading rows for CSV export" , EOL;
101
- $objWorksheet = $objPHPExcel->getActiveSheet();
102
- $objWorksheet->removeRow(1, 2);
103
-
104
- // Export to CSV (.csv)
105
- echo date('H:i:s') , " Write to CSV format" , EOL;
106
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
107
- $objWriter->save(str_replace('.php', '.csv', __FILE__));
108
- echo date('H:i:s') , " File written to " , str_replace('.php', '.csv', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
109
-
110
- // Export to CSV with BOM (.csv)
111
- echo date('H:i:s') , " Write to CSV format (with BOM)" , EOL;
112
- $objWriter->setUseBOM(true);
113
- $objWriter->save(str_replace('.php', '-bom.csv', __FILE__));
114
- echo date('H:i:s') , " File written to " , str_replace('.php', '-bom.csv', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
115
-
116
-
117
- // Echo memory peak usage
118
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
119
-
120
- // Echo done
121
- echo date('H:i:s') , " Done writing files" , EOL;
122
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/27imagesexcel5.php DELETED
@@ -1,64 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- // Read from Excel5 (.xls) template
42
- echo date('H:i:s') , " Load Excel2007 template file" , EOL;
43
- $objReader = PHPExcel_IOFactory::createReader('Excel5');
44
- $objPHPExcel = $objReader->load("templates/27template.xls");
45
-
46
- // Export to Excel2007 (.xlsx)
47
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
48
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
49
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
50
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
51
-
52
- // Export to Excel5 (.xls)
53
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
54
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
55
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
56
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
57
-
58
-
59
- // Echo memory peak usage
60
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
61
-
62
- // Echo done
63
- echo date('H:i:s') , " Done writing files" , EOL;
64
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/28iterator.php DELETED
@@ -1,68 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** PHPExcel_IOFactory */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
39
-
40
-
41
- if (!file_exists("05featuredemo.xlsx")) {
42
- exit("Please run 05featuredemo.php first." . EOL);
43
- }
44
-
45
- echo date('H:i:s') , " Load from Excel2007 file" , EOL;
46
- $objReader = PHPExcel_IOFactory::createReader('Excel2007');
47
- $objPHPExcel = $objReader->load("05featuredemo.xlsx");
48
-
49
- echo date('H:i:s') , " Iterate worksheets" , EOL;
50
- foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
51
- echo 'Worksheet - ' , $worksheet->getTitle() , EOL;
52
-
53
- foreach ($worksheet->getRowIterator() as $row) {
54
- echo ' Row number - ' , $row->getRowIndex() , EOL;
55
-
56
- $cellIterator = $row->getCellIterator();
57
- $cellIterator->setIterateOnlyExistingCells(false); // Loop all cells, even if it is not set
58
- foreach ($cellIterator as $cell) {
59
- if (!is_null($cell)) {
60
- echo ' Cell - ' , $cell->getCoordinate() , ' - ' , $cell->getCalculatedValue() , EOL;
61
- }
62
- }
63
- }
64
- }
65
-
66
-
67
- // Echo memory peak usage
68
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/29advancedvaluebinder.php DELETED
@@ -1,183 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- /** PHPExcel */
36
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
37
-
38
-
39
- // Set timezone
40
- echo date('H:i:s') , " Set timezone" , EOL;
41
- date_default_timezone_set('UTC');
42
-
43
- // Set value binder
44
- echo date('H:i:s') , " Set value binder" , EOL;
45
- PHPExcel_Cell::setValueBinder( new PHPExcel_Cell_AdvancedValueBinder() );
46
-
47
- // Create new PHPExcel object
48
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
49
- $objPHPExcel = new PHPExcel();
50
-
51
- // Set document properties
52
- echo date('H:i:s') , " Set document properties" , EOL;
53
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
54
- ->setLastModifiedBy("Maarten Balliauw")
55
- ->setTitle("Office 2007 XLSX Test Document")
56
- ->setSubject("Office 2007 XLSX Test Document")
57
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
58
- ->setKeywords("office 2007 openxml php")
59
- ->setCategory("Test result file");
60
-
61
- // Set default font
62
- echo date('H:i:s') , " Set default font" , EOL;
63
- $objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setName('Arial');
64
- $objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(10);
65
-
66
- // Set column widths
67
- echo date('H:i:s') , " Set column widths" , EOL;
68
- $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
69
- $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(14);
70
-
71
- // Add some data, resembling some different data types
72
- echo date('H:i:s') , " Add some data" , EOL;
73
- $objPHPExcel->getActiveSheet()->setCellValue('A1', 'String value:')
74
- ->setCellValue('B1', 'Mark Baker');
75
-
76
- $objPHPExcel->getActiveSheet()->setCellValue('A2', 'Numeric value #1:')
77
- ->setCellValue('B2', 12345);
78
-
79
- $objPHPExcel->getActiveSheet()->setCellValue('A3', 'Numeric value #2:')
80
- ->setCellValue('B3', -12.345);
81
-
82
- $objPHPExcel->getActiveSheet()->setCellValue('A4', 'Numeric value #3:')
83
- ->setCellValue('B4', .12345);
84
-
85
- $objPHPExcel->getActiveSheet()->setCellValue('A5', 'Numeric value #4:')
86
- ->setCellValue('B5', '12345');
87
-
88
- $objPHPExcel->getActiveSheet()->setCellValue('A6', 'Numeric value #5:')
89
- ->setCellValue('B6', '1.2345');
90
-
91
- $objPHPExcel->getActiveSheet()->setCellValue('A7', 'Numeric value #6:')
92
- ->setCellValue('B7', '.12345');
93
-
94
- $objPHPExcel->getActiveSheet()->setCellValue('A8', 'Numeric value #7:')
95
- ->setCellValue('B8', '1.234e-5');
96
-
97
- $objPHPExcel->getActiveSheet()->setCellValue('A9', 'Numeric value #8:')
98
- ->setCellValue('B9', '-1.234e+5');
99
-
100
- $objPHPExcel->getActiveSheet()->setCellValue('A10', 'Boolean value:')
101
- ->setCellValue('B10', 'TRUE');
102
-
103
- $objPHPExcel->getActiveSheet()->setCellValue('A11', 'Percentage value #1:')
104
- ->setCellValue('B11', '10%');
105
-
106
- $objPHPExcel->getActiveSheet()->setCellValue('A12', 'Percentage value #2:')
107
- ->setCellValue('B12', '12.5%');
108
-
109
- $objPHPExcel->getActiveSheet()->setCellValue('A13', 'Fraction value #1:')
110
- ->setCellValue('B13', '-1/2');
111
-
112
- $objPHPExcel->getActiveSheet()->setCellValue('A14', 'Fraction value #2:')
113
- ->setCellValue('B14', '3 1/2');
114
-
115
- $objPHPExcel->getActiveSheet()->setCellValue('A15', 'Fraction value #3:')
116
- ->setCellValue('B15', '-12 3/4');
117
-
118
- $objPHPExcel->getActiveSheet()->setCellValue('A16', 'Fraction value #4:')
119
- ->setCellValue('B16', '13/4');
120
-
121
- $objPHPExcel->getActiveSheet()->setCellValue('A17', 'Currency value #1:')
122
- ->setCellValue('B17', '$12345');
123
-
124
- $objPHPExcel->getActiveSheet()->setCellValue('A18', 'Currency value #2:')
125
- ->setCellValue('B18', '$12345.67');
126
-
127
- $objPHPExcel->getActiveSheet()->setCellValue('A19', 'Currency value #3:')
128
- ->setCellValue('B19', '$12,345.67');
129
-
130
- $objPHPExcel->getActiveSheet()->setCellValue('A20', 'Date value #1:')
131
- ->setCellValue('B20', '21 December 1983');
132
-
133
- $objPHPExcel->getActiveSheet()->setCellValue('A21', 'Date value #2:')
134
- ->setCellValue('B21', '19-Dec-1960');
135
-
136
- $objPHPExcel->getActiveSheet()->setCellValue('A22', 'Date value #3:')
137
- ->setCellValue('B22', '07/12/1982');
138
-
139
- $objPHPExcel->getActiveSheet()->setCellValue('A23', 'Date value #4:')
140
- ->setCellValue('B23', '24-11-1950');
141
-
142
- $objPHPExcel->getActiveSheet()->setCellValue('A24', 'Date value #5:')
143
- ->setCellValue('B24', '17-Mar');
144
-
145
- $objPHPExcel->getActiveSheet()->setCellValue('A25', 'Time value #1:')
146
- ->setCellValue('B25', '01:30');
147
-
148
- $objPHPExcel->getActiveSheet()->setCellValue('A26', 'Time value #2:')
149
- ->setCellValue('B26', '01:30:15');
150
-
151
- $objPHPExcel->getActiveSheet()->setCellValue('A27', 'Date/Time value:')
152
- ->setCellValue('B27', '19-Dec-1960 01:30');
153
-
154
- $objPHPExcel->getActiveSheet()->setCellValue('A28', 'Formula:')
155
- ->setCellValue('B28', '=SUM(B2:B9)');
156
-
157
- // Rename worksheet
158
- echo date('H:i:s') , " Rename worksheet" , EOL;
159
- $objPHPExcel->getActiveSheet()->setTitle('Advanced value binder');
160
-
161
-
162
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
163
- $objPHPExcel->setActiveSheetIndex(0);
164
-
165
-
166
- // Save Excel 2007 file
167
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
168
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
169
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
170
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
171
- // Save Excel5 file
172
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
173
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
174
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
175
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
176
-
177
-
178
- // Echo memory peak usage
179
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
180
-
181
- // Echo done
182
- echo date('H:i:s') , " Done writing file" , EOL;
183
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/30template.php DELETED
@@ -1,91 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** PHPExcel_IOFactory */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
39
-
40
-
41
-
42
- echo date('H:i:s') , " Load from Excel5 template" , EOL;
43
- $objReader = PHPExcel_IOFactory::createReader('Excel5');
44
- $objPHPExcel = $objReader->load("templates/30template.xls");
45
-
46
-
47
-
48
-
49
- echo date('H:i:s') , " Add new data to the template" , EOL;
50
- $data = array(array('title' => 'Excel for dummies',
51
- 'price' => 17.99,
52
- 'quantity' => 2
53
- ),
54
- array('title' => 'PHP for dummies',
55
- 'price' => 15.99,
56
- 'quantity' => 1
57
- ),
58
- array('title' => 'Inside OOP',
59
- 'price' => 12.95,
60
- 'quantity' => 1
61
- )
62
- );
63
-
64
- $objPHPExcel->getActiveSheet()->setCellValue('D1', PHPExcel_Shared_Date::PHPToExcel(time()));
65
-
66
- $baseRow = 5;
67
- foreach($data as $r => $dataRow) {
68
- $row = $baseRow + $r;
69
- $objPHPExcel->getActiveSheet()->insertNewRowBefore($row,1);
70
-
71
- $objPHPExcel->getActiveSheet()->setCellValue('A'.$row, $r+1)
72
- ->setCellValue('B'.$row, $dataRow['title'])
73
- ->setCellValue('C'.$row, $dataRow['price'])
74
- ->setCellValue('D'.$row, $dataRow['quantity'])
75
- ->setCellValue('E'.$row, '=C'.$row.'*D'.$row);
76
- }
77
- $objPHPExcel->getActiveSheet()->removeRow($baseRow-1,1);
78
-
79
-
80
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
81
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
82
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
83
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
84
-
85
-
86
- // Echo memory peak usage
87
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
88
-
89
- // Echo done
90
- echo date('H:i:s') , " Done writing file" , EOL;
91
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/31docproperties_write-xls.php DELETED
@@ -1,119 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- $inputFileType = 'Excel5';
42
- $inputFileName = 'templates/31docproperties.xls';
43
-
44
-
45
- echo date('H:i:s') , " Load Tests from $inputFileType file" , EOL;
46
- $callStartTime = microtime(true);
47
-
48
- $objPHPExcelReader = PHPExcel_IOFactory::createReader($inputFileType);
49
- $objPHPExcel = $objPHPExcelReader->load($inputFileName);
50
-
51
- $callEndTime = microtime(true);
52
- $callTime = $callEndTime - $callStartTime;
53
- echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
54
- // Echo memory usage
55
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
56
-
57
-
58
- echo date('H:i:s') , " Adjust properties" , EOL;
59
- $objPHPExcel->getProperties()->setTitle("Office 95 XLS Test Document")
60
- ->setSubject("Office 95 XLS Test Document")
61
- ->setDescription("Test XLS document, generated using PHPExcel")
62
- ->setKeywords("office 95 biff php");
63
-
64
-
65
- // Save Excel 95 file
66
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
67
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
68
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
69
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
70
-
71
-
72
- // Echo memory peak usage
73
- echo date('H:i:s') , " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB" , EOL;
74
-
75
-
76
- echo EOL;
77
- // Reread File
78
- echo date('H:i:s') , " Reread Excel5 file" , EOL;
79
- $objPHPExcelRead = PHPExcel_IOFactory::load(str_replace('.php', '.xls', __FILE__));
80
-
81
- // Set properties
82
- echo date('H:i:s') , " Get properties" , EOL;
83
-
84
- echo 'Core Properties:' , EOL;
85
- echo ' Created by - ' , $objPHPExcel->getProperties()->getCreator() , EOL;
86
- echo ' Created on - ' , date('d-M-Y',$objPHPExcel->getProperties()->getCreated()) , ' at ' ,
87
- date('H:i:s',$objPHPExcel->getProperties()->getCreated()) , EOL;
88
- echo ' Last Modified by - ' , $objPHPExcel->getProperties()->getLastModifiedBy() , EOL;
89
- echo ' Last Modified on - ' , date('d-M-Y',$objPHPExcel->getProperties()->getModified()) , ' at ' ,
90
- date('H:i:s',$objPHPExcel->getProperties()->getModified()) , EOL;
91
- echo ' Title - ' , $objPHPExcel->getProperties()->getTitle() , EOL;
92
- echo ' Subject - ' , $objPHPExcel->getProperties()->getSubject() , EOL;
93
- echo ' Description - ' , $objPHPExcel->getProperties()->getDescription() , EOL;
94
- echo ' Keywords: - ' , $objPHPExcel->getProperties()->getKeywords() , EOL;
95
-
96
-
97
- echo 'Extended (Application) Properties:' , EOL;
98
- echo ' Category - ' , $objPHPExcel->getProperties()->getCategory() , EOL;
99
- echo ' Company - ' , $objPHPExcel->getProperties()->getCompany() , EOL;
100
- echo ' Manager - ' , $objPHPExcel->getProperties()->getManager() , EOL;
101
-
102
-
103
- echo 'Custom Properties:' , EOL;
104
- $customProperties = $objPHPExcel->getProperties()->getCustomProperties();
105
- foreach($customProperties as $customProperty) {
106
- $propertyValue = $objPHPExcel->getProperties()->getCustomPropertyValue($customProperty);
107
- $propertyType = $objPHPExcel->getProperties()->getCustomPropertyType($customProperty);
108
- echo ' ' , $customProperty , ' - (' , $propertyType , ') - ';
109
- if ($propertyType == PHPExcel_DocumentProperties::PROPERTY_TYPE_DATE) {
110
- echo date('d-M-Y H:i:s',$propertyValue) , EOL;
111
- } elseif ($propertyType == PHPExcel_DocumentProperties::PROPERTY_TYPE_BOOLEAN) {
112
- echo (($propertyValue) ? 'TRUE' : 'FALSE') , EOL;
113
- } else {
114
- echo $propertyValue , EOL;
115
- }
116
- }
117
-
118
- // Echo memory peak usage
119
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) . " MB" , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/31docproperties_write.php DELETED
@@ -1,119 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- /** Include PHPExcel */
38
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
39
-
40
-
41
- $inputFileType = 'Excel2007';
42
- $inputFileName = 'templates/31docproperties.xlsx';
43
-
44
-
45
- echo date('H:i:s') , " Load Tests from $inputFileType file" , EOL;
46
- $callStartTime = microtime(true);
47
-
48
- $objPHPExcelReader = PHPExcel_IOFactory::createReader($inputFileType);
49
- $objPHPExcel = $objPHPExcelReader->load($inputFileName);
50
-
51
- $callEndTime = microtime(true);
52
- $callTime = $callEndTime - $callStartTime;
53
- echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
54
- // Echo memory usage
55
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
56
-
57
-
58
- echo date('H:i:s') , " Adjust properties" , EOL;
59
- $objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document")
60
- ->setSubject("Office 2007 XLSX Test Document")
61
- ->setDescription("Test XLSX document, generated using PHPExcel")
62
- ->setKeywords("office 2007 openxml php");
63
-
64
-
65
- // Save Excel 2007 file
66
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
67
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
68
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
69
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
70
-
71
-
72
- // Echo memory peak usage
73
- echo date('H:i:s') , " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB" , EOL;
74
-
75
-
76
- echo EOL;
77
- // Reread File
78
- echo date('H:i:s') , " Reread Excel2007 file" , EOL;
79
- $objPHPExcelRead = PHPExcel_IOFactory::load(str_replace('.php', '.xlsx', __FILE__));
80
-
81
- // Set properties
82
- echo date('H:i:s') , " Get properties" , EOL;
83
-
84
- echo 'Core Properties:' , EOL;
85
- echo ' Created by - ' , $objPHPExcel->getProperties()->getCreator() , EOL;
86
- echo ' Created on - ' , date('d-M-Y',$objPHPExcel->getProperties()->getCreated()) , ' at ' ,
87
- date('H:i:s',$objPHPExcel->getProperties()->getCreated()) , EOL;
88
- echo ' Last Modified by - ' , $objPHPExcel->getProperties()->getLastModifiedBy() , EOL;
89
- echo ' Last Modified on - ' , date('d-M-Y',$objPHPExcel->getProperties()->getModified()) , ' at ' ,
90
- date('H:i:s',$objPHPExcel->getProperties()->getModified()) , EOL;
91
- echo ' Title - ' , $objPHPExcel->getProperties()->getTitle() , EOL;
92
- echo ' Subject - ' , $objPHPExcel->getProperties()->getSubject() , EOL;
93
- echo ' Description - ' , $objPHPExcel->getProperties()->getDescription() , EOL;
94
- echo ' Keywords: - ' , $objPHPExcel->getProperties()->getKeywords() , EOL;
95
-
96
-
97
- echo 'Extended (Application) Properties:' , EOL;
98
- echo ' Category - ' , $objPHPExcel->getProperties()->getCategory() , EOL;
99
- echo ' Company - ' , $objPHPExcel->getProperties()->getCompany() , EOL;
100
- echo ' Manager - ' , $objPHPExcel->getProperties()->getManager() , EOL;
101
-
102
-
103
- echo 'Custom Properties:' , EOL;
104
- $customProperties = $objPHPExcel->getProperties()->getCustomProperties();
105
- foreach($customProperties as $customProperty) {
106
- $propertyValue = $objPHPExcel->getProperties()->getCustomPropertyValue($customProperty);
107
- $propertyType = $objPHPExcel->getProperties()->getCustomPropertyType($customProperty);
108
- echo ' ' , $customProperty , ' - (' , $propertyType , ') - ';
109
- if ($propertyType == PHPExcel_DocumentProperties::PROPERTY_TYPE_DATE) {
110
- echo date('d-M-Y H:i:s',$propertyValue) , EOL;
111
- } elseif ($propertyType == PHPExcel_DocumentProperties::PROPERTY_TYPE_BOOLEAN) {
112
- echo (($propertyValue) ? 'TRUE' : 'FALSE') , EOL;
113
- } else {
114
- echo $propertyValue , EOL;
115
- }
116
- }
117
-
118
- // Echo memory peak usage
119
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) . " MB" , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/32chartreadwrite.php DELETED
@@ -1,131 +0,0 @@
1
- <?php
2
-
3
- /** Error reporting */
4
- error_reporting(E_ALL);
5
- ini_set('display_errors', TRUE);
6
- ini_set('display_startup_errors', TRUE);
7
- date_default_timezone_set('Europe/London');
8
-
9
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
10
-
11
- date_default_timezone_set('Europe/London');
12
-
13
- /**
14
- * PHPExcel
15
- *
16
- * Copyright (C) 2006 - 2014 PHPExcel
17
- *
18
- * This library is free software; you can redistribute it and/or
19
- * modify it under the terms of the GNU Lesser General Public
20
- * License as published by the Free Software Foundation; either
21
- * version 2.1 of the License, or (at your option) any later version.
22
- *
23
- * This library is distributed in the hope that it will be useful,
24
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
25
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
- * Lesser General Public License for more details.
27
- *
28
- * You should have received a copy of the GNU Lesser General Public
29
- * License along with this library; if not, write to the Free Software
30
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31
- *
32
- * @category PHPExcel
33
- * @package PHPExcel
34
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
36
- * @version ##VERSION##, ##DATE##
37
- */
38
-
39
- /** Include path **/
40
- set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../Classes/');
41
-
42
- /** PHPExcel_IOFactory */
43
- include 'PHPExcel/IOFactory.php';
44
-
45
- $inputFileType = 'Excel2007';
46
- $inputFileNames = 'templates/32readwrite*[0-9].xlsx';
47
-
48
- if ((isset($argc)) && ($argc > 1)) {
49
- $inputFileNames = array();
50
- for($i = 1; $i < $argc; ++$i) {
51
- $inputFileNames[] = dirname(__FILE__) . '/templates/' . $argv[$i];
52
- }
53
- } else {
54
- $inputFileNames = glob($inputFileNames);
55
- }
56
- foreach($inputFileNames as $inputFileName) {
57
- $inputFileNameShort = basename($inputFileName);
58
-
59
- if (!file_exists($inputFileName)) {
60
- echo date('H:i:s') , " File " , $inputFileNameShort , ' does not exist' , EOL;
61
- continue;
62
- }
63
-
64
- echo date('H:i:s') , " Load Test from $inputFileType file " , $inputFileNameShort , EOL;
65
-
66
- $objReader = PHPExcel_IOFactory::createReader($inputFileType);
67
- $objReader->setIncludeCharts(TRUE);
68
- $objPHPExcel = $objReader->load($inputFileName);
69
-
70
-
71
- echo date('H:i:s') , " Iterate worksheets looking at the charts" , EOL;
72
- foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
73
- $sheetName = $worksheet->getTitle();
74
- echo 'Worksheet: ' , $sheetName , EOL;
75
-
76
- $chartNames = $worksheet->getChartNames();
77
- if(empty($chartNames)) {
78
- echo ' There are no charts in this worksheet' , EOL;
79
- } else {
80
- natsort($chartNames);
81
- foreach($chartNames as $i => $chartName) {
82
- $chart = $worksheet->getChartByName($chartName);
83
- if (!is_null($chart->getTitle())) {
84
- $caption = '"' . implode(' ',$chart->getTitle()->getCaption()) . '"';
85
- } else {
86
- $caption = 'Untitled';
87
- }
88
- echo ' ' , $chartName , ' - ' , $caption , EOL;
89
- echo str_repeat(' ',strlen($chartName)+3);
90
- $groupCount = $chart->getPlotArea()->getPlotGroupCount();
91
- if ($groupCount == 1) {
92
- $chartType = $chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType();
93
- echo ' ' , $chartType , EOL;
94
- } else {
95
- $chartTypes = array();
96
- for($i = 0; $i < $groupCount; ++$i) {
97
- $chartTypes[] = $chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType();
98
- }
99
- $chartTypes = array_unique($chartTypes);
100
- if (count($chartTypes) == 1) {
101
- $chartType = 'Multiple Plot ' . array_pop($chartTypes);
102
- echo ' ' , $chartType , EOL;
103
- } elseif (count($chartTypes) == 0) {
104
- echo ' *** Type not yet implemented' , EOL;
105
- } else {
106
- echo ' Combination Chart' , EOL;
107
- }
108
- }
109
- }
110
- }
111
- }
112
-
113
-
114
- $outputFileName = basename($inputFileName);
115
-
116
- echo date('H:i:s') , " Write Tests to Excel2007 file " , EOL;
117
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
118
- $objWriter->setIncludeCharts(TRUE);
119
- $objWriter->save($outputFileName);
120
- echo date('H:i:s') , " File written to " , $outputFileName , EOL;
121
-
122
- $objPHPExcel->disconnectWorksheets();
123
- unset($objPHPExcel);
124
- }
125
-
126
- // Echo memory peak usage
127
- echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
128
-
129
- // Echo done
130
- echo date('H:i:s') , " Done writing files" , EOL;
131
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/33chartcreate-area.php DELETED
@@ -1,142 +0,0 @@
1
- <?php
2
-
3
- /** Error reporting */
4
- error_reporting(E_ALL);
5
- ini_set('display_errors', TRUE);
6
- ini_set('display_startup_errors', TRUE);
7
- date_default_timezone_set('Europe/London');
8
-
9
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
10
-
11
- date_default_timezone_set('Europe/London');
12
-
13
- /**
14
- * PHPExcel
15
- *
16
- * Copyright (C) 2006 - 2014 PHPExcel
17
- *
18
- * This library is free software; you can redistribute it and/or
19
- * modify it under the terms of the GNU Lesser General Public
20
- * License as published by the Free Software Foundation; either
21
- * version 2.1 of the License, or (at your option) any later version.
22
- *
23
- * This library is distributed in the hope that it will be useful,
24
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
25
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
- * Lesser General Public License for more details.
27
- *
28
- * You should have received a copy of the GNU Lesser General Public
29
- * License along with this library; if not, write to the Free Software
30
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31
- *
32
- * @category PHPExcel
33
- * @package PHPExcel
34
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
36
- * @version ##VERSION##, ##DATE##
37
- */
38
-
39
- /** PHPExcel */
40
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
41
-
42
-
43
- $objPHPExcel = new PHPExcel();
44
- $objWorksheet = $objPHPExcel->getActiveSheet();
45
- $objWorksheet->fromArray(
46
- array(
47
- array('', 2010, 2011, 2012),
48
- array('Q1', 12, 15, 21),
49
- array('Q2', 56, 73, 86),
50
- array('Q3', 52, 61, 69),
51
- array('Q4', 30, 32, 0),
52
- )
53
- );
54
-
55
- // Set the Labels for each data series we want to plot
56
- // Datatype
57
- // Cell reference for data
58
- // Format Code
59
- // Number of datapoints in series
60
- // Data values
61
- // Data Marker
62
- $dataSeriesLabels = array(
63
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010
64
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011
65
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012
66
- );
67
- // Set the X-Axis Labels
68
- // Datatype
69
- // Cell reference for data
70
- // Format Code
71
- // Number of datapoints in series
72
- // Data values
73
- // Data Marker
74
- $xAxisTickValues = array(
75
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4
76
- );
77
- // Set the Data values for each data series we want to plot
78
- // Datatype
79
- // Cell reference for data
80
- // Format Code
81
- // Number of datapoints in series
82
- // Data values
83
- // Data Marker
84
- $dataSeriesValues = array(
85
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
86
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
87
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4),
88
- );
89
-
90
- // Build the dataseries
91
- $series = new PHPExcel_Chart_DataSeries(
92
- PHPExcel_Chart_DataSeries::TYPE_AREACHART, // plotType
93
- PHPExcel_Chart_DataSeries::GROUPING_PERCENT_STACKED, // plotGrouping
94
- range(0, count($dataSeriesValues)-1), // plotOrder
95
- $dataSeriesLabels, // plotLabel
96
- $xAxisTickValues, // plotCategory
97
- $dataSeriesValues // plotValues
98
- );
99
-
100
- // Set the series in the plot area
101
- $plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series));
102
- // Set the chart legend
103
- $legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_TOPRIGHT, NULL, false);
104
-
105
- $title = new PHPExcel_Chart_Title('Test %age-Stacked Area Chart');
106
- $yAxisLabel = new PHPExcel_Chart_Title('Value ($k)');
107
-
108
-
109
- // Create the chart
110
- $chart = new PHPExcel_Chart(
111
- 'chart1', // name
112
- $title, // title
113
- $legend, // legend
114
- $plotArea, // plotArea
115
- true, // plotVisibleOnly
116
- 0, // displayBlanksAs
117
- NULL, // xAxisLabel
118
- $yAxisLabel // yAxisLabel
119
- );
120
-
121
- // Set the position where the chart should appear in the worksheet
122
- $chart->setTopLeftPosition('A7');
123
- $chart->setBottomRightPosition('H20');
124
-
125
- // Add the chart to the worksheet
126
- $objWorksheet->addChart($chart);
127
-
128
-
129
- // Save Excel 2007 file
130
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
131
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
132
- $objWriter->setIncludeCharts(TRUE);
133
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
134
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
135
-
136
-
137
- // Echo memory peak usage
138
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
139
-
140
- // Echo done
141
- echo date('H:i:s') , " Done writing file" , EOL;
142
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/33chartcreate-bar-stacked.php DELETED
@@ -1,145 +0,0 @@
1
- <?php
2
-
3
- /** Error reporting */
4
- error_reporting(E_ALL);
5
- ini_set('display_errors', TRUE);
6
- ini_set('display_startup_errors', TRUE);
7
- date_default_timezone_set('Europe/London');
8
-
9
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
10
-
11
- date_default_timezone_set('Europe/London');
12
-
13
- /**
14
- * PHPExcel
15
- *
16
- * Copyright (C) 2006 - 2014 PHPExcel
17
- *
18
- * This library is free software; you can redistribute it and/or
19
- * modify it under the terms of the GNU Lesser General Public
20
- * License as published by the Free Software Foundation; either
21
- * version 2.1 of the License, or (at your option) any later version.
22
- *
23
- * This library is distributed in the hope that it will be useful,
24
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
25
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
- * Lesser General Public License for more details.
27
- *
28
- * You should have received a copy of the GNU Lesser General Public
29
- * License along with this library; if not, write to the Free Software
30
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31
- *
32
- * @category PHPExcel
33
- * @package PHPExcel
34
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
36
- * @version ##VERSION##, ##DATE##
37
- */
38
-
39
- /** PHPExcel */
40
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
41
-
42
-
43
- $objPHPExcel = new PHPExcel();
44
- $objWorksheet = $objPHPExcel->getActiveSheet();
45
- $objWorksheet->fromArray(
46
- array(
47
- array('', 2010, 2011, 2012),
48
- array('Q1', 12, 15, 21),
49
- array('Q2', 56, 73, 86),
50
- array('Q3', 52, 61, 69),
51
- array('Q4', 30, 32, 0),
52
- )
53
- );
54
-
55
- // Set the Labels for each data series we want to plot
56
- // Datatype
57
- // Cell reference for data
58
- // Format Code
59
- // Number of datapoints in series
60
- // Data values
61
- // Data Marker
62
- $dataSeriesLabels = array(
63
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010
64
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011
65
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012
66
- );
67
- // Set the X-Axis Labels
68
- // Datatype
69
- // Cell reference for data
70
- // Format Code
71
- // Number of datapoints in series
72
- // Data values
73
- // Data Marker
74
- $xAxisTickValues = array(
75
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4
76
- );
77
- // Set the Data values for each data series we want to plot
78
- // Datatype
79
- // Cell reference for data
80
- // Format Code
81
- // Number of datapoints in series
82
- // Data values
83
- // Data Marker
84
- $dataSeriesValues = array(
85
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
86
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
87
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4),
88
- );
89
-
90
- // Build the dataseries
91
- $series = new PHPExcel_Chart_DataSeries(
92
- PHPExcel_Chart_DataSeries::TYPE_BARCHART, // plotType
93
- PHPExcel_Chart_DataSeries::GROUPING_STACKED, // plotGrouping
94
- range(0, count($dataSeriesValues)-1), // plotOrder
95
- $dataSeriesLabels, // plotLabel
96
- $xAxisTickValues, // plotCategory
97
- $dataSeriesValues // plotValues
98
- );
99
- // Set additional dataseries parameters
100
- // Make it a horizontal bar rather than a vertical column graph
101
- $series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_BAR);
102
-
103
- // Set the series in the plot area
104
- $plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series));
105
- // Set the chart legend
106
- $legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
107
-
108
- $title = new PHPExcel_Chart_Title('Test Chart');
109
- $yAxisLabel = new PHPExcel_Chart_Title('Value ($k)');
110
-
111
-
112
- // Create the chart
113
- $chart = new PHPExcel_Chart(
114
- 'chart1', // name
115
- $title, // title
116
- $legend, // legend
117
- $plotArea, // plotArea
118
- true, // plotVisibleOnly
119
- 0, // displayBlanksAs
120
- NULL, // xAxisLabel
121
- $yAxisLabel // yAxisLabel
122
- );
123
-
124
- // Set the position where the chart should appear in the worksheet
125
- $chart->setTopLeftPosition('A7');
126
- $chart->setBottomRightPosition('H20');
127
-
128
- // Add the chart to the worksheet
129
- $objWorksheet->addChart($chart);
130
-
131
-
132
- // Save Excel 2007 file
133
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
134
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
135
- $objWriter->setIncludeCharts(TRUE);
136
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
137
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
138
-
139
-
140
- // Echo memory peak usage
141
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
142
-
143
- // Echo done
144
- echo date('H:i:s') , " Done writing file" , EOL;
145
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/33chartcreate-bar.php DELETED
@@ -1,145 +0,0 @@
1
- <?php
2
-
3
- /** Error reporting */
4
- error_reporting(E_ALL);
5
- ini_set('display_errors', TRUE);
6
- ini_set('display_startup_errors', TRUE);
7
- date_default_timezone_set('Europe/London');
8
-
9
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
10
-
11
- date_default_timezone_set('Europe/London');
12
-
13
- /**
14
- * PHPExcel
15
- *
16
- * Copyright (C) 2006 - 2014 PHPExcel
17
- *
18
- * This library is free software; you can redistribute it and/or
19
- * modify it under the terms of the GNU Lesser General Public
20
- * License as published by the Free Software Foundation; either
21
- * version 2.1 of the License, or (at your option) any later version.
22
- *
23
- * This library is distributed in the hope that it will be useful,
24
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
25
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
- * Lesser General Public License for more details.
27
- *
28
- * You should have received a copy of the GNU Lesser General Public
29
- * License along with this library; if not, write to the Free Software
30
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31
- *
32
- * @category PHPExcel
33
- * @package PHPExcel
34
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
36
- * @version ##VERSION##, ##DATE##
37
- */
38
-
39
- /** PHPExcel */
40
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
41
-
42
-
43
- $objPHPExcel = new PHPExcel();
44
- $objWorksheet = $objPHPExcel->getActiveSheet();
45
- $objWorksheet->fromArray(
46
- array(
47
- array('', 2010, 2011, 2012),
48
- array('Q1', 12, 15, 21),
49
- array('Q2', 56, 73, 86),
50
- array('Q3', 52, 61, 69),
51
- array('Q4', 30, 32, 0),
52
- )
53
- );
54
-
55
- // Set the Labels for each data series we want to plot
56
- // Datatype
57
- // Cell reference for data
58
- // Format Code
59
- // Number of datapoints in series
60
- // Data values
61
- // Data Marker
62
- $dataSeriesLabels = array(
63
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010
64
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011
65
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012
66
- );
67
- // Set the X-Axis Labels
68
- // Datatype
69
- // Cell reference for data
70
- // Format Code
71
- // Number of datapoints in series
72
- // Data values
73
- // Data Marker
74
- $xAxisTickValues = array(
75
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4
76
- );
77
- // Set the Data values for each data series we want to plot
78
- // Datatype
79
- // Cell reference for data
80
- // Format Code
81
- // Number of datapoints in series
82
- // Data values
83
- // Data Marker
84
- $dataSeriesValues = array(
85
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
86
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
87
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4),
88
- );
89
-
90
- // Build the dataseries
91
- $series = new PHPExcel_Chart_DataSeries(
92
- PHPExcel_Chart_DataSeries::TYPE_BARCHART, // plotType
93
- PHPExcel_Chart_DataSeries::GROUPING_CLUSTERED, // plotGrouping
94
- range(0, count($dataSeriesValues)-1), // plotOrder
95
- $dataSeriesLabels, // plotLabel
96
- $xAxisTickValues, // plotCategory
97
- $dataSeriesValues // plotValues
98
- );
99
- // Set additional dataseries parameters
100
- // Make it a horizontal bar rather than a vertical column graph
101
- $series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_BAR);
102
-
103
- // Set the series in the plot area
104
- $plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series));
105
- // Set the chart legend
106
- $legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
107
-
108
- $title = new PHPExcel_Chart_Title('Test Bar Chart');
109
- $yAxisLabel = new PHPExcel_Chart_Title('Value ($k)');
110
-
111
-
112
- // Create the chart
113
- $chart = new PHPExcel_Chart(
114
- 'chart1', // name
115
- $title, // title
116
- $legend, // legend
117
- $plotArea, // plotArea
118
- true, // plotVisibleOnly
119
- 0, // displayBlanksAs
120
- NULL, // xAxisLabel
121
- $yAxisLabel // yAxisLabel
122
- );
123
-
124
- // Set the position where the chart should appear in the worksheet
125
- $chart->setTopLeftPosition('A7');
126
- $chart->setBottomRightPosition('H20');
127
-
128
- // Add the chart to the worksheet
129
- $objWorksheet->addChart($chart);
130
-
131
-
132
- // Save Excel 2007 file
133
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
134
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
135
- $objWriter->setIncludeCharts(TRUE);
136
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
137
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
138
-
139
-
140
- // Echo memory peak usage
141
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
142
-
143
- // Echo done
144
- echo date('H:i:s') , " Done writing file" , EOL;
145
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/33chartcreate-column-2.php DELETED
@@ -1,154 +0,0 @@
1
- <?php
2
-
3
- /** Error reporting */
4
- error_reporting(E_ALL);
5
- ini_set('display_errors', TRUE);
6
- ini_set('display_startup_errors', TRUE);
7
- date_default_timezone_set('Europe/London');
8
-
9
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
10
-
11
- date_default_timezone_set('Europe/London');
12
-
13
- /**
14
- * PHPExcel
15
- *
16
- * Copyright (C) 2006 - 2014 PHPExcel
17
- *
18
- * This library is free software; you can redistribute it and/or
19
- * modify it under the terms of the GNU Lesser General Public
20
- * License as published by the Free Software Foundation; either
21
- * version 2.1 of the License, or (at your option) any later version.
22
- *
23
- * This library is distributed in the hope that it will be useful,
24
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
25
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
- * Lesser General Public License for more details.
27
- *
28
- * You should have received a copy of the GNU Lesser General Public
29
- * License along with this library; if not, write to the Free Software
30
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31
- *
32
- * @category PHPExcel
33
- * @package PHPExcel
34
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
36
- * @version ##VERSION##, ##DATE##
37
- */
38
-
39
- /** PHPExcel */
40
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
41
-
42
-
43
- $objPHPExcel = new PHPExcel();
44
- $objWorksheet = $objPHPExcel->getActiveSheet();
45
- $objWorksheet->fromArray(
46
- array(
47
- array('', '', 'Budget', 'Forecast', 'Actual'),
48
- array('2010', 'Q1', 47, 44, 43 ),
49
- array('', 'Q2', 56, 53, 50 ),
50
- array('', 'Q3', 52, 46, 45 ),
51
- array('', 'Q4', 45, 40, 40 ),
52
- array('2011', 'Q1', 51, 42, 46 ),
53
- array('', 'Q2', 53, 58, 56 ),
54
- array('', 'Q3', 64, 66, 69 ),
55
- array('', 'Q4', 54, 55, 56 ),
56
- array('2012', 'Q1', 49, 52, 58 ),
57
- array('', 'Q2', 68, 73, 86 ),
58
- array('', 'Q3', 72, 78, 0 ),
59
- array('', 'Q4', 50, 60, 0 ),
60
- )
61
- );
62
-
63
- // Set the Labels for each data series we want to plot
64
- // Datatype
65
- // Cell reference for data
66
- // Format Code
67
- // Number of datapoints in series
68
- // Data values
69
- // Data Marker
70
- $dataSeriesLabels = array(
71
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 'Budget'
72
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 'Forecast'
73
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$E$1', NULL, 1), // 'Actual'
74
- );
75
- // Set the X-Axis Labels
76
- // Datatype
77
- // Cell reference for data
78
- // Format Code
79
- // Number of datapoints in series
80
- // Data values
81
- // Data Marker
82
- $xAxisTickValues = array(
83
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$B$13', NULL, 12), // Q1 to Q4 for 2010 to 2012
84
- );
85
- // Set the Data values for each data series we want to plot
86
- // Datatype
87
- // Cell reference for data
88
- // Format Code
89
- // Number of datapoints in series
90
- // Data values
91
- // Data Marker
92
- $dataSeriesValues = array(
93
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', NULL, 12),
94
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', NULL, 12),
95
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$E$2:$E$13', NULL, 12),
96
- );
97
-
98
- // Build the dataseries
99
- $series = new PHPExcel_Chart_DataSeries(
100
- PHPExcel_Chart_DataSeries::TYPE_BARCHART, // plotType
101
- PHPExcel_Chart_DataSeries::GROUPING_CLUSTERED, // plotGrouping
102
- range(0, count($dataSeriesValues)-1), // plotOrder
103
- $dataSeriesLabels, // plotLabel
104
- $xAxisTickValues, // plotCategory
105
- $dataSeriesValues // plotValues
106
- );
107
- // Set additional dataseries parameters
108
- // Make it a vertical column rather than a horizontal bar graph
109
- $series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_COL);
110
-
111
- // Set the series in the plot area
112
- $plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series));
113
- // Set the chart legend
114
- $legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_BOTTOM, NULL, false);
115
-
116
- $title = new PHPExcel_Chart_Title('Test Grouped Column Chart');
117
- $xAxisLabel = new PHPExcel_Chart_Title('Financial Period');
118
- $yAxisLabel = new PHPExcel_Chart_Title('Value ($k)');
119
-
120
-
121
- // Create the chart
122
- $chart = new PHPExcel_Chart(
123
- 'chart1', // name
124
- $title, // title
125
- $legend, // legend
126
- $plotArea, // plotArea
127
- true, // plotVisibleOnly
128
- 0, // displayBlanksAs
129
- $xAxisLabel, // xAxisLabel
130
- $yAxisLabel // yAxisLabel
131
- );
132
-
133
- // Set the position where the chart should appear in the worksheet
134
- $chart->setTopLeftPosition('G2');
135
- $chart->setBottomRightPosition('P20');
136
-
137
- // Add the chart to the worksheet
138
- $objWorksheet->addChart($chart);
139
-
140
-
141
- // Save Excel 2007 file
142
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
143
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
144
- $objWriter->setIncludeCharts(TRUE);
145
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
146
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
147
-
148
-
149
- // Echo memory peak usage
150
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
151
-
152
- // Echo done
153
- echo date('H:i:s') , " Done writing file" , EOL;
154
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/33chartcreate-column.php DELETED
@@ -1,145 +0,0 @@
1
- <?php
2
-
3
- /** Error reporting */
4
- error_reporting(E_ALL);
5
- ini_set('display_errors', TRUE);
6
- ini_set('display_startup_errors', TRUE);
7
- date_default_timezone_set('Europe/London');
8
-
9
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
10
-
11
- date_default_timezone_set('Europe/London');
12
-
13
- /**
14
- * PHPExcel
15
- *
16
- * Copyright (C) 2006 - 2014 PHPExcel
17
- *
18
- * This library is free software; you can redistribute it and/or
19
- * modify it under the terms of the GNU Lesser General Public
20
- * License as published by the Free Software Foundation; either
21
- * version 2.1 of the License, or (at your option) any later version.
22
- *
23
- * This library is distributed in the hope that it will be useful,
24
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
25
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
- * Lesser General Public License for more details.
27
- *
28
- * You should have received a copy of the GNU Lesser General Public
29
- * License along with this library; if not, write to the Free Software
30
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31
- *
32
- * @category PHPExcel
33
- * @package PHPExcel
34
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
36
- * @version ##VERSION##, ##DATE##
37
- */
38
-
39
- /** PHPExcel */
40
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
41
-
42
-
43
- $objPHPExcel = new PHPExcel();
44
- $objWorksheet = $objPHPExcel->getActiveSheet();
45
- $objWorksheet->fromArray(
46
- array(
47
- array('', 2010, 2011, 2012),
48
- array('Q1', 12, 15, 21),
49
- array('Q2', 56, 73, 86),
50
- array('Q3', 52, 61, 69),
51
- array('Q4', 30, 32, 0),
52
- )
53
- );
54
-
55
- // Set the Labels for each data series we want to plot
56
- // Datatype
57
- // Cell reference for data
58
- // Format Code
59
- // Number of datapoints in series
60
- // Data values
61
- // Data Marker
62
- $dataSeriesLabels = array(
63
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010
64
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011
65
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012
66
- );
67
- // Set the X-Axis Labels
68
- // Datatype
69
- // Cell reference for data
70
- // Format Code
71
- // Number of datapoints in series
72
- // Data values
73
- // Data Marker
74
- $xAxisTickValues = array(
75
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4
76
- );
77
- // Set the Data values for each data series we want to plot
78
- // Datatype
79
- // Cell reference for data
80
- // Format Code
81
- // Number of datapoints in series
82
- // Data values
83
- // Data Marker
84
- $dataSeriesValues = array(
85
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
86
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
87
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4),
88
- );
89
-
90
- // Build the dataseries
91
- $series = new PHPExcel_Chart_DataSeries(
92
- PHPExcel_Chart_DataSeries::TYPE_BARCHART, // plotType
93
- PHPExcel_Chart_DataSeries::GROUPING_STANDARD, // plotGrouping
94
- range(0, count($dataSeriesValues)-1), // plotOrder
95
- $dataSeriesLabels, // plotLabel
96
- $xAxisTickValues, // plotCategory
97
- $dataSeriesValues // plotValues
98
- );
99
- // Set additional dataseries parameters
100
- // Make it a vertical column rather than a horizontal bar graph
101
- $series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_COL);
102
-
103
- // Set the series in the plot area
104
- $plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series));
105
- // Set the chart legend
106
- $legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
107
-
108
- $title = new PHPExcel_Chart_Title('Test Column Chart');
109
- $yAxisLabel = new PHPExcel_Chart_Title('Value ($k)');
110
-
111
-
112
- // Create the chart
113
- $chart = new PHPExcel_Chart(
114
- 'chart1', // name
115
- $title, // title
116
- $legend, // legend
117
- $plotArea, // plotArea
118
- true, // plotVisibleOnly
119
- 0, // displayBlanksAs
120
- NULL, // xAxisLabel
121
- $yAxisLabel // yAxisLabel
122
- );
123
-
124
- // Set the position where the chart should appear in the worksheet
125
- $chart->setTopLeftPosition('A7');
126
- $chart->setBottomRightPosition('H20');
127
-
128
- // Add the chart to the worksheet
129
- $objWorksheet->addChart($chart);
130
-
131
-
132
- // Save Excel 2007 file
133
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
134
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
135
- $objWriter->setIncludeCharts(TRUE);
136
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
137
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
138
-
139
-
140
- // Echo memory peak usage
141
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
142
-
143
- // Echo done
144
- echo date('H:i:s') , " Done writing file" , EOL;
145
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/33chartcreate-composite.php DELETED
@@ -1,203 +0,0 @@
1
- <?php
2
-
3
- /** Error reporting */
4
- error_reporting(E_ALL);
5
- ini_set('display_errors', TRUE);
6
- ini_set('display_startup_errors', TRUE);
7
- date_default_timezone_set('Europe/London');
8
-
9
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
10
-
11
- date_default_timezone_set('Europe/London');
12
-
13
- /**
14
- * PHPExcel
15
- *
16
- * Copyright (C) 2006 - 2014 PHPExcel
17
- *
18
- * This library is free software; you can redistribute it and/or
19
- * modify it under the terms of the GNU Lesser General Public
20
- * License as published by the Free Software Foundation; either
21
- * version 2.1 of the License, or (at your option) any later version.
22
- *
23
- * This library is distributed in the hope that it will be useful,
24
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
25
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
- * Lesser General Public License for more details.
27
- *
28
- * You should have received a copy of the GNU Lesser General Public
29
- * License along with this library; if not, write to the Free Software
30
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31
- *
32
- * @category PHPExcel
33
- * @package PHPExcel
34
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
36
- * @version ##VERSION##, ##DATE##
37
- */
38
-
39
- /** PHPExcel */
40
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
41
-
42
-
43
- $objPHPExcel = new PHPExcel();
44
- $objWorksheet = $objPHPExcel->getActiveSheet();
45
- $objWorksheet->fromArray(
46
- array(
47
- array('', 'Rainfall (mm)', 'Temperature (°F)', 'Humidity (%)'),
48
- array('Jan', 78, 52, 61),
49
- array('Feb', 64, 54, 62),
50
- array('Mar', 62, 57, 63),
51
- array('Apr', 21, 62, 59),
52
- array('May', 11, 75, 60),
53
- array('Jun', 1, 75, 57),
54
- array('Jul', 1, 79, 56),
55
- array('Aug', 1, 79, 59),
56
- array('Sep', 10, 75, 60),
57
- array('Oct', 40, 68, 63),
58
- array('Nov', 69, 62, 64),
59
- array('Dec', 89, 57, 66),
60
- )
61
- );
62
-
63
-
64
- // Set the Labels for each data series we want to plot
65
- // Datatype
66
- // Cell reference for data
67
- // Format Code
68
- // Number of datapoints in series
69
- // Data values
70
- // Data Marker
71
- $dataSeriesLabels1 = array(
72
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // Temperature
73
- );
74
- $dataSeriesLabels2 = array(
75
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // Rainfall
76
- );
77
- $dataSeriesLabels3 = array(
78
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // Humidity
79
- );
80
-
81
- // Set the X-Axis Labels
82
- // Datatype
83
- // Cell reference for data
84
- // Format Code
85
- // Number of datapoints in series
86
- // Data values
87
- // Data Marker
88
- $xAxisTickValues = array(
89
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$13', NULL, 12), // Jan to Dec
90
- );
91
-
92
-
93
- // Set the Data values for each data series we want to plot
94
- // Datatype
95
- // Cell reference for data
96
- // Format Code
97
- // Number of datapoints in series
98
- // Data values
99
- // Data Marker
100
- $dataSeriesValues1 = array(
101
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$13', NULL, 12),
102
- );
103
-
104
- // Build the dataseries
105
- $series1 = new PHPExcel_Chart_DataSeries(
106
- PHPExcel_Chart_DataSeries::TYPE_BARCHART, // plotType
107
- PHPExcel_Chart_DataSeries::GROUPING_CLUSTERED, // plotGrouping
108
- range(0, count($dataSeriesValues1)-1), // plotOrder
109
- $dataSeriesLabels1, // plotLabel
110
- $xAxisTickValues, // plotCategory
111
- $dataSeriesValues1 // plotValues
112
- );
113
- // Set additional dataseries parameters
114
- // Make it a vertical column rather than a horizontal bar graph
115
- $series1->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_COL);
116
-
117
-
118
- // Set the Data values for each data series we want to plot
119
- // Datatype
120
- // Cell reference for data
121
- // Format Code
122
- // Number of datapoints in series
123
- // Data values
124
- // Data Marker
125
- $dataSeriesValues2 = array(
126
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', NULL, 12),
127
- );
128
-
129
- // Build the dataseries
130
- $series2 = new PHPExcel_Chart_DataSeries(
131
- PHPExcel_Chart_DataSeries::TYPE_LINECHART, // plotType
132
- PHPExcel_Chart_DataSeries::GROUPING_STANDARD, // plotGrouping
133
- range(0, count($dataSeriesValues2)-1), // plotOrder
134
- $dataSeriesLabels2, // plotLabel
135
- NULL, // plotCategory
136
- $dataSeriesValues2 // plotValues
137
- );
138
-
139
-
140
- // Set the Data values for each data series we want to plot
141
- // Datatype
142
- // Cell reference for data
143
- // Format Code
144
- // Number of datapoints in series
145
- // Data values
146
- // Data Marker
147
- $dataSeriesValues3 = array(
148
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', NULL, 12),
149
- );
150
-
151
- // Build the dataseries
152
- $series3 = new PHPExcel_Chart_DataSeries(
153
- PHPExcel_Chart_DataSeries::TYPE_AREACHART, // plotType
154
- PHPExcel_Chart_DataSeries::GROUPING_STANDARD, // plotGrouping
155
- range(0, count($dataSeriesValues2)-1), // plotOrder
156
- $dataSeriesLabels3, // plotLabel
157
- NULL, // plotCategory
158
- $dataSeriesValues3 // plotValues
159
- );
160
-
161
-
162
- // Set the series in the plot area
163
- $plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series1, $series2, $series3));
164
- // Set the chart legend
165
- $legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
166
-
167
- $title = new PHPExcel_Chart_Title('Average Weather Chart for Crete');
168
-
169
-
170
- // Create the chart
171
- $chart = new PHPExcel_Chart(
172
- 'chart1', // name
173
- $title, // title
174
- $legend, // legend
175
- $plotArea, // plotArea
176
- true, // plotVisibleOnly
177
- 0, // displayBlanksAs
178
- NULL, // xAxisLabel
179
- NULL // yAxisLabel
180
- );
181
-
182
- // Set the position where the chart should appear in the worksheet
183
- $chart->setTopLeftPosition('F2');
184
- $chart->setBottomRightPosition('O16');
185
-
186
- // Add the chart to the worksheet
187
- $objWorksheet->addChart($chart);
188
-
189
-
190
- // Save Excel 2007 file
191
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
192
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
193
- $objWriter->setIncludeCharts(TRUE);
194
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
195
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
196
-
197
-
198
- // Echo memory peak usage
199
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
200
-
201
- // Echo done
202
- echo date('H:i:s') , " Done writing file" , EOL;
203
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/33chartcreate-line.php DELETED
@@ -1,142 +0,0 @@
1
- <?php
2
-
3
- /** Error reporting */
4
- error_reporting(E_ALL);
5
- ini_set('display_errors', TRUE);
6
- ini_set('display_startup_errors', TRUE);
7
- date_default_timezone_set('Europe/London');
8
-
9
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
10
-
11
- date_default_timezone_set('Europe/London');
12
-
13
- /**
14
- * PHPExcel
15
- *
16
- * Copyright (C) 2006 - 2014 PHPExcel
17
- *
18
- * This library is free software; you can redistribute it and/or
19
- * modify it under the terms of the GNU Lesser General Public
20
- * License as published by the Free Software Foundation; either
21
- * version 2.1 of the License, or (at your option) any later version.
22
- *
23
- * This library is distributed in the hope that it will be useful,
24
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
25
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
- * Lesser General Public License for more details.
27
- *
28
- * You should have received a copy of the GNU Lesser General Public
29
- * License along with this library; if not, write to the Free Software
30
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31
- *
32
- * @category PHPExcel
33
- * @package PHPExcel
34
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
36
- * @version ##VERSION##, ##DATE##
37
- */
38
-
39
- /** PHPExcel */
40
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
41
-
42
-
43
- $objPHPExcel = new PHPExcel();
44
- $objWorksheet = $objPHPExcel->getActiveSheet();
45
- $objWorksheet->fromArray(
46
- array(
47
- array('', 2010, 2011, 2012),
48
- array('Q1', 12, 15, 21),
49
- array('Q2', 56, 73, 86),
50
- array('Q3', 52, 61, 69),
51
- array('Q4', 30, 32, 0),
52
- )
53
- );
54
-
55
- // Set the Labels for each data series we want to plot
56
- // Datatype
57
- // Cell reference for data
58
- // Format Code
59
- // Number of datapoints in series
60
- // Data values
61
- // Data Marker
62
- $dataSeriesLabels = array(
63
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010
64
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011
65
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012
66
- );
67
- // Set the X-Axis Labels
68
- // Datatype
69
- // Cell reference for data
70
- // Format Code
71
- // Number of datapoints in series
72
- // Data values
73
- // Data Marker
74
- $xAxisTickValues = array(
75
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4
76
- );
77
- // Set the Data values for each data series we want to plot
78
- // Datatype
79
- // Cell reference for data
80
- // Format Code
81
- // Number of datapoints in series
82
- // Data values
83
- // Data Marker
84
- $dataSeriesValues = array(
85
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
86
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
87
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4),
88
- );
89
-
90
- // Build the dataseries
91
- $series = new PHPExcel_Chart_DataSeries(
92
- PHPExcel_Chart_DataSeries::TYPE_LINECHART, // plotType
93
- PHPExcel_Chart_DataSeries::GROUPING_STACKED, // plotGrouping
94
- range(0, count($dataSeriesValues)-1), // plotOrder
95
- $dataSeriesLabels, // plotLabel
96
- $xAxisTickValues, // plotCategory
97
- $dataSeriesValues // plotValues
98
- );
99
-
100
- // Set the series in the plot area
101
- $plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series));
102
- // Set the chart legend
103
- $legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_TOPRIGHT, NULL, false);
104
-
105
- $title = new PHPExcel_Chart_Title('Test Stacked Line Chart');
106
- $yAxisLabel = new PHPExcel_Chart_Title('Value ($k)');
107
-
108
-
109
- // Create the chart
110
- $chart = new PHPExcel_Chart(
111
- 'chart1', // name
112
- $title, // title
113
- $legend, // legend
114
- $plotArea, // plotArea
115
- true, // plotVisibleOnly
116
- 0, // displayBlanksAs
117
- NULL, // xAxisLabel
118
- $yAxisLabel // yAxisLabel
119
- );
120
-
121
- // Set the position where the chart should appear in the worksheet
122
- $chart->setTopLeftPosition('A7');
123
- $chart->setBottomRightPosition('H20');
124
-
125
- // Add the chart to the worksheet
126
- $objWorksheet->addChart($chart);
127
-
128
-
129
- // Save Excel 2007 file
130
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
131
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
132
- $objWriter->setIncludeCharts(TRUE);
133
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
134
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
135
-
136
-
137
- // Echo memory peak usage
138
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
139
-
140
- // Echo done
141
- echo date('H:i:s') , " Done writing file" , EOL;
142
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/33chartcreate-multiple-charts.php DELETED
@@ -1,220 +0,0 @@
1
- <?php
2
-
3
- /** Error reporting */
4
- error_reporting(E_ALL);
5
- ini_set('display_errors', TRUE);
6
- ini_set('display_startup_errors', TRUE);
7
- date_default_timezone_set('Europe/London');
8
-
9
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
10
-
11
- date_default_timezone_set('Europe/London');
12
-
13
- /**
14
- * PHPExcel
15
- *
16
- * Copyright (C) 2006 - 2014 PHPExcel
17
- *
18
- * This library is free software; you can redistribute it and/or
19
- * modify it under the terms of the GNU Lesser General Public
20
- * License as published by the Free Software Foundation; either
21
- * version 2.1 of the License, or (at your option) any later version.
22
- *
23
- * This library is distributed in the hope that it will be useful,
24
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
25
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
- * Lesser General Public License for more details.
27
- *
28
- * You should have received a copy of the GNU Lesser General Public
29
- * License along with this library; if not, write to the Free Software
30
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31
- *
32
- * @category PHPExcel
33
- * @package PHPExcel
34
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
36
- * @version ##VERSION##, ##DATE##
37
- */
38
-
39
- /** PHPExcel */
40
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
41
-
42
-
43
- $objPHPExcel = new PHPExcel();
44
- $objWorksheet = $objPHPExcel->getActiveSheet();
45
- $objWorksheet->fromArray(
46
- array(
47
- array('', 2010, 2011, 2012),
48
- array('Q1', 12, 15, 21),
49
- array('Q2', 56, 73, 86),
50
- array('Q3', 52, 61, 69),
51
- array('Q4', 30, 32, 0),
52
- )
53
- );
54
-
55
-
56
- // Set the Labels for each data series we want to plot
57
- // Datatype
58
- // Cell reference for data
59
- // Format Code
60
- // Number of datapoints in series
61
- // Data values
62
- // Data Marker
63
- $dataSeriesLabels1 = array(
64
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010
65
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011
66
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012
67
- );
68
- // Set the X-Axis Labels
69
- // Datatype
70
- // Cell reference for data
71
- // Format Code
72
- // Number of datapoints in series
73
- // Data values
74
- // Data Marker
75
- $xAxisTickValues1 = array(
76
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4
77
- );
78
- // Set the Data values for each data series we want to plot
79
- // Datatype
80
- // Cell reference for data
81
- // Format Code
82
- // Number of datapoints in series
83
- // Data values
84
- // Data Marker
85
- $dataSeriesValues1 = array(
86
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
87
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
88
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4),
89
- );
90
-
91
- // Build the dataseries
92
- $series1 = new PHPExcel_Chart_DataSeries(
93
- PHPExcel_Chart_DataSeries::TYPE_AREACHART, // plotType
94
- PHPExcel_Chart_DataSeries::GROUPING_PERCENT_STACKED, // plotGrouping
95
- range(0, count($dataSeriesValues1)-1), // plotOrder
96
- $dataSeriesLabels1, // plotLabel
97
- $xAxisTickValues1, // plotCategory
98
- $dataSeriesValues1 // plotValues
99
- );
100
-
101
- // Set the series in the plot area
102
- $plotArea1 = new PHPExcel_Chart_PlotArea(NULL, array($series1));
103
- // Set the chart legend
104
- $legend1 = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_TOPRIGHT, NULL, false);
105
-
106
- $title1 = new PHPExcel_Chart_Title('Test %age-Stacked Area Chart');
107
- $yAxisLabel1 = new PHPExcel_Chart_Title('Value ($k)');
108
-
109
-
110
- // Create the chart
111
- $chart1 = new PHPExcel_Chart(
112
- 'chart1', // name
113
- $title1, // title
114
- $legend1, // legend
115
- $plotArea1, // plotArea
116
- true, // plotVisibleOnly
117
- 0, // displayBlanksAs
118
- NULL, // xAxisLabel
119
- $yAxisLabel1 // yAxisLabel
120
- );
121
-
122
- // Set the position where the chart should appear in the worksheet
123
- $chart1->setTopLeftPosition('A7');
124
- $chart1->setBottomRightPosition('H20');
125
-
126
- // Add the chart to the worksheet
127
- $objWorksheet->addChart($chart1);
128
-
129
-
130
- // Set the Labels for each data series we want to plot
131
- // Datatype
132
- // Cell reference for data
133
- // Format Code
134
- // Number of datapoints in series
135
- // Data values
136
- // Data Marker
137
- $dataSeriesLabels2 = array(
138
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010
139
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011
140
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012
141
- );
142
- // Set the X-Axis Labels
143
- // Datatype
144
- // Cell reference for data
145
- // Format Code
146
- // Number of datapoints in series
147
- // Data values
148
- // Data Marker
149
- $xAxisTickValues2 = array(
150
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4
151
- );
152
- // Set the Data values for each data series we want to plot
153
- // Datatype
154
- // Cell reference for data
155
- // Format Code
156
- // Number of datapoints in series
157
- // Data values
158
- // Data Marker
159
- $dataSeriesValues2 = array(
160
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
161
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
162
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4),
163
- );
164
-
165
- // Build the dataseries
166
- $series2 = new PHPExcel_Chart_DataSeries(
167
- PHPExcel_Chart_DataSeries::TYPE_BARCHART, // plotType
168
- PHPExcel_Chart_DataSeries::GROUPING_STANDARD, // plotGrouping
169
- range(0, count($dataSeriesValues2)-1), // plotOrder
170
- $dataSeriesLabels2, // plotLabel
171
- $xAxisTickValues2, // plotCategory
172
- $dataSeriesValues2 // plotValues
173
- );
174
- // Set additional dataseries parameters
175
- // Make it a vertical column rather than a horizontal bar graph
176
- $series2->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_COL);
177
-
178
- // Set the series in the plot area
179
- $plotArea2 = new PHPExcel_Chart_PlotArea(NULL, array($series2));
180
- // Set the chart legend
181
- $legend2 = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
182
-
183
- $title2 = new PHPExcel_Chart_Title('Test Column Chart');
184
- $yAxisLabel2 = new PHPExcel_Chart_Title('Value ($k)');
185
-
186
-
187
- // Create the chart
188
- $chart2 = new PHPExcel_Chart(
189
- 'chart2', // name
190
- $title2, // title
191
- $legend2, // legend
192
- $plotArea2, // plotArea
193
- true, // plotVisibleOnly
194
- 0, // displayBlanksAs
195
- NULL, // xAxisLabel
196
- $yAxisLabel2 // yAxisLabel
197
- );
198
-
199
- // Set the position where the chart should appear in the worksheet
200
- $chart2->setTopLeftPosition('I7');
201
- $chart2->setBottomRightPosition('P20');
202
-
203
- // Add the chart to the worksheet
204
- $objWorksheet->addChart($chart2);
205
-
206
-
207
- // Save Excel 2007 file
208
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
209
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
210
- $objWriter->setIncludeCharts(TRUE);
211
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
212
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
213
-
214
-
215
- // Echo memory peak usage
216
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
217
-
218
- // Echo done
219
- echo date('H:i:s') , " Done writing file" , EOL;
220
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/33chartcreate-pie.php DELETED
@@ -1,215 +0,0 @@
1
- <?php
2
-
3
- /** Error reporting */
4
- error_reporting(E_ALL);
5
- ini_set('display_errors', TRUE);
6
- ini_set('display_startup_errors', TRUE);
7
- date_default_timezone_set('Europe/London');
8
-
9
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
10
-
11
- date_default_timezone_set('Europe/London');
12
-
13
- /**
14
- * PHPExcel
15
- *
16
- * Copyright (C) 2006 - 2014 PHPExcel
17
- *
18
- * This library is free software; you can redistribute it and/or
19
- * modify it under the terms of the GNU Lesser General Public
20
- * License as published by the Free Software Foundation; either
21
- * version 2.1 of the License, or (at your option) any later version.
22
- *
23
- * This library is distributed in the hope that it will be useful,
24
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
25
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
- * Lesser General Public License for more details.
27
- *
28
- * You should have received a copy of the GNU Lesser General Public
29
- * License along with this library; if not, write to the Free Software
30
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31
- *
32
- * @category PHPExcel
33
- * @package PHPExcel
34
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
36
- * @version ##VERSION##, ##DATE##
37
- */
38
-
39
- /** PHPExcel */
40
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
41
-
42
-
43
- $objPHPExcel = new PHPExcel();
44
- $objWorksheet = $objPHPExcel->getActiveSheet();
45
- $objWorksheet->fromArray(
46
- array(
47
- array('', 2010, 2011, 2012),
48
- array('Q1', 12, 15, 21),
49
- array('Q2', 56, 73, 86),
50
- array('Q3', 52, 61, 69),
51
- array('Q4', 30, 32, 0),
52
- )
53
- );
54
-
55
-
56
- // Set the Labels for each data series we want to plot
57
- // Datatype
58
- // Cell reference for data
59
- // Format Code
60
- // Number of datapoints in series
61
- // Data values
62
- // Data Marker
63
- $dataSeriesLabels1 = array(
64
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011
65
- );
66
- // Set the X-Axis Labels
67
- // Datatype
68
- // Cell reference for data
69
- // Format Code
70
- // Number of datapoints in series
71
- // Data values
72
- // Data Marker
73
- $xAxisTickValues1 = array(
74
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4
75
- );
76
- // Set the Data values for each data series we want to plot
77
- // Datatype
78
- // Cell reference for data
79
- // Format Code
80
- // Number of datapoints in series
81
- // Data values
82
- // Data Marker
83
- $dataSeriesValues1 = array(
84
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
85
- );
86
-
87
- // Build the dataseries
88
- $series1 = new PHPExcel_Chart_DataSeries(
89
- PHPExcel_Chart_DataSeries::TYPE_PIECHART, // plotType
90
- NULL, // plotGrouping (Pie charts don't have any grouping)
91
- range(0, count($dataSeriesValues1)-1), // plotOrder
92
- $dataSeriesLabels1, // plotLabel
93
- $xAxisTickValues1, // plotCategory
94
- $dataSeriesValues1 // plotValues
95
- );
96
-
97
- // Set up a layout object for the Pie chart
98
- $layout1 = new PHPExcel_Chart_Layout();
99
- $layout1->setShowVal(TRUE);
100
- $layout1->setShowPercent(TRUE);
101
-
102
- // Set the series in the plot area
103
- $plotArea1 = new PHPExcel_Chart_PlotArea($layout1, array($series1));
104
- // Set the chart legend
105
- $legend1 = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
106
-
107
- $title1 = new PHPExcel_Chart_Title('Test Pie Chart');
108
-
109
-
110
- // Create the chart
111
- $chart1 = new PHPExcel_Chart(
112
- 'chart1', // name
113
- $title1, // title
114
- $legend1, // legend
115
- $plotArea1, // plotArea
116
- true, // plotVisibleOnly
117
- 0, // displayBlanksAs
118
- NULL, // xAxisLabel
119
- NULL // yAxisLabel - Pie charts don't have a Y-Axis
120
- );
121
-
122
- // Set the position where the chart should appear in the worksheet
123
- $chart1->setTopLeftPosition('A7');
124
- $chart1->setBottomRightPosition('H20');
125
-
126
- // Add the chart to the worksheet
127
- $objWorksheet->addChart($chart1);
128
-
129
-
130
- // Set the Labels for each data series we want to plot
131
- // Datatype
132
- // Cell reference for data
133
- // Format Code
134
- // Number of datapoints in series
135
- // Data values
136
- // Data Marker
137
- $dataSeriesLabels2 = array(
138
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011
139
- );
140
- // Set the X-Axis Labels
141
- // Datatype
142
- // Cell reference for data
143
- // Format Code
144
- // Number of datapoints in series
145
- // Data values
146
- // Data Marker
147
- $xAxisTickValues2 = array(
148
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4
149
- );
150
- // Set the Data values for each data series we want to plot
151
- // Datatype
152
- // Cell reference for data
153
- // Format Code
154
- // Number of datapoints in series
155
- // Data values
156
- // Data Marker
157
- $dataSeriesValues2 = array(
158
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
159
- );
160
-
161
- // Build the dataseries
162
- $series2 = new PHPExcel_Chart_DataSeries(
163
- PHPExcel_Chart_DataSeries::TYPE_DONUTCHART, // plotType
164
- NULL, // plotGrouping (Donut charts don't have any grouping)
165
- range(0, count($dataSeriesValues2)-1), // plotOrder
166
- $dataSeriesLabels2, // plotLabel
167
- $xAxisTickValues2, // plotCategory
168
- $dataSeriesValues2 // plotValues
169
- );
170
-
171
- // Set up a layout object for the Pie chart
172
- $layout2 = new PHPExcel_Chart_Layout();
173
- $layout2->setShowVal(TRUE);
174
- $layout2->setShowCatName(TRUE);
175
-
176
- // Set the series in the plot area
177
- $plotArea2 = new PHPExcel_Chart_PlotArea($layout2, array($series2));
178
-
179
- $title2 = new PHPExcel_Chart_Title('Test Donut Chart');
180
-
181
-
182
- // Create the chart
183
- $chart2 = new PHPExcel_Chart(
184
- 'chart2', // name
185
- $title2, // title
186
- NULL, // legend
187
- $plotArea2, // plotArea
188
- true, // plotVisibleOnly
189
- 0, // displayBlanksAs
190
- NULL, // xAxisLabel
191
- NULL // yAxisLabel - Like Pie charts, Donut charts don't have a Y-Axis
192
- );
193
-
194
- // Set the position where the chart should appear in the worksheet
195
- $chart2->setTopLeftPosition('I7');
196
- $chart2->setBottomRightPosition('P20');
197
-
198
- // Add the chart to the worksheet
199
- $objWorksheet->addChart($chart2);
200
-
201
-
202
- // Save Excel 2007 file
203
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
204
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
205
- $objWriter->setIncludeCharts(TRUE);
206
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
207
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
208
-
209
-
210
- // Echo memory peak usage
211
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
212
-
213
- // Echo done
214
- echo date('H:i:s') , " Done writing file" , EOL;
215
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/33chartcreate-radar.php DELETED
@@ -1,154 +0,0 @@
1
- <?php
2
-
3
- /** Error reporting */
4
- error_reporting(E_ALL);
5
- ini_set('display_errors', TRUE);
6
- ini_set('display_startup_errors', TRUE);
7
- date_default_timezone_set('Europe/London');
8
-
9
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
10
-
11
- date_default_timezone_set('Europe/London');
12
-
13
- /**
14
- * PHPExcel
15
- *
16
- * Copyright (C) 2006 - 2014 PHPExcel
17
- *
18
- * This library is free software; you can redistribute it and/or
19
- * modify it under the terms of the GNU Lesser General Public
20
- * License as published by the Free Software Foundation; either
21
- * version 2.1 of the License, or (at your option) any later version.
22
- *
23
- * This library is distributed in the hope that it will be useful,
24
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
25
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
- * Lesser General Public License for more details.
27
- *
28
- * You should have received a copy of the GNU Lesser General Public
29
- * License along with this library; if not, write to the Free Software
30
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31
- *
32
- * @category PHPExcel
33
- * @package PHPExcel
34
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
36
- * @version ##VERSION##, ##DATE##
37
- */
38
-
39
- /** PHPExcel */
40
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
41
-
42
-
43
- $objPHPExcel = new PHPExcel();
44
- $objWorksheet = $objPHPExcel->getActiveSheet();
45
- $objWorksheet->fromArray(
46
- array(
47
- array('', 2010, 2011, 2012),
48
- array('Jan', 47, 45, 71),
49
- array('Feb', 56, 73, 86),
50
- array('Mar', 52, 61, 69),
51
- array('Apr', 40, 52, 60),
52
- array('May', 42, 55, 71),
53
- array('Jun', 58, 63, 76),
54
- array('Jul', 53, 61, 89),
55
- array('Aug', 46, 69, 85),
56
- array('Sep', 62, 75, 81),
57
- array('Oct', 51, 70, 96),
58
- array('Nov', 55, 66, 89),
59
- array('Dec', 68, 62, 0),
60
- )
61
- );
62
-
63
-
64
- // Set the Labels for each data series we want to plot
65
- // Datatype
66
- // Cell reference for data
67
- // Format Code
68
- // Number of datapoints in series
69
- // Data values
70
- // Data Marker
71
- $dataSeriesLabels = array(
72
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011
73
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012
74
- );
75
- // Set the X-Axis Labels
76
- // Datatype
77
- // Cell reference for data
78
- // Format Code
79
- // Number of datapoints in series
80
- // Data values
81
- // Data Marker
82
- $xAxisTickValues = array(
83
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$13', NULL, 12), // Jan to Dec
84
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$13', NULL, 12), // Jan to Dec
85
- );
86
- // Set the Data values for each data series we want to plot
87
- // Datatype
88
- // Cell reference for data
89
- // Format Code
90
- // Number of datapoints in series
91
- // Data values
92
- // Data Marker
93
- $dataSeriesValues = array(
94
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', NULL, 12),
95
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', NULL, 12),
96
- );
97
-
98
- // Build the dataseries
99
- $series = new PHPExcel_Chart_DataSeries(
100
- PHPExcel_Chart_DataSeries::TYPE_RADARCHART, // plotType
101
- NULL, // plotGrouping (Radar charts don't have any grouping)
102
- range(0, count($dataSeriesValues)-1), // plotOrder
103
- $dataSeriesLabels, // plotLabel
104
- $xAxisTickValues, // plotCategory
105
- $dataSeriesValues, // plotValues
106
- NULL, // smooth line
107
- PHPExcel_Chart_DataSeries::STYLE_MARKER // plotStyle
108
- );
109
-
110
- // Set up a layout object for the Pie chart
111
- $layout = new PHPExcel_Chart_Layout();
112
-
113
- // Set the series in the plot area
114
- $plotArea = new PHPExcel_Chart_PlotArea($layout, array($series));
115
- // Set the chart legend
116
- $legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
117
-
118
- $title = new PHPExcel_Chart_Title('Test Radar Chart');
119
-
120
-
121
- // Create the chart
122
- $chart = new PHPExcel_Chart(
123
- 'chart1', // name
124
- $title, // title
125
- $legend, // legend
126
- $plotArea, // plotArea
127
- true, // plotVisibleOnly
128
- 0, // displayBlanksAs
129
- NULL, // xAxisLabel
130
- NULL // yAxisLabel - Radar charts don't have a Y-Axis
131
- );
132
-
133
- // Set the position where the chart should appear in the worksheet
134
- $chart->setTopLeftPosition('F2');
135
- $chart->setBottomRightPosition('M15');
136
-
137
- // Add the chart to the worksheet
138
- $objWorksheet->addChart($chart);
139
-
140
-
141
- // Save Excel 2007 file
142
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
143
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
144
- $objWriter->setIncludeCharts(TRUE);
145
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
146
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
147
-
148
-
149
- // Echo memory peak usage
150
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
151
-
152
- // Echo done
153
- echo date('H:i:s') , " Done writing file" , EOL;
154
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/33chartcreate-scatter.php DELETED
@@ -1,138 +0,0 @@
1
- <?php
2
-
3
- /** Error reporting */
4
- error_reporting(E_ALL);
5
- ini_set('display_errors', TRUE);
6
- ini_set('display_startup_errors', TRUE);
7
- date_default_timezone_set('Europe/London');
8
-
9
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
10
-
11
- date_default_timezone_set('Europe/London');
12
-
13
- /**
14
- * PHPExcel
15
- *
16
- * Copyright (C) 2006 - 2014 PHPExcel
17
- *
18
- * This library is free software; you can redistribute it and/or
19
- * modify it under the terms of the GNU Lesser General Public
20
- * License as published by the Free Software Foundation; either
21
- * version 2.1 of the License, or (at your option) any later version.
22
- *
23
- * This library is distributed in the hope that it will be useful,
24
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
25
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
- * Lesser General Public License for more details.
27
- *
28
- * You should have received a copy of the GNU Lesser General Public
29
- * License along with this library; if not, write to the Free Software
30
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31
- *
32
- * @category PHPExcel
33
- * @package PHPExcel
34
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
36
- * @version ##VERSION##, ##DATE##
37
- */
38
-
39
- /** PHPExcel */
40
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
41
-
42
-
43
- $objPHPExcel = new PHPExcel();
44
- $objWorksheet = $objPHPExcel->getActiveSheet();
45
- $objWorksheet->fromArray(
46
- array(
47
- array('', 2010, 2011, 2012),
48
- array('Q1', 12, 15, 21),
49
- array('Q2', 56, 73, 86),
50
- array('Q3', 52, 61, 69),
51
- array('Q4', 30, 32, 0),
52
- )
53
- );
54
-
55
- // Set the Labels for each data series we want to plot
56
- // Datatype
57
- // Cell reference for data
58
- // Format Code
59
- // Number of datapoints in series
60
- // Data values
61
- // Data Marker
62
- $dataSeriesLabels = array(
63
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010
64
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011
65
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012
66
- );
67
- // Set the X-Axis Labels
68
- $xAxisTickValues = array(
69
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4
70
- );
71
- // Set the Data values for each data series we want to plot
72
- // Datatype
73
- // Cell reference for data
74
- // Format Code
75
- // Number of datapoints in series
76
- // Data values
77
- // Data Marker
78
- $dataSeriesValues = array(
79
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
80
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
81
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4),
82
- );
83
-
84
- // Build the dataseries
85
- $series = new PHPExcel_Chart_DataSeries(
86
- PHPExcel_Chart_DataSeries::TYPE_SCATTERCHART, // plotType
87
- NULL, // plotGrouping (Scatter charts don't have any grouping)
88
- range(0, count($dataSeriesValues)-1), // plotOrder
89
- $dataSeriesLabels, // plotLabel
90
- $xAxisTickValues, // plotCategory
91
- $dataSeriesValues, // plotValues
92
- NULL, // smooth line
93
- PHPExcel_Chart_DataSeries::STYLE_LINEMARKER // plotStyle
94
- );
95
-
96
- // Set the series in the plot area
97
- $plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series));
98
- // Set the chart legend
99
- $legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_TOPRIGHT, NULL, false);
100
-
101
- $title = new PHPExcel_Chart_Title('Test Scatter Chart');
102
- $yAxisLabel = new PHPExcel_Chart_Title('Value ($k)');
103
-
104
-
105
- // Create the chart
106
- $chart = new PHPExcel_Chart(
107
- 'chart1', // name
108
- $title, // title
109
- $legend, // legend
110
- $plotArea, // plotArea
111
- true, // plotVisibleOnly
112
- 0, // displayBlanksAs
113
- NULL, // xAxisLabel
114
- $yAxisLabel // yAxisLabel
115
- );
116
-
117
- // Set the position where the chart should appear in the worksheet
118
- $chart->setTopLeftPosition('A7');
119
- $chart->setBottomRightPosition('H20');
120
-
121
- // Add the chart to the worksheet
122
- $objWorksheet->addChart($chart);
123
-
124
-
125
- // Save Excel 2007 file
126
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
127
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
128
- $objWriter->setIncludeCharts(TRUE);
129
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
130
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
131
-
132
-
133
- // Echo memory peak usage
134
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
135
-
136
- // Echo done
137
- echo date('H:i:s') , " Done writing file" , EOL;
138
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/33chartcreate-stock.php DELETED
@@ -1,151 +0,0 @@
1
- <?php
2
-
3
- /** Error reporting */
4
- error_reporting(E_ALL);
5
- ini_set('display_errors', TRUE);
6
- ini_set('display_startup_errors', TRUE);
7
- date_default_timezone_set('Europe/London');
8
-
9
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
10
-
11
- date_default_timezone_set('Europe/London');
12
-
13
- /**
14
- * PHPExcel
15
- *
16
- * Copyright (C) 2006 - 2014 PHPExcel
17
- *
18
- * This library is free software; you can redistribute it and/or
19
- * modify it under the terms of the GNU Lesser General Public
20
- * License as published by the Free Software Foundation; either
21
- * version 2.1 of the License, or (at your option) any later version.
22
- *
23
- * This library is distributed in the hope that it will be useful,
24
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
25
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
- * Lesser General Public License for more details.
27
- *
28
- * You should have received a copy of the GNU Lesser General Public
29
- * License along with this library; if not, write to the Free Software
30
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31
- *
32
- * @category PHPExcel
33
- * @package PHPExcel
34
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
36
- * @version ##VERSION##, ##DATE##
37
- */
38
-
39
- /** PHPExcel */
40
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
41
-
42
-
43
- $objPHPExcel = new PHPExcel();
44
- $objWorksheet = $objPHPExcel->getActiveSheet();
45
- $objWorksheet->fromArray(
46
- array(
47
- array('Counts', 'Max', 'Min', 'Min Threshold', 'Max Threshold' ),
48
- array(10, 10, 5, 0, 50 ),
49
- array(30, 20, 10, 0, 50 ),
50
- array(20, 30, 15, 0, 50 ),
51
- array(40, 10, 0, 0, 50 ),
52
- array(100, 40, 5, 0, 50 ),
53
- ), null, 'A1', true
54
- );
55
- $objWorksheet->getStyle('B2:E6')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00);
56
-
57
-
58
- // Set the Labels for each data series we want to plot
59
- // Datatype
60
- // Cell reference for data
61
- // Format Code
62
- // Number of datapoints in series
63
- // Data values
64
- // Data Marker
65
- $dataSeriesLabels = array(
66
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), //Max / Open
67
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), //Min / Close
68
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), //Min Threshold / Min
69
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$E$1', NULL, 1), //Max Threshold / Max
70
- );
71
- // Set the X-Axis Labels
72
- // Datatype
73
- // Cell reference for data
74
- // Format Code
75
- // Number of datapoints in series
76
- // Data values
77
- // Data Marker
78
- $xAxisTickValues = array(
79
- new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$6', NULL, 5), // Counts
80
- );
81
- // Set the Data values for each data series we want to plot
82
- // Datatype
83
- // Cell reference for data
84
- // Format Code
85
- // Number of datapoints in series
86
- // Data values
87
- // Data Marker
88
- $dataSeriesValues = array(
89
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$6', NULL, 5),
90
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$6', NULL, 5),
91
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$6', NULL, 5),
92
- new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$E$2:$E$6', NULL, 5),
93
- );
94
-
95
- // Build the dataseries
96
- $series = new PHPExcel_Chart_DataSeries(
97
- PHPExcel_Chart_DataSeries::TYPE_STOCKCHART, // plotType
98
- null, // plotGrouping - if we set this to not null, then xlsx throws error
99
- range(0, count($dataSeriesValues)-1), // plotOrder
100
- $dataSeriesLabels, // plotLabel
101
- $xAxisTickValues, // plotCategory
102
- $dataSeriesValues // plotValues
103
- );
104
-
105
- // Set the series in the plot area
106
- $plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series));
107
- // Set the chart legend
108
- $legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
109
-
110
- $title = new PHPExcel_Chart_Title('Test Stock Chart');
111
- $xAxisLabel = new PHPExcel_Chart_Title('Counts');
112
- $yAxisLabel = new PHPExcel_Chart_Title('Values');
113
-
114
- // Create the chart
115
- $chart = new PHPExcel_Chart(
116
- 'stock-chart', // name
117
- $title, // title
118
- $legend, // legend
119
- $plotArea, // plotArea
120
- true, // plotVisibleOnly
121
- 0, // displayBlanksAs
122
- $xAxisLabel, // xAxisLabel
123
- $yAxisLabel // yAxisLabel
124
- );
125
-
126
- // Set the position where the chart should appear in the worksheet
127
- $chart->setTopLeftPosition('A7');
128
- $chart->setBottomRightPosition('H20');
129
-
130
- // Add the chart to the worksheet
131
- $objWorksheet->addChart($chart);
132
-
133
-
134
- // Save Excel 2007 file
135
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
136
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
137
- $objWriter->setIncludeCharts(TRUE);
138
- $filename = str_replace('.php', '.xlsx', __FILE__);
139
- if(file_exists($filename)) {
140
- unlink($filename);
141
- }
142
- $objWriter->save($filename);
143
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
144
-
145
-
146
- // Echo memory peak usage
147
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
148
-
149
- // Echo done
150
- echo date('H:i:s') , " Done writing file" , EOL;
151
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/34chartupdate.php DELETED
@@ -1,78 +0,0 @@
1
- <?php
2
-
3
- /** Error reporting */
4
- error_reporting(E_ALL);
5
- ini_set('display_errors', TRUE);
6
- ini_set('display_startup_errors', TRUE);
7
- date_default_timezone_set('Europe/London');
8
-
9
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
10
-
11
- date_default_timezone_set('Europe/London');
12
-
13
- /**
14
- * PHPExcel
15
- *
16
- * Copyright (C) 2006 - 2014 PHPExcel
17
- *
18
- * This library is free software; you can redistribute it and/or
19
- * modify it under the terms of the GNU Lesser General Public
20
- * License as published by the Free Software Foundation; either
21
- * version 2.1 of the License, or (at your option) any later version.
22
- *
23
- * This library is distributed in the hope that it will be useful,
24
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
25
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
- * Lesser General Public License for more details.
27
- *
28
- * You should have received a copy of the GNU Lesser General Public
29
- * License along with this library; if not, write to the Free Software
30
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31
- *
32
- * @category PHPExcel
33
- * @package PHPExcel
34
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
36
- * @version ##VERSION##, ##DATE##
37
- */
38
-
39
- /** PHPExcel */
40
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
41
-
42
- if (!file_exists("33chartcreate-bar.xlsx")) {
43
- exit("Please run 33chartcreate-bar.php first." . EOL);
44
- }
45
-
46
- echo date('H:i:s') , " Load from Excel2007 file" , EOL;
47
- $objReader = PHPExcel_IOFactory::createReader("Excel2007");
48
- $objReader->setIncludeCharts(TRUE);
49
- $objPHPExcel = $objReader->load("33chartcreate-bar.xlsx");
50
-
51
-
52
- echo date('H:i:s') , " Update cell data values that are displayed in the chart" , EOL;
53
- $objWorksheet = $objPHPExcel->getActiveSheet();
54
- $objWorksheet->fromArray(
55
- array(
56
- array(50-12, 50-15, 50-21),
57
- array(50-56, 50-73, 50-86),
58
- array(50-52, 50-61, 50-69),
59
- array(50-30, 50-32, 50),
60
- ),
61
- NULL,
62
- 'B2'
63
- );
64
-
65
- // Save Excel 2007 file
66
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
67
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
68
- $objWriter->setIncludeCharts(TRUE);
69
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
70
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
71
-
72
-
73
- // Echo memory peak usage
74
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
75
-
76
- // Echo done
77
- echo date('H:i:s') , " Done writing file" , EOL;
78
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/35chartrender.php DELETED
@@ -1,134 +0,0 @@
1
- <?php
2
-
3
- /** Error reporting */
4
- error_reporting(E_ALL);
5
- ini_set('display_errors', TRUE);
6
- ini_set('display_startup_errors', TRUE);
7
- date_default_timezone_set('Europe/London');
8
-
9
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
10
-
11
- date_default_timezone_set('Europe/London');
12
-
13
- /**
14
- * PHPExcel
15
- *
16
- * Copyright (C) 2006 - 2014 PHPExcel
17
- *
18
- * This library is free software; you can redistribute it and/or
19
- * modify it under the terms of the GNU Lesser General Public
20
- * License as published by the Free Software Foundation; either
21
- * version 2.1 of the License, or (at your option) any later version.
22
- *
23
- * This library is distributed in the hope that it will be useful,
24
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
25
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
- * Lesser General Public License for more details.
27
- *
28
- * You should have received a copy of the GNU Lesser General Public
29
- * License along with this library; if not, write to the Free Software
30
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31
- *
32
- * @category PHPExcel
33
- * @package PHPExcel
34
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
36
- * @version ##VERSION##, ##DATE##
37
- */
38
-
39
- /** Include path **/
40
- set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../Classes/');
41
-
42
- /** PHPExcel_IOFactory */
43
- include 'PHPExcel/IOFactory.php';
44
-
45
-
46
- // Change these values to select the Rendering library that you wish to use
47
- // and its directory location on your server
48
- $rendererName = PHPExcel_Settings::CHART_RENDERER_JPGRAPH;
49
- $rendererLibrary = 'jpgraph3.5.0b1/src/';
50
- $rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary;
51
-
52
-
53
- if (!PHPExcel_Settings::setChartRenderer(
54
- $rendererName,
55
- $rendererLibraryPath
56
- )) {
57
- die(
58
- 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
59
- EOL .
60
- 'at the top of this script as appropriate for your directory structure'
61
- );
62
- }
63
-
64
-
65
- $inputFileType = 'Excel2007';
66
- $inputFileNames = 'templates/32readwrite*[0-9].xlsx';
67
-
68
- if ((isset($argc)) && ($argc > 1)) {
69
- $inputFileNames = array();
70
- for($i = 1; $i < $argc; ++$i) {
71
- $inputFileNames[] = dirname(__FILE__) . '/templates/' . $argv[$i];
72
- }
73
- } else {
74
- $inputFileNames = glob($inputFileNames);
75
- }
76
- foreach($inputFileNames as $inputFileName) {
77
- $inputFileNameShort = basename($inputFileName);
78
-
79
- if (!file_exists($inputFileName)) {
80
- echo date('H:i:s') , " File " , $inputFileNameShort , ' does not exist' , EOL;
81
- continue;
82
- }
83
-
84
- echo date('H:i:s') , " Load Test from $inputFileType file " , $inputFileNameShort , EOL;
85
-
86
- $objReader = PHPExcel_IOFactory::createReader($inputFileType);
87
- $objReader->setIncludeCharts(TRUE);
88
- $objPHPExcel = $objReader->load($inputFileName);
89
-
90
-
91
- echo date('H:i:s') , " Iterate worksheets looking at the charts" , EOL;
92
- foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
93
- $sheetName = $worksheet->getTitle();
94
- echo 'Worksheet: ' , $sheetName , EOL;
95
-
96
- $chartNames = $worksheet->getChartNames();
97
- if(empty($chartNames)) {
98
- echo ' There are no charts in this worksheet' , EOL;
99
- } else {
100
- natsort($chartNames);
101
- foreach($chartNames as $i => $chartName) {
102
- $chart = $worksheet->getChartByName($chartName);
103
- if (!is_null($chart->getTitle())) {
104
- $caption = '"' . implode(' ',$chart->getTitle()->getCaption()) . '"';
105
- } else {
106
- $caption = 'Untitled';
107
- }
108
- echo ' ' , $chartName , ' - ' , $caption , EOL;
109
- echo str_repeat(' ',strlen($chartName)+3);
110
-
111
- $jpegFile = '35'.str_replace('.xlsx', '.jpg', substr($inputFileNameShort,2));
112
- if (file_exists($jpegFile)) {
113
- unlink($jpegFile);
114
- }
115
- try {
116
- $chart->render($jpegFile);
117
- } catch (Exception $e) {
118
- echo 'Error rendering chart: ',$e->getMessage();
119
- }
120
- }
121
- }
122
- }
123
-
124
-
125
- $objPHPExcel->disconnectWorksheets();
126
- unset($objPHPExcel);
127
- }
128
-
129
- // Echo memory peak usage
130
- echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
131
-
132
- // Echo done
133
- echo date('H:i:s') , " Done rendering charts as images" , EOL;
134
- echo 'Image files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/36chartreadwriteHTML.php DELETED
@@ -1,151 +0,0 @@
1
- <?php
2
-
3
- /** Error reporting */
4
- error_reporting(E_ALL);
5
- ini_set('display_errors', TRUE);
6
- ini_set('display_startup_errors', TRUE);
7
- date_default_timezone_set('Europe/London');
8
-
9
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
10
-
11
- date_default_timezone_set('Europe/London');
12
-
13
- /**
14
- * PHPExcel
15
- *
16
- * Copyright (C) 2006 - 2014 PHPExcel
17
- *
18
- * This library is free software; you can redistribute it and/or
19
- * modify it under the terms of the GNU Lesser General Public
20
- * License as published by the Free Software Foundation; either
21
- * version 2.1 of the License, or (at your option) any later version.
22
- *
23
- * This library is distributed in the hope that it will be useful,
24
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
25
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
- * Lesser General Public License for more details.
27
- *
28
- * You should have received a copy of the GNU Lesser General Public
29
- * License along with this library; if not, write to the Free Software
30
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31
- *
32
- * @category PHPExcel
33
- * @package PHPExcel
34
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
36
- * @version ##VERSION##, ##DATE##
37
- */
38
-
39
- /** Include path **/
40
- set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../Classes/');
41
-
42
- /** PHPExcel_IOFactory */
43
- include 'PHPExcel/IOFactory.php';
44
-
45
-
46
- // Change these values to select the Rendering library that you wish to use
47
- // and its directory location on your server
48
- $rendererName = PHPExcel_Settings::CHART_RENDERER_JPGRAPH;
49
- $rendererLibrary = 'jpgraph3.5.0b1/src';
50
- $rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary;
51
-
52
-
53
- if (!PHPExcel_Settings::setChartRenderer(
54
- $rendererName,
55
- $rendererLibraryPath
56
- )) {
57
- die(
58
- 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
59
- EOL .
60
- 'at the top of this script as appropriate for your directory structure'
61
- );
62
- }
63
-
64
-
65
- $inputFileType = 'Excel2007';
66
- $inputFileNames = 'templates/36write*.xlsx';
67
-
68
- if ((isset($argc)) && ($argc > 1)) {
69
- $inputFileNames = array();
70
- for($i = 1; $i < $argc; ++$i) {
71
- $inputFileNames[] = dirname(__FILE__) . '/templates/' . $argv[$i];
72
- }
73
- } else {
74
- $inputFileNames = glob($inputFileNames);
75
- }
76
- foreach($inputFileNames as $inputFileName) {
77
- $inputFileNameShort = basename($inputFileName);
78
-
79
- if (!file_exists($inputFileName)) {
80
- echo date('H:i:s') , " File " , $inputFileNameShort , ' does not exist' , EOL;
81
- continue;
82
- }
83
-
84
- echo date('H:i:s') , " Load Test from $inputFileType file " , $inputFileNameShort , EOL;
85
-
86
- $objReader = PHPExcel_IOFactory::createReader($inputFileType);
87
- $objReader->setIncludeCharts(TRUE);
88
- $objPHPExcel = $objReader->load($inputFileName);
89
-
90
-
91
- echo date('H:i:s') , " Iterate worksheets looking at the charts" , EOL;
92
- foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
93
- $sheetName = $worksheet->getTitle();
94
- echo 'Worksheet: ' , $sheetName , EOL;
95
-
96
- $chartNames = $worksheet->getChartNames();
97
- if(empty($chartNames)) {
98
- echo ' There are no charts in this worksheet' , EOL;
99
- } else {
100
- natsort($chartNames);
101
- foreach($chartNames as $i => $chartName) {
102
- $chart = $worksheet->getChartByName($chartName);
103
- if (!is_null($chart->getTitle())) {
104
- $caption = '"' . implode(' ',$chart->getTitle()->getCaption()) . '"';
105
- } else {
106
- $caption = 'Untitled';
107
- }
108
- echo ' ' , $chartName , ' - ' , $caption , EOL;
109
- echo str_repeat(' ',strlen($chartName)+3);
110
- $groupCount = $chart->getPlotArea()->getPlotGroupCount();
111
- if ($groupCount == 1) {
112
- $chartType = $chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType();
113
- echo ' ' , $chartType , EOL;
114
- } else {
115
- $chartTypes = array();
116
- for($i = 0; $i < $groupCount; ++$i) {
117
- $chartTypes[] = $chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType();
118
- }
119
- $chartTypes = array_unique($chartTypes);
120
- if (count($chartTypes) == 1) {
121
- $chartType = 'Multiple Plot ' . array_pop($chartTypes);
122
- echo ' ' , $chartType , EOL;
123
- } elseif (count($chartTypes) == 0) {
124
- echo ' *** Type not yet implemented' , EOL;
125
- } else {
126
- echo ' Combination Chart' , EOL;
127
- }
128
- }
129
- }
130
- }
131
- }
132
-
133
-
134
- $outputFileName = str_replace('.xlsx', '.html', basename($inputFileName));
135
-
136
- echo date('H:i:s') , " Write Tests to HTML file " , EOL;
137
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML');
138
- $objWriter->setIncludeCharts(TRUE);
139
- $objWriter->save($outputFileName);
140
- echo date('H:i:s') , " File written to " , $outputFileName , EOL;
141
-
142
- $objPHPExcel->disconnectWorksheets();
143
- unset($objPHPExcel);
144
- }
145
-
146
- // Echo memory peak usage
147
- echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
148
-
149
- // Echo done
150
- echo date('H:i:s') , " Done writing files" , EOL;
151
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/36chartreadwritePDF.php DELETED
@@ -1,174 +0,0 @@
1
- <?php
2
-
3
- /** Error reporting */
4
- error_reporting(E_ALL);
5
- ini_set('display_errors', TRUE);
6
- ini_set('display_startup_errors', TRUE);
7
- date_default_timezone_set('Europe/London');
8
-
9
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
10
-
11
- date_default_timezone_set('Europe/London');
12
-
13
- /**
14
- * PHPExcel
15
- *
16
- * Copyright (C) 2006 - 2014 PHPExcel
17
- *
18
- * This library is free software; you can redistribute it and/or
19
- * modify it under the terms of the GNU Lesser General Public
20
- * License as published by the Free Software Foundation; either
21
- * version 2.1 of the License, or (at your option) any later version.
22
- *
23
- * This library is distributed in the hope that it will be useful,
24
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
25
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
- * Lesser General Public License for more details.
27
- *
28
- * You should have received a copy of the GNU Lesser General Public
29
- * License along with this library; if not, write to the Free Software
30
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31
- *
32
- * @category PHPExcel
33
- * @package PHPExcel
34
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
36
- * @version ##VERSION##, ##DATE##
37
- */
38
-
39
- /** Include path **/
40
- set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../Classes/');
41
-
42
- /** PHPExcel_IOFactory */
43
- include 'PHPExcel/IOFactory.php';
44
-
45
-
46
- // Change these values to select the Rendering library that you wish to use
47
- // for PDF files, and its directory location on your server
48
- //$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
49
- $rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
50
- //$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
51
- //$rendererLibrary = 'tcPDF5.9';
52
- $rendererLibrary = 'mPDF5.4';
53
- //$rendererLibrary = 'domPDF0.6.0beta3';
54
- $rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary;
55
-
56
-
57
- if (!PHPExcel_Settings::setPdfRenderer(
58
- $rendererName,
59
- $rendererLibraryPath
60
- )) {
61
- die(
62
- 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
63
- EOL .
64
- 'at the top of this script as appropriate for your directory structure'
65
- );
66
- }
67
-
68
-
69
- // Change these values to select the Rendering library that you wish to use
70
- // for Chart images, and its directory location on your server
71
- $rendererName = PHPExcel_Settings::CHART_RENDERER_JPGRAPH;
72
- $rendererLibrary = 'jpgraph3.5.0b1/src';
73
- $rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary;
74
-
75
-
76
- if (!PHPExcel_Settings::setChartRenderer(
77
- $rendererName,
78
- $rendererLibraryPath
79
- )) {
80
- die(
81
- 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
82
- EOL .
83
- 'at the top of this script as appropriate for your directory structure'
84
- );
85
- }
86
-
87
-
88
- $inputFileType = 'Excel2007';
89
- $inputFileNames = 'templates/36write*.xlsx';
90
-
91
- if ((isset($argc)) && ($argc > 1)) {
92
- $inputFileNames = array();
93
- for($i = 1; $i < $argc; ++$i) {
94
- $inputFileNames[] = dirname(__FILE__) . '/templates/' . $argv[$i];
95
- }
96
- } else {
97
- $inputFileNames = glob($inputFileNames);
98
- }
99
- foreach($inputFileNames as $inputFileName) {
100
- $inputFileNameShort = basename($inputFileName);
101
-
102
- if (!file_exists($inputFileName)) {
103
- echo date('H:i:s') , " File " , $inputFileNameShort , ' does not exist' , EOL;
104
- continue;
105
- }
106
-
107
- echo date('H:i:s') , " Load Test from $inputFileType file " , $inputFileNameShort , EOL;
108
-
109
- $objReader = PHPExcel_IOFactory::createReader($inputFileType);
110
- $objReader->setIncludeCharts(TRUE);
111
- $objPHPExcel = $objReader->load($inputFileName);
112
-
113
-
114
- echo date('H:i:s') , " Iterate worksheets looking at the charts" , EOL;
115
- foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
116
- $sheetName = $worksheet->getTitle();
117
- echo 'Worksheet: ' , $sheetName , EOL;
118
-
119
- $chartNames = $worksheet->getChartNames();
120
- if(empty($chartNames)) {
121
- echo ' There are no charts in this worksheet' , EOL;
122
- } else {
123
- natsort($chartNames);
124
- foreach($chartNames as $i => $chartName) {
125
- $chart = $worksheet->getChartByName($chartName);
126
- if (!is_null($chart->getTitle())) {
127
- $caption = '"' . implode(' ',$chart->getTitle()->getCaption()) . '"';
128
- } else {
129
- $caption = 'Untitled';
130
- }
131
- echo ' ' , $chartName , ' - ' , $caption , EOL;
132
- echo str_repeat(' ',strlen($chartName)+3);
133
- $groupCount = $chart->getPlotArea()->getPlotGroupCount();
134
- if ($groupCount == 1) {
135
- $chartType = $chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType();
136
- echo ' ' , $chartType , EOL;
137
- } else {
138
- $chartTypes = array();
139
- for($i = 0; $i < $groupCount; ++$i) {
140
- $chartTypes[] = $chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType();
141
- }
142
- $chartTypes = array_unique($chartTypes);
143
- if (count($chartTypes) == 1) {
144
- $chartType = 'Multiple Plot ' . array_pop($chartTypes);
145
- echo ' ' , $chartType , EOL;
146
- } elseif (count($chartTypes) == 0) {
147
- echo ' *** Type not yet implemented' , EOL;
148
- } else {
149
- echo ' Combination Chart' , EOL;
150
- }
151
- }
152
- }
153
- }
154
- }
155
-
156
-
157
- $outputFileName = str_replace('.xlsx', '.pdf', basename($inputFileName));
158
-
159
- echo date('H:i:s') , " Write Tests to HTML file " , EOL;
160
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
161
- $objWriter->setIncludeCharts(TRUE);
162
- $objWriter->save($outputFileName);
163
- echo date('H:i:s') , " File written to " , $outputFileName , EOL;
164
-
165
- $objPHPExcel->disconnectWorksheets();
166
- unset($objPHPExcel);
167
- }
168
-
169
- // Echo memory peak usage
170
- echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
171
-
172
- // Echo done
173
- echo date('H:i:s') , " Done writing files" , EOL;
174
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/37page_layout_view.php DELETED
@@ -1,83 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- /** Include PHPExcel */
37
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
38
-
39
-
40
- // Create new PHPExcel object
41
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
42
- $objPHPExcel = new PHPExcel();
43
-
44
- // Set document properties
45
- echo date('H:i:s') , " Set document properties" , EOL;
46
- $objPHPExcel->getProperties()->setCreator("PHPOffice")
47
- ->setLastModifiedBy("PHPOffice")
48
- ->setTitle("PHPExcel Test Document")
49
- ->setSubject("PHPExcel Test Document")
50
- ->setDescription("Test document for PHPExcel, generated using PHP classes.")
51
- ->setKeywords("Office PHPExcel php")
52
- ->setCategory("Test result file");
53
-
54
-
55
- // Add some data
56
- echo date('H:i:s') , " Add some data" , EOL;
57
- $objPHPExcel->setActiveSheetIndex(0)
58
- ->setCellValue('A1', 'Hello')
59
- ->setCellValue('B2', 'world!');
60
-
61
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
62
- $objPHPExcel->setActiveSheetIndex(0);
63
-
64
- // Set the page layout view as page layout
65
- $objPHPExcel->getActiveSheet()->getSheetView()->setView(PHPExcel_Worksheet_SheetView::SHEETVIEW_PAGE_LAYOUT);
66
-
67
- // Save Excel 2007 file
68
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
69
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
70
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
71
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
72
- // Save Excel5 file
73
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
74
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
75
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
76
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
77
-
78
- // Echo memory peak usage
79
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
80
-
81
- // Echo done
82
- echo date('H:i:s') , " Done writing files" , EOL;
83
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/38cloneWorksheet.php DELETED
@@ -1,118 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- /** Include PHPExcel */
37
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
38
-
39
-
40
- // Create new PHPExcel object
41
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
42
- $objPHPExcel = new PHPExcel();
43
-
44
- // Set document properties
45
- echo date('H:i:s') , " Set document properties" , EOL;
46
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
47
- ->setLastModifiedBy("Maarten Balliauw")
48
- ->setTitle("PHPExcel Test Document")
49
- ->setSubject("PHPExcel Test Document")
50
- ->setDescription("Test document for PHPExcel, generated using PHP classes.")
51
- ->setKeywords("office PHPExcel php")
52
- ->setCategory("Test result file");
53
-
54
-
55
- // Add some data
56
- echo date('H:i:s') , " Add some data" , EOL;
57
- $objPHPExcel->setActiveSheetIndex(0)
58
- ->setCellValue('A1', 'Hello')
59
- ->setCellValue('B2', 'world!')
60
- ->setCellValue('C1', 'Hello')
61
- ->setCellValue('D2', 'world!');
62
-
63
- // Miscellaneous glyphs, UTF-8
64
- $objPHPExcel->setActiveSheetIndex(0)
65
- ->setCellValue('A4', 'Miscellaneous glyphs')
66
- ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
67
-
68
-
69
- $objPHPExcel->getActiveSheet()->setCellValue('A8',"Hello\nWorld");
70
- $objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1);
71
- $objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true);
72
-
73
-
74
- // Rename worksheet
75
- echo date('H:i:s') , " Rename worksheet" , EOL;
76
- $objPHPExcel->getActiveSheet()->setTitle('Simple');
77
-
78
-
79
- // Clone worksheet
80
- echo date('H:i:s') , " Clone worksheet" , EOL;
81
- $clonedSheet = clone $objPHPExcel->getActiveSheet();
82
- $clonedSheet
83
- ->setCellValue('A1', 'Goodbye')
84
- ->setCellValue('A2', 'cruel')
85
- ->setCellValue('C1', 'Goodbye')
86
- ->setCellValue('C2', 'cruel');
87
-
88
- // Rename cloned worksheet
89
- echo date('H:i:s') , " Rename cloned worksheet" , EOL;
90
- $clonedSheet->setTitle('Simple Clone');
91
- $objPHPExcel->addSheet($clonedSheet);
92
-
93
-
94
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
95
- $objPHPExcel->setActiveSheetIndex(0);
96
-
97
-
98
- // Save Excel 2007 file
99
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
100
- $callStartTime = microtime(true);
101
-
102
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
103
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
104
- $callEndTime = microtime(true);
105
- $callTime = $callEndTime - $callStartTime;
106
-
107
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
108
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
109
- // Echo memory usage
110
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
111
-
112
-
113
- // Echo memory peak usage
114
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
115
-
116
- // Echo done
117
- echo date('H:i:s') , " Done writing files" , EOL;
118
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/39dropdown.php DELETED
@@ -1,175 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- /** Include PHPExcel */
37
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
38
-
39
-
40
- // Create new PHPExcel object
41
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
42
- $objPHPExcel = new PHPExcel();
43
-
44
- // Set document properties
45
- echo date('H:i:s') , " Set document properties" , EOL;
46
- $objPHPExcel->getProperties()
47
- ->setCreator("PHPOffice")
48
- ->setLastModifiedBy("PHPOffice")
49
- ->setTitle("PHPExcel Test Document")
50
- ->setSubject("PHPExcel Test Document")
51
- ->setDescription("Test document for PHPExcel, generated using PHP classes.")
52
- ->setKeywords("Office PHPExcel php")
53
- ->setCategory("Test result file");
54
-
55
-
56
- function transpose($value) {
57
- return array($value);
58
- }
59
-
60
- // Add some data
61
- $continentColumn = 'D';
62
- $column = 'F';
63
-
64
- // Set data for dropdowns
65
- foreach(glob('./data/continents/*') as $key => $filename) {
66
- $continent = pathinfo($filename, PATHINFO_FILENAME);
67
- echo "Loading $continent", EOL;
68
- $continent = str_replace(' ','_',$continent);
69
- $countries = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
70
- $countryCount = count($countries);
71
-
72
- // Transpose $countries from a row to a column array
73
- $countries = array_map('transpose', $countries);
74
- $objPHPExcel->getActiveSheet()
75
- ->fromArray($countries, null, $column . '1');
76
- $objPHPExcel->addNamedRange(
77
- new PHPExcel_NamedRange(
78
- $continent,
79
- $objPHPExcel->getActiveSheet(), $column . '1:' . $column . $countryCount
80
- )
81
- );
82
- $objPHPExcel->getActiveSheet()
83
- ->getColumnDimension($column)
84
- ->setVisible(false);
85
-
86
- $objPHPExcel->getActiveSheet()
87
- ->setCellValue($continentColumn . ($key+1), $continent);
88
-
89
- ++$column;
90
- }
91
-
92
- // Hide the dropdown data
93
- $objPHPExcel->getActiveSheet()
94
- ->getColumnDimension($continentColumn)
95
- ->setVisible(false);
96
-
97
- $objPHPExcel->addNamedRange(
98
- new PHPExcel_NamedRange(
99
- 'Continents',
100
- $objPHPExcel->getActiveSheet(), $continentColumn . '1:' . $continentColumn . ($key+1)
101
- )
102
- );
103
-
104
-
105
- // Set selection cells
106
- $objPHPExcel->getActiveSheet()
107
- ->setCellValue('A1', 'Continent:');
108
- $objPHPExcel->getActiveSheet()
109
- ->setCellValue('B1', 'Select continent');
110
- $objPHPExcel->getActiveSheet()
111
- ->setCellValue('B3', '=' . $column . 1);
112
- $objPHPExcel->getActiveSheet()
113
- ->setCellValue('B3', 'Select country');
114
- $objPHPExcel->getActiveSheet()
115
- ->getStyle('A1:A3')
116
- ->getFont()->setBold(true);
117
-
118
- // Set linked validators
119
- $objValidation = $objPHPExcel->getActiveSheet()
120
- ->getCell('B1')
121
- ->getDataValidation();
122
- $objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST )
123
- ->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION )
124
- ->setAllowBlank(false)
125
- ->setShowInputMessage(true)
126
- ->setShowErrorMessage(true)
127
- ->setShowDropDown(true)
128
- ->setErrorTitle('Input error')
129
- ->setError('Continent is not in the list.')
130
- ->setPromptTitle('Pick from the list')
131
- ->setPrompt('Please pick a continent from the drop-down list.')
132
- ->setFormula1('=Continents');
133
-
134
- $objPHPExcel->getActiveSheet()
135
- ->setCellValue('A3', 'Country:');
136
- $objPHPExcel->getActiveSheet()
137
- ->getStyle('A3')
138
- ->getFont()->setBold(true);
139
-
140
- $objValidation = $objPHPExcel->getActiveSheet()
141
- ->getCell('B3')
142
- ->getDataValidation();
143
- $objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST )
144
- ->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION )
145
- ->setAllowBlank(false)
146
- ->setShowInputMessage(true)
147
- ->setShowErrorMessage(true)
148
- ->setShowDropDown(true)
149
- ->setErrorTitle('Input error')
150
- ->setError('Country is not in the list.')
151
- ->setPromptTitle('Pick from the list')
152
- ->setPrompt('Please pick a country from the drop-down list.')
153
- ->setFormula1('=INDIRECT($B$1)');
154
-
155
-
156
- $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(12);
157
- $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(30);
158
-
159
-
160
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
161
- $objPHPExcel->setActiveSheetIndex(0);
162
-
163
- // Save Excel 2007 file
164
- // This linked validation list method only seems to work for Excel2007, not for Excel5
165
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
166
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
167
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
168
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
169
-
170
- // Echo memory peak usage
171
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
172
-
173
- // Echo done
174
- echo date('H:i:s') , " Done writing files" , EOL;
175
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/40duplicateStyle.php DELETED
@@ -1,51 +0,0 @@
1
- <?php
2
- /** Error reporting */
3
- error_reporting(E_ALL);
4
- ini_set('display_errors', TRUE);
5
- ini_set('display_startup_errors', TRUE);
6
- date_default_timezone_set('Europe/London');
7
-
8
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
9
-
10
- date_default_timezone_set('Europe/London');
11
-
12
- /** Include PHPExcel */
13
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
14
-
15
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
16
- $objPHPExcel = new PHPExcel();
17
- $worksheet = $objPHPExcel->getActiveSheet();
18
-
19
- echo date('H:i:s') , " Create styles array" , EOL;
20
- $styles = array();
21
- for ($i = 0; $i < 10; $i++) {
22
- $style = new PHPExcel_Style();
23
- $style->getFont()->setSize($i + 4);
24
- $styles[] = $style;
25
- }
26
-
27
- echo date('H:i:s') , " Add data (begin)" , EOL;
28
- $t = microtime(true);
29
- for ($col = 0; $col < 50; $col++) {
30
- for ($row = 0; $row < 100; $row++) {
31
- $str = ($row + $col);
32
- $style = $styles[$row % 10];
33
- $coord = PHPExcel_Cell::stringFromColumnIndex($col) . ($row + 1);
34
- $worksheet->setCellValue($coord, $str);
35
- $worksheet->duplicateStyle($style, $coord);
36
- }
37
- }
38
- $d = microtime(true) - $t;
39
- echo date('H:i:s') , " Add data (end), time: " . round($d, 2) . " s", EOL;
40
-
41
-
42
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
43
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
44
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
45
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
46
-
47
-
48
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
49
-
50
- echo date('H:i:s') , " Done writing file" , EOL;
51
- echo 'File has been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/41password.php DELETED
@@ -1,84 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
-
33
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
34
-
35
- date_default_timezone_set('Europe/London');
36
-
37
- include "05featuredemo.inc.php";
38
-
39
- /** Include PHPExcel_IOFactory */
40
- require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
41
-
42
-
43
- // Set password against the spreadsheet file
44
- $objPHPExcel->getSecurity()->setLockWindows(true);
45
- $objPHPExcel->getSecurity()->setLockStructure(true);
46
- $objPHPExcel->getSecurity()->setWorkbookPassword('secret');
47
-
48
-
49
- // Save Excel 2007 file
50
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
51
- $callStartTime = microtime(true);
52
-
53
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
54
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
55
- $callEndTime = microtime(true);
56
- $callTime = $callEndTime - $callStartTime;
57
-
58
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
59
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
60
- // Echo memory usage
61
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
62
-
63
-
64
- // Save Excel 95 file
65
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
66
- $callStartTime = microtime(true);
67
-
68
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
69
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
70
- $callEndTime = microtime(true);
71
- $callTime = $callEndTime - $callStartTime;
72
-
73
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
74
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
75
- // Echo memory usage
76
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
77
-
78
-
79
- // Echo memory peak usage
80
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
81
-
82
- // Echo done
83
- echo date('H:i:s') , " Done writing files" , EOL;
84
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/42richText.php DELETED
@@ -1,159 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
- ini_set('display_errors', TRUE);
31
- ini_set('display_startup_errors', TRUE);
32
- date_default_timezone_set('Europe/London');
33
-
34
- define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
35
-
36
- /** Include PHPExcel */
37
- require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
38
-
39
-
40
- // Create new PHPExcel object
41
- echo date('H:i:s') , " Create new PHPExcel object" , EOL;
42
- $objPHPExcel = new PHPExcel();
43
-
44
- // Set document properties
45
- echo date('H:i:s') , " Set document properties" , EOL;
46
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
47
- ->setLastModifiedBy("Maarten Balliauw")
48
- ->setTitle("PHPExcel Test Document")
49
- ->setSubject("PHPExcel Test Document")
50
- ->setDescription("Test document for PHPExcel, generated using PHP classes.")
51
- ->setKeywords("office PHPExcel php")
52
- ->setCategory("Test result file");
53
-
54
-
55
- // Add some data
56
- echo date('H:i:s') , " Add some data" , EOL;
57
-
58
- $html1='<font color="#0000ff">
59
- <h1 align="center">My very first example of rich text<br />generated from html markup</h1>
60
- <p>
61
- <font size="14" COLOR="rgb(0,255,128)">
62
- <b>This block</b> contains an <i>italicized</i> word;
63
- while this block uses an <u>underline</u>.
64
- </font>
65
- </p>
66
- <p align="right"><font size="9" color="red">
67
- I want to eat <ins><del>healthy food</del><strong>pizza</strong></ins>.
68
- </font>
69
- ';
70
-
71
- $html2='<p>
72
- <font color="#ff0000">
73
- 100&deg;C is a hot temperature
74
- </font>
75
- <br>
76
- <font color="#0080ff">
77
- 10&deg;F is cold
78
- </font>
79
- </p>';
80
-
81
- $html3='2<sup>3</sup> equals 8';
82
-
83
- $html4='H<sub>2</sub>SO<sub>4</sub> is the chemical formula for Sulphuric acid';
84
-
85
-
86
- $wizard = new PHPExcel_Helper_HTML;
87
- $richText = $wizard->toRichTextObject($html1);
88
-
89
- $objPHPExcel->setActiveSheetIndex(0)
90
- ->setCellValue('A1', $richText);
91
-
92
- $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(48);
93
- $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
94
- $objPHPExcel->getActiveSheet()->getStyle('A1')
95
- ->getAlignment()
96
- ->setWrapText(true);
97
-
98
- $richText = $wizard->toRichTextObject($html2);
99
-
100
- $objPHPExcel->setActiveSheetIndex(0)
101
- ->setCellValue('A2', $richText);
102
-
103
- $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
104
- $objPHPExcel->getActiveSheet()->getStyle('A2')
105
- ->getAlignment()
106
- ->setWrapText(true);
107
-
108
- $objPHPExcel->setActiveSheetIndex(0)
109
- ->setCellValue('A3', $wizard->toRichTextObject($html3));
110
-
111
- $objPHPExcel->setActiveSheetIndex(0)
112
- ->setCellValue('A4', $wizard->toRichTextObject($html4));
113
-
114
-
115
- // Rename worksheet
116
- echo date('H:i:s') , " Rename worksheet" , EOL;
117
- $objPHPExcel->getActiveSheet()->setTitle('Simple');
118
-
119
-
120
- // Set active sheet index to the first sheet, so Excel opens this as the first sheet
121
- $objPHPExcel->setActiveSheetIndex(0);
122
-
123
-
124
- // Save Excel 2007 file
125
- echo date('H:i:s') , " Write to Excel2007 format" , EOL;
126
- $callStartTime = microtime(true);
127
-
128
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
129
- $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
130
- $callEndTime = microtime(true);
131
- $callTime = $callEndTime - $callStartTime;
132
-
133
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
134
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
135
- // Echo memory usage
136
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
137
-
138
-
139
- // Save Excel 95 file
140
- echo date('H:i:s') , " Write to Excel5 format" , EOL;
141
- $callStartTime = microtime(true);
142
-
143
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
144
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
145
- $callEndTime = microtime(true);
146
- $callTime = $callEndTime - $callStartTime;
147
-
148
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
149
- echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
150
- // Echo memory usage
151
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
152
-
153
-
154
- // Echo memory peak usage
155
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
156
-
157
- // Echo done
158
- echo date('H:i:s') , " Done writing files" , EOL;
159
- echo 'Files have been created in ' , getcwd() , EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/Excel2003XMLReader.php DELETED
@@ -1,61 +0,0 @@
1
- <?php
2
- /**
3
- * PHPExcel
4
- *
5
- * Copyright (C) 2006 - 2014 PHPExcel
6
- *
7
- * This library is free software; you can redistribute it and/or
8
- * modify it under the terms of the GNU Lesser General Public
9
- * License as published by the Free Software Foundation; either
10
- * version 2.1 of the License, or (at your option) any later version.
11
- *
12
- * This library is distributed in the hope that it will be useful,
13
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- * Lesser General Public License for more details.
16
- *
17
- * You should have received a copy of the GNU Lesser General Public
18
- * License along with this library; if not, write to the Free Software
19
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
- *
21
- * @category PHPExcel
22
- * @package PHPExcel
23
- * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24
- * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25
- * @version ##VERSION##, ##DATE##
26
- */
27
-
28
- /** Error reporting */
29
- error_reporting(E_ALL);
30
-
31
- date_default_timezone_set('Europe/London');
32
-
33
- /** PHPExcel_IOFactory */
34
- require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
35
-
36
-
37
- echo date('H:i:s') , " Load from Excel2003XML file" , PHP_EOL;
38
- $callStartTime = microtime(true);
39
-
40
- $objReader = PHPExcel_IOFactory::createReader('Excel2003XML');
41
- $objPHPExcel = $objReader->load("Excel2003XMLTest.xml");
42
-
43
-
44
- $callEndTime = microtime(true);
45
- $callTime = $callEndTime - $callStartTime;
46
- echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , PHP_EOL;
47
- // Echo memory usage
48
- echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , PHP_EOL;
49
-
50
-
51
- echo date('H:i:s') , " Write to Excel5 format" , PHP_EOL;
52
- $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
53
- $objWriter->save(str_replace('.php', '.xls', __FILE__));
54
- echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', __FILE__) , PHP_EOL;
55
-
56
-
57
- // Echo memory peak usage
58
- echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL;
59
-
60
- // Echo done
61
- echo date('H:i:s') , " Done writing file" , PHP_EOL;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpexcel/Examples/Excel2003XMLTest.xml DELETED
@@ -1 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?><?mso-application progid="Excel.Sheet"?><Workbook xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel"><OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office"><Colors><Color><Index>3</Index><RGB>#000000</RGB></Color><Color><Index>4</Index><RGB>#0000ff</RGB></Color><Color><Index>5</Index><RGB>#008000</RGB></Color><Color><Index>6</Index><RGB>#00ccff</RGB></Color><Color><Index>7</Index><RGB>#800080</RGB></Color><Color><Index>8</Index><RGB>#993366</RGB></Color><Color><Index>9</Index><RGB>#c0c0c0</RGB></Color><Color><Index>10</Index><RGB>#c47512</RGB></Color><Color><Index>11</Index><RGB>#ccffcc</RGB></Color><Color><Index>12</Index><RGB>#ddbc7d</RGB></Color><Color><Index>13</Index><RGB>#ff0000</RGB></Color><Color><Index>14</Index><RGB>#ff00ff</RGB></Color><Color><Index>15</Index><RGB>#ff6600</RGB></Color><Color><Index>16</Index><RGB>#ff9900</RGB></Color><Color><Index>17</Index><RGB>#ff99cc</RGB></Color><Color><Index>18</Index><RGB>#ffff00</RGB></Color></Colors></OfficeDocumentSettings><ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"><WindowHeight>9000</WindowHeight><WindowWidth>13860</WindowWidth><WindowTopX>240</WindowTopX><WindowTopY>75</WindowTopY><ProtectStructure>False</ProtectStructure><ProtectWindows>False</ProtectWindows></ExcelWorkbook><Styles><Style ss:ID="Default" ss:Name="Default"/><Style ss:ID="Result" ss:Name="Result"><Font ss:Bold="1" ss:Italic="1" ss:Underline="Single"/></Style><Style ss:ID="Result2" ss:Name="Result2"><Font ss:Bold="1" ss:Italic="1" ss:Underline="Single"/><NumberFormat ss:Format="Currency"/></Style><Style ss:ID="Heading" ss:Name="Heading"><Font ss:Bold="1" ss:Italic="1" ss:Size="16"/></Style><Style ss:ID="Heading1" ss:Name="Heading1"><Font ss:Bold="1" ss:Italic="1" ss:Size="16"/></Style><Style ss:ID="Gnumeric-default" ss:Name="Gnumeric-default"><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="co1"/><Style ss:ID="co2"/><Style ss:ID="co3"/><Style ss:ID="co4"/><Style ss:ID="co5"/><Style ss:ID="co6"/><Style ss:ID="co7"/><Style ss:ID="co8"/><Style ss:ID="co9"/><Style ss:ID="ta1"/><Style ss:ID="ce1"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Bold="1" ss:Color="#ff0000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce2"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Bold="1" ss:Color="#000000" ss:FontName="Arial1" ss:Italic="1" ss:Size="11"/></Style><Style ss:ID="ce3"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11" ss:Underline="Single"/></Style><Style ss:ID="ce4"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce5"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce6"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11" ss:Underline="Single"/></Style><Style ss:ID="ce7"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11" ss:Underline="Double"/></Style><Style ss:ID="ce8"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11" ss:StrikeThrough="1"/></Style><Style ss:ID="ce9"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="Short Date"/></Style><Style ss:ID="ce10"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="Fixed"/></Style><Style ss:ID="ce11"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><NumberFormat ss:Format="Short Time"/></Style><Style ss:ID="ce12"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><NumberFormat ss:Format="General Date"/></Style><Style ss:ID="ce13"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce14"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10" ss:Underline="Single"/></Style><Style ss:ID="ce15"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10" ss:Underline="Double"/></Style><Style ss:ID="ce16"><Alignment ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce17"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#0000ff" ss:FontName="Sans" ss:Size="10" ss:Underline="Single"/></Style><Style ss:ID="ce18"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#00b050"/><Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#0070c0"/><Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#ffff00"/><Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#ff0000"/></Borders><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce19"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce20"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce21"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce22"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce23"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="90"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce24"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="General"/></Style><Style ss:ID="ce25"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><NumberFormat ss:Format="General"/></Style><Style ss:ID="ce26"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Bold="1" ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce27"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Italic="1" ss:Size="11"/></Style><Style ss:ID="ce28"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="45"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce29"><Alignment ss:Vertical="Top" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce30"><Alignment ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce31"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="-90"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce32"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce33"><Alignment ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce34"><Alignment ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce35"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="-45"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce36"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce37"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ff0000" ss:Pattern="Solid"/></Style><Style ss:ID="ce38"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ff9900" ss:Pattern="Solid"/></Style><Style ss:ID="ce39"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ffff00" ss:Pattern="Solid"/></Style><Style ss:ID="ce40"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#008000" ss:Pattern="Solid"/></Style><Style ss:ID="ce41"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#0000ff" ss:Pattern="Solid"/></Style><Style ss:ID="ce42"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#993366" ss:Pattern="Solid"/></Style><Style ss:ID="ce43"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ff99cc" ss:Pattern="Solid"/></Style><Style ss:ID="ce44"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ddbc7d" ss:Pattern="Solid"/></Style><Style ss:ID="ce45"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#00ccff" ss:Pattern="Solid"/></Style><Style ss:ID="ce46"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#ff0000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce47"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#ff6600" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce48"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#ffff00" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce49"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#008000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce50"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#0000ff" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce51"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#800080" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce52"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#ff00ff" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce53"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#c47512" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce54"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#ccffcc" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ff0000" ss:Pattern="Solid"/></Style><Style ss:ID="ce55"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce56"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce57"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce58"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce59"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce60"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce61"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce62"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce63"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce64"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce65"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Double" ss:Weight="3" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce66"><Alignment ss:Horizontal="Center" ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Bold="1" ss:Color="#000000" ss:FontName="Arial1" ss:Size="12"/></Style><Style ss:ID="ce67"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="General"/></Style><Style ss:ID="ce68"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="Medium Date"/></Style><Style ss:ID="ce69"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="Medium Time"/></Style><Style ss:ID="gr1"/><Style ss:ID="gr2"/><Style ss:ID="ta_extref"/><Style ss:ID="P1"><Font ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="T1"/></Styles><ss:Worksheet ss:Name="Sample Data"><Table ss:StyleID="ta1"><Column ss:Width="96.4913"/><Column ss:Span="1" ss:Width="48.3874"/><Column ss:Index="4" ss:Width="35.8866"/><Column ss:Span="6" ss:Width="48.3874"/><Column ss:Index="12" ss:Width="50.2583"/><Column ss:Span="1011" ss:Width="48.3874"/><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce1"><ss:Data xmlns="http://www.w3.org/TR/REC-html40" ss:Type="String">Test String 1</ss:Data><Comment><ss:Data xmlns="http://www.w3.org/TR/REC-html40"><Font html:Face="Sans" html:Size="10">Test for a simple colour-formatted string</Font></ss:Data></Comment></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">1</Data></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">5</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce2"><Data ss:Type="String">A</Data></Cell><Cell ss:StyleID="ce26"><Data ss:Type="String">E</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.B1]+[.C1]"><Data ss:Type="Number">6</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.E1]&amp;[.F1]"><Data ss:Type="String">AE</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce2"><Data ss:Type="String">Test - String 2</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">2</Data></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">6</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">B</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="String">F</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.B2]+[.C2]"><Data ss:Type="Number">8</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.E2]&amp;[.F2]"><Data ss:Type="String">BF</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce55"><Data ss:Type="String">Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce3"><Data ss:Type="String">Test #3</Data></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">3</Data></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">7</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce26"><Data ss:Type="String">C</Data></Cell><Cell ss:StyleID="ce2"><Data ss:Type="String">G</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.B3]+[.C3]"><Data ss:Type="Number">10</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.E3]&amp;[.F3]"><Data ss:Type="String">CG</Data></Cell><Cell ss:StyleID="ce37"><Data ss:Type="String">Red</Data></Cell><Cell ss:StyleID="ce46"><Data ss:Type="String">Red</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce56"><Data ss:Type="String">Dash</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce4"><Data ss:Type="String">Test with (") in string</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">4</Data></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">8</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce27"><Data ss:Type="String">D</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="String">H</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.B4]+[.C4]"><Data ss:Type="Number">12</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.E4]&amp;[.F4]"><Data ss:Type="String">DH</Data></Cell><Cell ss:StyleID="ce38"><Data ss:Type="String">Orange</Data></Cell><Cell ss:StyleID="ce47"><Data ss:Type="String">Orange</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce57"><Data ss:Type="String">Dash/Dot/Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=SUM([.B1:.B4])"><Data ss:Type="Number">10</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=SUM([.C1:.C4])"><Data ss:Type="Number">26</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=SUM([.B1:.C4])"><Data ss:Type="Number">36</Data></Cell><Cell ss:StyleID="ce39"><Data ss:Type="String">Yellow</Data></Cell><Cell ss:StyleID="ce48"><Data ss:Type="String">Yellow</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce58"><Data ss:Type="String">Dash/Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce6"><Data ss:Type="String">Test #3</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">1.23</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=TRUE()"><Data ss:Type="Boolean">1</Data></Cell><Cell ss:StyleID="ce24"><Data ss:Type="Boolean">1</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce40"><Data ss:Type="String">Green</Data></Cell><Cell ss:StyleID="ce49"><Data ss:Type="String">Green</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce56"><Data ss:Type="String">Thin Line</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce7"><Data ss:Type="String">Test #3</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">2.34</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=FALSE()"><Data ss:Type="Boolean">0</Data></Cell><Cell ss:StyleID="ce25"><Data ss:Type="Boolean">0</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=SUM(marksrange)"><Data ss:Type="Number">0</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce41"><Data ss:Type="String">Blue</Data></Cell><Cell ss:StyleID="ce50"><Data ss:Type="String">Blue</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce59"><Data ss:Type="String">Thick Dash/Dot/Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:Index="8" ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce8"><Data ss:Type="String">Test #3</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">3.45</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce42"><Data ss:Type="String">Purple</Data></Cell><Cell ss:StyleID="ce51"><Data ss:Type="String">Purple</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce60"><Data ss:Type="String">Variant Thick Dash/Dot/Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="13.4929"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce43"><Data ss:Type="String">Pink</Data></Cell><Cell ss:StyleID="ce52"><Data ss:Type="String">Pink</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce61"><Data ss:Type="String">Thick Dash/Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce9"><Data ss:Type="DateTime">1960-12-19T00:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce19"><Data ss:Type="String">TOP</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="Number">0</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce44"><Data ss:Type="String">Brown</Data></Cell><Cell ss:StyleID="ce53"><Data ss:Type="String">Brown</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce62"><Data ss:Type="String">Thick Dash</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce10"><Data ss:Type="Number">1.5</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=12/0"><Data ss:Type="Number">0</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce63"><Data ss:Type="String">Thick Line</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"