OLD | NEW |
| (Empty) |
1 # Copyright (c) 2009 The Chromium Authors. All rights reserved. | |
2 # Use of this source code is governed by a BSD-style license that can be | |
3 # found in the LICENSE file. | |
4 | |
5 { | |
6 'includes': [ | |
7 '../third_party/WebKit/WebKit/chromium/features.gypi', | |
8 '../third_party/WebKit/WebCore/WebCore.gypi', | |
9 ], | |
10 'variables': { | |
11 # TODO: remove this helper when we have loops in GYP | |
12 'apply_locales_cmd': ['python', '../chrome/tools/build/apply_locales.py',], | |
13 | |
14 # We can't turn on warnings on Windows and Linux until we upstream the | |
15 # WebKit API. | |
16 'conditions': [ | |
17 ['OS=="mac"', { | |
18 'chromium_code': 1, | |
19 }], | |
20 ], | |
21 | |
22 # List of DevTools source files, ordered by dependencies. It is used both | |
23 # for copying them to resource dir, and for generating 'devtools.html' file. | |
24 'devtools_files': [ | |
25 'glue/devtools/js/devtools.css', | |
26 'glue/devtools/js/base.js', | |
27 'glue/devtools/js/inspector_controller_impl.js', | |
28 'glue/devtools/js/debugger_agent.js', | |
29 '../v8/tools/codemap.js', | |
30 '../v8/tools/consarray.js', | |
31 '../v8/tools/csvparser.js', | |
32 '../v8/tools/logreader.js', | |
33 '../v8/tools/profile.js', | |
34 '../v8/tools/profile_view.js', | |
35 '../v8/tools/splaytree.js', | |
36 'glue/devtools/js/profiler_processor.js', | |
37 'glue/devtools/js/heap_profiler_panel.js', | |
38 'glue/devtools/js/devtools.js', | |
39 'glue/devtools/js/devtools_host_stub.js', | |
40 'glue/devtools/js/tests.js', | |
41 ], | |
42 | |
43 'debug_devtools%': 0, | |
44 }, | |
45 'targets': [ | |
46 { | |
47 # Currently, builders assume webkit.sln builds test_shell on windows. | |
48 # We should change this, but for now allows trybot runs. | |
49 # for now. | |
50 'target_name': 'pull_in_test_shell', | |
51 'type': 'none', | |
52 'conditions': [ | |
53 ['OS=="win"', { | |
54 'dependencies': [ | |
55 'tools/test_shell/test_shell.gyp:*', | |
56 ], | |
57 }], | |
58 ], | |
59 }, | |
60 { | |
61 'target_name': 'webkit_resources', | |
62 'type': 'none', | |
63 'msvs_guid': '0B469837-3D46-484A-AFB3-C5A6C68730B9', | |
64 'variables': { | |
65 'grit_path': '../tools/grit/grit.py', | |
66 'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/webkit', | |
67 }, | |
68 'actions': [ | |
69 { | |
70 'action_name': 'webkit_resources', | |
71 'variables': { | |
72 'input_path': 'glue/webkit_resources.grd', | |
73 }, | |
74 'inputs': [ | |
75 '<(input_path)', | |
76 ], | |
77 'outputs': [ | |
78 '<(grit_out_dir)/grit/webkit_resources.h', | |
79 '<(grit_out_dir)/webkit_resources.pak', | |
80 '<(grit_out_dir)/webkit_resources.rc', | |
81 ], | |
82 'action': ['python', '<(grit_path)', '-i', '<(input_path)', 'build', '
-o', '<(grit_out_dir)'], | |
83 'message': 'Generating resources from <(input_path)', | |
84 }, | |
85 ], | |
86 'direct_dependent_settings': { | |
87 'include_dirs': [ | |
88 '<(SHARED_INTERMEDIATE_DIR)/webkit', | |
89 ], | |
90 }, | |
91 'conditions': [ | |
92 ['OS=="win"', { | |
93 'dependencies': ['../build/win/system.gyp:cygwin'], | |
94 }], | |
95 ], | |
96 }, | |
97 { | |
98 'target_name': 'webkit_strings', | |
99 'type': 'none', | |
100 'msvs_guid': '60B43839-95E6-4526-A661-209F16335E0E', | |
101 'variables': { | |
102 'grit_path': '../tools/grit/grit.py', | |
103 'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/webkit', | |
104 }, | |
105 'actions': [ | |
106 { | |
107 'action_name': 'webkit_strings', | |
108 'variables': { | |
109 'input_path': 'glue/webkit_strings.grd', | |
110 }, | |
111 'inputs': [ | |
112 '<(input_path)', | |
113 ], | |
114 'outputs': [ | |
115 '<(grit_out_dir)/grit/webkit_strings.h', | |
116 # TODO: remove this helper when we have loops in GYP | |
117 '>!@(<(apply_locales_cmd) \'<(grit_out_dir)/webkit_strings_ZZLOCALE.
pak\' <(locales))', | |
118 ], | |
119 'action': ['python', '<(grit_path)', '-i', '<(input_path)', 'build', '
-o', '<(grit_out_dir)'], | |
120 'message': 'Generating resources from <(input_path)', | |
121 }, | |
122 ], | |
123 'direct_dependent_settings': { | |
124 'include_dirs': [ | |
125 '<(SHARED_INTERMEDIATE_DIR)/webkit', | |
126 ], | |
127 }, | |
128 'conditions': [ | |
129 ['OS=="win"', { | |
130 'dependencies': ['../build/win/system.gyp:cygwin'], | |
131 }], | |
132 ], | |
133 }, | |
134 { | |
135 'target_name': 'appcache', | |
136 'type': '<(library)', | |
137 'msvs_guid': '0B945915-31A7-4A07-A5B5-568D737A39B1', | |
138 'dependencies': [ | |
139 '../net/net.gyp:net', | |
140 '../third_party/WebKit/WebKit/chromium/WebKit.gyp:webkit', | |
141 ], | |
142 'sources': [ | |
143 # This list contains all .h and .cc in appcache except for test code. | |
144 'appcache/appcache.cc', | |
145 'appcache/appcache.h', | |
146 'appcache/appcache_backend_impl.cc', | |
147 'appcache/appcache_backend_impl.h', | |
148 'appcache/appcache_entry.h', | |
149 'appcache/appcache_frontend_impl.cc', | |
150 'appcache/appcache_frontend_impl.h', | |
151 'appcache/appcache_group.cc', | |
152 'appcache/appcache_group.h', | |
153 'appcache/appcache_host.cc', | |
154 'appcache/appcache_host.h', | |
155 'appcache/appcache_interceptor.cc', | |
156 'appcache/appcache_interceptor.h', | |
157 'appcache/appcache_interfaces.cc', | |
158 'appcache/appcache_interfaces.h', | |
159 'appcache/appcache_request_handler.cc', | |
160 'appcache/appcache_request_handler.h', | |
161 'appcache/appcache_response.cc', | |
162 'appcache/appcache_response.h', | |
163 'appcache/appcache_service.cc', | |
164 'appcache/appcache_service.h', | |
165 'appcache/appcache_storage.cc', | |
166 'appcache/appcache_storage.h', | |
167 'appcache/appcache_storage_impl.cc', | |
168 'appcache/appcache_storage_impl.h', | |
169 'appcache/appcache_working_set.cc', | |
170 'appcache/appcache_working_set.h', | |
171 'appcache/appcache_update_job.cc', | |
172 'appcache/appcache_update_job.h', | |
173 'appcache/appcache_url_request_job.cc', | |
174 'appcache/appcache_url_request_job.h', | |
175 'appcache/manifest_parser.cc', | |
176 'appcache/manifest_parser.h', | |
177 'appcache/mock_appcache_storage.cc', | |
178 'appcache/mock_appcache_storage.h', | |
179 'appcache/web_application_cache_host_impl.cc', | |
180 'appcache/web_application_cache_host_impl.h', | |
181 ], | |
182 }, | |
183 { | |
184 'target_name': 'database', | |
185 'type': '<(library)', | |
186 'msvs_guid': '1DA00DDD-44E5-4C56-B2CC-414FB0164492', | |
187 'dependencies': [ | |
188 '../base/base.gyp:base', | |
189 '../third_party/sqlite/sqlite.gyp:sqlite', | |
190 ], | |
191 'sources': [ | |
192 'database/databases_table.cc', | |
193 'database/databases_table.h', | |
194 'database/database_tracker.cc', | |
195 'database/database_tracker.h', | |
196 'database/database_util.cc', | |
197 'database/database_util.h', | |
198 'database/vfs_backend.cc', | |
199 'database/vfs_backend.h', | |
200 ], | |
201 }, | |
202 { | |
203 'target_name': 'glue', | |
204 'type': '<(library)', | |
205 'msvs_guid': 'C66B126D-0ECE-4CA2-B6DC-FA780AFBBF09', | |
206 'dependencies': [ | |
207 '../app/app.gyp:app_base', | |
208 '../net/net.gyp:net', | |
209 'inspector_resources', | |
210 '../third_party/WebKit/WebCore/WebCore.gyp/WebCore.gyp:webcore', | |
211 '../third_party/WebKit/WebKit/chromium/WebKit.gyp:webkit', | |
212 'webkit_resources', | |
213 'webkit_strings', | |
214 ], | |
215 'actions': [ | |
216 { | |
217 'action_name': 'webkit_version', | |
218 'inputs': [ | |
219 'build/webkit_version.py', | |
220 '../third_party/WebKit/WebCore/Configurations/Version.xcconfig', | |
221 ], | |
222 'outputs': [ | |
223 '<(INTERMEDIATE_DIR)/webkit_version.h', | |
224 ], | |
225 'action': ['python', '<@(_inputs)', '<(INTERMEDIATE_DIR)'], | |
226 }, | |
227 ], | |
228 'include_dirs': [ | |
229 '<(INTERMEDIATE_DIR)', | |
230 '<(SHARED_INTERMEDIATE_DIR)/webkit', | |
231 ], | |
232 'sources': [ | |
233 # This list contains all .h, .cc, and .mm files in glue except for | |
234 # those in the test subdirectory and those with unittest in in their | |
235 # names. | |
236 'glue/devtools/apu_agent_delegate.h', | |
237 'glue/devtools/devtools_rpc.h', | |
238 'glue/devtools/devtools_rpc_js.h', | |
239 'glue/devtools/bound_object.cc', | |
240 'glue/devtools/bound_object.h', | |
241 'glue/devtools/debugger_agent.h', | |
242 'glue/devtools/debugger_agent_impl.cc', | |
243 'glue/devtools/debugger_agent_impl.h', | |
244 'glue/devtools/debugger_agent_manager.cc', | |
245 'glue/devtools/debugger_agent_manager.h', | |
246 'glue/devtools/tools_agent.h', | |
247 'glue/media/buffered_data_source.cc', | |
248 'glue/media/buffered_data_source.h', | |
249 'glue/media/media_resource_loader_bridge_factory.cc', | |
250 'glue/media/media_resource_loader_bridge_factory.h', | |
251 'glue/media/simple_data_source.cc', | |
252 'glue/media/simple_data_source.h', | |
253 'glue/media/video_renderer_impl.cc', | |
254 'glue/media/video_renderer_impl.h', | |
255 'glue/plugins/nphostapi.h', | |
256 'glue/plugins/fake_plugin_window_tracker_mac.h', | |
257 'glue/plugins/fake_plugin_window_tracker_mac.cc', | |
258 'glue/plugins/gtk_plugin_container.h', | |
259 'glue/plugins/gtk_plugin_container.cc', | |
260 'glue/plugins/gtk_plugin_container_manager.h', | |
261 'glue/plugins/gtk_plugin_container_manager.cc', | |
262 'glue/plugins/plugin_constants_win.h', | |
263 'glue/plugins/plugin_host.cc', | |
264 'glue/plugins/plugin_host.h', | |
265 'glue/plugins/plugin_instance.cc', | |
266 'glue/plugins/plugin_instance.h', | |
267 'glue/plugins/plugin_lib.cc', | |
268 'glue/plugins/plugin_lib.h', | |
269 'glue/plugins/plugin_lib_linux.cc', | |
270 'glue/plugins/plugin_lib_mac.mm', | |
271 'glue/plugins/plugin_lib_win.cc', | |
272 'glue/plugins/plugin_list.cc', | |
273 'glue/plugins/plugin_list.h', | |
274 'glue/plugins/plugin_list_linux.cc', | |
275 'glue/plugins/plugin_list_mac.mm', | |
276 'glue/plugins/plugin_list_win.cc', | |
277 'glue/plugins/plugin_stream.cc', | |
278 'glue/plugins/plugin_stream.h', | |
279 'glue/plugins/plugin_stream_posix.cc', | |
280 'glue/plugins/plugin_stream_url.cc', | |
281 'glue/plugins/plugin_stream_url.h', | |
282 'glue/plugins/plugin_stream_win.cc', | |
283 'glue/plugins/plugin_string_stream.cc', | |
284 'glue/plugins/plugin_string_stream.h', | |
285 'glue/plugins/plugin_stubs.cc', | |
286 'glue/plugins/webplugin_delegate_impl.cc', | |
287 'glue/plugins/webplugin_delegate_impl.h', | |
288 'glue/plugins/webplugin_delegate_impl_gtk.cc', | |
289 'glue/plugins/webplugin_delegate_impl_mac.mm', | |
290 'glue/plugins/webplugin_delegate_impl_win.cc', | |
291 'glue/alt_error_page_resource_fetcher.cc', | |
292 'glue/alt_error_page_resource_fetcher.h', | |
293 'glue/context_menu.h', | |
294 'glue/cpp_binding_example.cc', | |
295 'glue/cpp_binding_example.h', | |
296 'glue/cpp_bound_class.cc', | |
297 'glue/cpp_bound_class.h', | |
298 'glue/cpp_variant.cc', | |
299 'glue/cpp_variant.h', | |
300 'glue/dom_operations.cc', | |
301 'glue/dom_operations.h', | |
302 'glue/dom_operations_private.h', | |
303 'glue/dom_serializer.cc', | |
304 'glue/dom_serializer.h', | |
305 'glue/dom_serializer_delegate.h', | |
306 'glue/entity_map.cc', | |
307 'glue/entity_map.h', | |
308 'glue/form_data.h', | |
309 'glue/form_field.cc', | |
310 'glue/form_field.h', | |
311 'glue/form_field_values.cc', | |
312 'glue/form_field_values.h', | |
313 'glue/ftp_directory_listing_response_delegate.cc', | |
314 'glue/ftp_directory_listing_response_delegate.h', | |
315 'glue/glue_serialize.cc', | |
316 'glue/glue_serialize.h', | |
317 'glue/glue_util.cc', | |
318 'glue/glue_util.h', | |
319 'glue/image_decoder.cc', | |
320 'glue/image_decoder.h', | |
321 'glue/image_resource_fetcher.cc', | |
322 'glue/image_resource_fetcher.h', | |
323 'glue/multipart_response_delegate.cc', | |
324 'glue/multipart_response_delegate.h', | |
325 'glue/npruntime_util.cc', | |
326 'glue/npruntime_util.h', | |
327 'glue/password_form.h', | |
328 'glue/password_form_dom_manager.cc', | |
329 'glue/password_form_dom_manager.h', | |
330 'glue/resource_fetcher.cc', | |
331 'glue/resource_fetcher.h', | |
332 'glue/resource_loader_bridge.cc', | |
333 'glue/resource_loader_bridge.h', | |
334 'glue/resource_type.h', | |
335 'glue/scoped_clipboard_writer_glue.h', | |
336 'glue/simple_webmimeregistry_impl.cc', | |
337 'glue/simple_webmimeregistry_impl.h', | |
338 'glue/webaccessibility.cc', | |
339 'glue/webaccessibility.h', | |
340 'glue/webclipboard_impl.cc', | |
341 'glue/webclipboard_impl.h', | |
342 'glue/webcookie.h', | |
343 'glue/webcursor.cc', | |
344 'glue/webcursor.h', | |
345 'glue/webcursor_gtk.cc', | |
346 'glue/webcursor_gtk_data.h', | |
347 'glue/webcursor_mac.mm', | |
348 'glue/webcursor_win.cc', | |
349 'glue/webdevtoolsagent_impl.cc', | |
350 'glue/webdevtoolsagent_impl.h', | |
351 'glue/webdevtoolsfrontend_impl.cc', | |
352 'glue/webdevtoolsfrontend_impl.h', | |
353 'glue/webdropdata.cc', | |
354 'glue/webdropdata_win.cc', | |
355 'glue/webdropdata.h', | |
356 'glue/webkit_glue.cc', | |
357 'glue/webkit_glue.h', | |
358 'glue/webkitclient_impl.cc', | |
359 'glue/webkitclient_impl.h', | |
360 'glue/webmediaplayer_impl.h', | |
361 'glue/webmediaplayer_impl.cc', | |
362 'glue/webmenuitem.h', | |
363 'glue/webmenurunner_mac.h', | |
364 'glue/webmenurunner_mac.mm', | |
365 'glue/webpasswordautocompletelistener_impl.cc', | |
366 'glue/webpasswordautocompletelistener_impl.h', | |
367 'glue/webplugin.h', | |
368 'glue/webplugin_delegate.h', | |
369 'glue/webplugin_impl.cc', | |
370 'glue/webplugin_impl.h', | |
371 'glue/webplugininfo.h', | |
372 'glue/webpreferences.cc', | |
373 'glue/webpreferences.h', | |
374 'glue/websocketstreamhandle_bridge.h', | |
375 'glue/websocketstreamhandle_delegate.h', | |
376 'glue/websocketstreamhandle_impl.cc', | |
377 'glue/websocketstreamhandle_impl.h', | |
378 'glue/webthemeengine_impl_win.cc', | |
379 'glue/weburlloader_impl.cc', | |
380 'glue/weburlloader_impl.h', | |
381 'glue/window_open_disposition.h', | |
382 'glue/window_open_disposition.cc', | |
383 | |
384 # These files used to be built in the webcore target, but moved here | |
385 # since part of glue. | |
386 'extensions/v8/benchmarking_extension.cc', | |
387 'extensions/v8/benchmarking_extension.h', | |
388 'extensions/v8/gc_extension.cc', | |
389 'extensions/v8/gc_extension.h', | |
390 'extensions/v8/gears_extension.cc', | |
391 'extensions/v8/gears_extension.h', | |
392 'extensions/v8/heap_profiler_extension.cc', | |
393 'extensions/v8/heap_profiler_extension.h', | |
394 'extensions/v8/interval_extension.cc', | |
395 'extensions/v8/interval_extension.h', | |
396 'extensions/v8/playback_extension.cc', | |
397 'extensions/v8/playback_extension.h', | |
398 'extensions/v8/profiler_extension.cc', | |
399 'extensions/v8/profiler_extension.h', | |
400 | |
401 ], | |
402 # When glue is a dependency, it needs to be a hard dependency. | |
403 # Dependents may rely on files generated by this target or one of its | |
404 # own hard dependencies. | |
405 'hard_dependency': 1, | |
406 'conditions': [ | |
407 ['OS=="linux" or OS=="freebsd"', { | |
408 'dependencies': [ | |
409 '../build/linux/system.gyp:gtk', | |
410 '../base/base.gyp:linux_versioninfo', | |
411 ], | |
412 'export_dependent_settings': [ | |
413 # Users of webcursor.h need the GTK include path. | |
414 '../build/linux/system.gyp:gtk', | |
415 ], | |
416 'sources!': [ | |
417 'glue/plugins/plugin_stubs.cc', | |
418 ], | |
419 }, { # else: OS!="linux" and OS!="freebsd" | |
420 'sources/': [['exclude', '_(linux|gtk)(_data)?\\.cc$'], | |
421 ['exclude', r'/gtk_']], | |
422 }], | |
423 ['OS!="mac"', { | |
424 'sources/': [['exclude', '_mac\\.(cc|mm)$']] | |
425 }], | |
426 ['OS!="win"', { | |
427 'sources/': [['exclude', '_win\\.cc$']], | |
428 'sources!': [ | |
429 # These files are Windows-only now but may be ported to other | |
430 # platforms. | |
431 'glue/webaccessibility.cc', | |
432 'glue/webaccessibility.h', | |
433 'glue/webthemeengine_impl_win.cc', | |
434 ], | |
435 }, { # else: OS=="win" | |
436 'sources/': [['exclude', '_posix\\.cc$']], | |
437 'include_dirs': [ | |
438 '../chrome/third_party/wtl/include', | |
439 ], | |
440 'dependencies': [ | |
441 '../build/win/system.gyp:cygwin', | |
442 'default_plugin/default_plugin.gyp:default_plugin', | |
443 ], | |
444 'sources!': [ | |
445 'glue/plugins/plugin_stubs.cc', | |
446 ], | |
447 }], | |
448 ], | |
449 }, | |
450 { | |
451 'target_name': 'inspector_resources', | |
452 'type': 'none', | |
453 'msvs_guid': '5330F8EE-00F5-D65C-166E-E3150171055D', | |
454 'dependencies': [ | |
455 'devtools_html', | |
456 ], | |
457 'conditions': [ | |
458 ['debug_devtools==0', { | |
459 'dependencies+': [ | |
460 'concatenated_devtools_js', | |
461 ], | |
462 }], | |
463 ], | |
464 'copies': [ | |
465 { | |
466 'destination': '<(PRODUCT_DIR)/resources/inspector', | |
467 'files': [ | |
468 '<@(devtools_files)', | |
469 '<@(webinspector_files)', | |
470 ], | |
471 'conditions': [ | |
472 ['debug_devtools==0', { | |
473 'files/': [['exclude', '\\.js$']], | |
474 }], | |
475 ], | |
476 }, | |
477 { | |
478 'destination': '<(PRODUCT_DIR)/resources/inspector/Images', | |
479 'files': [ | |
480 | |
481 '<@(webinspector_image_files)', | |
482 | |
483 'glue/devtools/js/Images/segmentChromium.png', | |
484 'glue/devtools/js/Images/segmentHoverChromium.png', | |
485 'glue/devtools/js/Images/segmentHoverEndChromium.png', | |
486 'glue/devtools/js/Images/segmentSelectedChromium.png', | |
487 'glue/devtools/js/Images/segmentSelectedEndChromium.png', | |
488 'glue/devtools/js/Images/statusbarBackgroundChromium.png', | |
489 'glue/devtools/js/Images/statusbarBottomBackgroundChromium.png', | |
490 'glue/devtools/js/Images/statusbarButtonsChromium.png', | |
491 'glue/devtools/js/Images/statusbarMenuButtonChromium.png', | |
492 'glue/devtools/js/Images/statusbarMenuButtonSelectedChromium.png', | |
493 ], | |
494 }, | |
495 ], | |
496 }, | |
497 { | |
498 'target_name': 'devtools_html', | |
499 'type': 'none', | |
500 'msvs_guid': '9BE5D4D5-E800-44F9-B6C0-27DF15A9D817', | |
501 'sources': [ | |
502 '<(PRODUCT_DIR)/resources/inspector/devtools.html', | |
503 ], | |
504 'actions': [ | |
505 { | |
506 'action_name': 'devtools_html', | |
507 'inputs': [ | |
508 'build/generate_devtools_html.py', | |
509 '../third_party/WebKit/WebCore/inspector/front-end/inspector.html', | |
510 ], | |
511 'outputs': [ | |
512 '<(PRODUCT_DIR)/resources/inspector/devtools.html', | |
513 ], | |
514 'action': ['python', '<@(_inputs)', '<@(_outputs)', '<@(devtools_files
)'], | |
515 }, | |
516 ], | |
517 }, | |
518 { | |
519 'target_name': 'concatenated_devtools_js', | |
520 'type': 'none', | |
521 'msvs_guid': '8CCFDF4A-B702-4988-9207-623D1477D3E7', | |
522 'dependencies': [ | |
523 'devtools_html', | |
524 ], | |
525 'sources': [ | |
526 '<(PRODUCT_DIR)/resources/inspector/devtools.js', | |
527 ], | |
528 'actions': [ | |
529 { | |
530 'action_name': 'concatenate_devtools_js', | |
531 'inputs': [ | |
532 'build/concatenate_js_files.py', | |
533 '<(PRODUCT_DIR)/resources/inspector/devtools.html', | |
534 '<@(webinspector_files)', | |
535 '<@(devtools_files)', | |
536 ], | |
537 'outputs': [ | |
538 '<(PRODUCT_DIR)/resources/inspector/devtools.js', | |
539 ], | |
540 'action': ['python', '<@(_inputs)', '<@(_outputs)'], | |
541 }, | |
542 ], | |
543 }, | |
544 ], # targets | |
545 } | |
546 | |
547 # Local Variables: | |
548 # tab-width:2 | |
549 # indent-tabs-mode:nil | |
550 # End: | |
551 # vim: set expandtab tabstop=2 shiftwidth=2: | |
OLD | NEW |