actionpack 2.3.5 → 2.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +45 -0
- data/MIT-LICENSE +1 -1
- data/README +7 -7
- data/Rakefile +2 -2
- data/lib/action_controller.rb +2 -2
- data/lib/action_controller/assertions/response_assertions.rb +18 -9
- data/lib/action_controller/base.rb +14 -14
- data/lib/action_controller/caching/fragments.rb +6 -6
- data/lib/action_controller/cookies.rb +96 -0
- data/lib/action_controller/failsafe.rb +1 -0
- data/lib/action_controller/flash.rb +42 -0
- data/lib/action_controller/integration.rb +5 -1
- data/lib/action_controller/polymorphic_routes.rb +1 -1
- data/lib/action_controller/rack_lint_patch.rb +1 -1
- data/lib/action_controller/rescue.rb +2 -2
- data/lib/action_controller/response.rb +4 -7
- data/lib/action_controller/routing/route_set.rb +1 -0
- data/lib/action_controller/session/abstract_store.rb +6 -0
- data/lib/action_controller/session/cookie_store.rb +6 -0
- data/lib/action_controller/templates/rescues/_trace.erb +2 -2
- data/lib/action_controller/url_rewriter.rb +4 -1
- data/lib/action_pack.rb +1 -1
- data/lib/action_pack/version.rb +1 -1
- data/lib/action_view.rb +3 -3
- data/lib/action_view/helpers/active_record_helper.rb +11 -11
- data/lib/action_view/helpers/asset_tag_helper.rb +2 -2
- data/lib/action_view/helpers/capture_helper.rb +2 -2
- data/lib/action_view/helpers/date_helper.rb +12 -11
- data/lib/action_view/helpers/debug_helper.rb +2 -2
- data/lib/action_view/helpers/form_helper.rb +49 -12
- data/lib/action_view/helpers/form_options_helper.rb +3 -4
- data/lib/action_view/helpers/form_tag_helper.rb +7 -4
- data/lib/action_view/helpers/javascript_helper.rb +1 -1
- data/lib/action_view/helpers/number_helper.rb +1 -1
- data/lib/action_view/helpers/prototype_helper.rb +2 -2
- data/lib/action_view/helpers/raw_output_helper.rb +2 -2
- data/lib/action_view/helpers/sanitize_helper.rb +2 -10
- data/lib/action_view/helpers/tag_helper.rb +6 -5
- data/lib/action_view/helpers/text_helper.rb +5 -5
- data/lib/action_view/helpers/translation_helper.rb +6 -4
- data/lib/action_view/helpers/url_helper.rb +9 -11
- data/lib/action_view/partials.rb +2 -1
- data/lib/action_view/paths.rb +8 -0
- data/lib/action_view/renderable.rb +16 -2
- data/lib/action_view/template_handlers/erb.rb +3 -5
- data/lib/action_view/test_case.rb +2 -2
- data/test/abstract_unit.rb +3 -3
- data/test/controller/action_pack_assertions_test.rb +3 -1
- data/test/controller/assert_select_test.rb +1 -0
- data/test/controller/caching_test.rb +16 -2
- data/test/controller/cookie_test.rb +37 -1
- data/test/controller/flash_test.rb +28 -1
- data/test/controller/integration_test.rb +0 -1
- data/test/controller/localized_templates_test.rb +24 -0
- data/test/controller/output_escaping_test.rb +19 -0
- data/test/controller/rack_test.rb +1 -4
- data/test/controller/render_test.rb +11 -2
- data/test/controller/rescue_test.rb +8 -2
- data/test/controller/routing_test.rb +1 -0
- data/test/controller/send_file_test.rb +1 -1
- data/test/controller/session/cookie_store_test.rb +2 -2
- data/test/controller/url_rewriter_test.rb +10 -6
- data/test/fixtures/localized/hello_world.de.html +1 -0
- data/test/fixtures/localized/hello_world.en.html +1 -0
- data/test/fixtures/test/_customer_counter_with_as.erb +1 -0
- data/test/fixtures/test/_utf8_partial.html.erb +1 -0
- data/test/fixtures/test/_utf8_partial_magic.html.erb +2 -0
- data/test/fixtures/test/array_translation.erb +1 -0
- data/test/fixtures/test/scoped_array_translation.erb +1 -0
- data/test/fixtures/test/utf8.html.erb +4 -2
- data/test/fixtures/test/utf8_magic.html.erb +5 -0
- data/test/fixtures/test/utf8_magic_with_bare_partial.html.erb +5 -0
- data/test/template/active_record_helper_i18n_test.rb +9 -2
- data/test/template/asset_tag_helper_test.rb +0 -1
- data/test/template/date_helper_test.rb +118 -0
- data/test/template/erb_util_test.rb +12 -0
- data/test/template/form_helper_test.rb +57 -3
- data/test/template/form_tag_helper_test.rb +15 -9
- data/test/template/render_test.rb +47 -8
- data/test/template/text_helper_test.rb +26 -1
- data/test/template/translation_helper_test.rb +20 -2
- data/test/template/url_helper_test.rb +20 -1
- data/test/tmp/RackMultipart20100114-2850-18awt99-0 +1 -0
- data/test/tmp/RackMultipart20100114-2850-19mxvfk-0 +0 -0
- data/test/tmp/RackMultipart20100114-2850-1il5j9y-0 +1 -0
- data/test/tmp/RackMultipart20100114-2850-1kr4fph-0 +1 -0
- data/test/tmp/RackMultipart20100114-2850-1whjzgd-0 +0 -0
- data/test/tmp/RackMultipart20100114-2850-2oxu19-0 +1 -0
- data/test/tmp/RackMultipart20100114-2850-34lp5r-0 +0 -0
- data/test/tmp/RackMultipart20100114-2850-bqfazg-0 +1 -0
- data/test/tmp/RackMultipart20100114-2850-vbyi8g-0 +0 -0
- data/test/tmp/RackMultipart20100127-16318-140g9v4-0 +1 -0
- data/test/tmp/RackMultipart20100127-16318-1gc081d-0 +0 -0
- data/test/tmp/RackMultipart20100127-16318-1hs9edk-0 +0 -0
- data/test/tmp/RackMultipart20100127-16318-1xv7yvp-0 +1 -0
- data/test/tmp/RackMultipart20100127-16318-9eyfmo-0 +1 -0
- data/test/tmp/RackMultipart20100127-16318-o81drl-0 +0 -0
- data/test/tmp/RackMultipart20100127-16318-ubd6vm-0 +1 -0
- data/test/tmp/RackMultipart20100127-16318-xltjpf-0 +1 -0
- data/test/tmp/RackMultipart20100127-16318-z0s5v6-0 +0 -0
- data/test/tmp/RackMultipart20100131-1041-1fpxdo1-0 +1 -0
- data/test/tmp/RackMultipart20100131-1041-1hgld51-0 +1 -0
- data/test/tmp/RackMultipart20100131-1041-1sfw61g-0 +0 -0
- data/test/tmp/RackMultipart20100131-1041-1txiwx-0 +0 -0
- data/test/tmp/RackMultipart20100131-1041-3nxhtk-0 +1 -0
- data/test/tmp/RackMultipart20100131-1041-msmvjp-0 +1 -0
- data/test/tmp/RackMultipart20100131-1041-snlih6-0 +0 -0
- data/test/tmp/RackMultipart20100131-1041-utmx6r-0 +1 -0
- data/test/tmp/RackMultipart20100131-1041-vr2eir-0 +0 -0
- data/test/tmp/RackMultipart20100131-1200-116kivk-0 +1 -0
- data/test/tmp/RackMultipart20100131-1200-13yj0g7-0 +0 -0
- data/test/tmp/RackMultipart20100131-1200-1b0awcl-0 +1 -0
- data/test/tmp/RackMultipart20100131-1200-1qc4a1o-0 +0 -0
- data/test/tmp/RackMultipart20100131-1200-1sch05j-0 +1 -0
- data/test/tmp/RackMultipart20100131-1200-2wwvjw-0 +1 -0
- data/test/tmp/RackMultipart20100131-1200-4ybied-0 +0 -0
- data/test/tmp/RackMultipart20100131-1200-n4jwgg-0 +0 -0
- data/test/tmp/RackMultipart20100131-1200-nqwg4i-0 +1 -0
- data/test/tmp/RackMultipart20100131-1566-10hgtsj-0 +0 -0
- data/test/tmp/RackMultipart20100131-1566-1m2ix3r-0 +1 -0
- data/test/tmp/RackMultipart20100131-1566-1szdt3p-0 +0 -0
- data/test/tmp/RackMultipart20100131-1566-6cb9xb-0 +0 -0
- data/test/tmp/RackMultipart20100131-1566-aervb6-0 +1 -0
- data/test/tmp/RackMultipart20100131-1566-o57d30-0 +1 -0
- data/test/tmp/RackMultipart20100131-1566-q06s4u-0 +1 -0
- data/test/tmp/RackMultipart20100131-1566-r3eau5-0 +1 -0
- data/test/tmp/RackMultipart20100131-1566-rhvbsr-0 +0 -0
- data/test/tmp/RackMultipart20100131-2176-19tk67i-0 +0 -0
- data/test/tmp/RackMultipart20100131-2176-1iuhegu-0 +0 -0
- data/test/tmp/RackMultipart20100131-2176-1mfu303-0 +1 -0
- data/test/tmp/RackMultipart20100131-2176-1qv96rf-0 +1 -0
- data/test/tmp/RackMultipart20100131-2176-7rae4i-0 +1 -0
- data/test/tmp/RackMultipart20100131-2176-g7hqdt-0 +0 -0
- data/test/tmp/RackMultipart20100131-2176-spxexk-0 +1 -0
- data/test/tmp/RackMultipart20100131-2176-x57r68-0 +0 -0
- data/test/tmp/RackMultipart20100131-2176-xx8aqr-0 +1 -0
- data/test/tmp/RackMultipart20100131-2251-1kx4y7u-0 +1 -0
- data/test/tmp/RackMultipart20100131-2251-1p70d6c-0 +1 -0
- data/test/tmp/RackMultipart20100131-2251-1w181g4-0 +1 -0
- data/test/tmp/RackMultipart20100131-2251-9dl2hy-0 +1 -0
- data/test/tmp/RackMultipart20100131-2251-dd4aqa-0 +0 -0
- data/test/tmp/RackMultipart20100131-2251-dq1bs7-0 +0 -0
- data/test/tmp/RackMultipart20100131-2251-rjlwid-0 +0 -0
- data/test/tmp/RackMultipart20100131-2251-svv2my-0 +0 -0
- data/test/tmp/RackMultipart20100131-2251-znyywm-0 +1 -0
- data/test/tmp/RackMultipart20100131-2563-1b9atyq-0 +1 -0
- data/test/tmp/RackMultipart20100131-2563-1j4bk06-0 +1 -0
- data/test/tmp/RackMultipart20100131-2563-1nd3jkk-0 +0 -0
- data/test/tmp/RackMultipart20100131-2563-1ud0b43-0 +1 -0
- data/test/tmp/RackMultipart20100131-2563-2t9aus-0 +1 -0
- data/test/tmp/RackMultipart20100131-2563-4xhtq9-0 +0 -0
- data/test/tmp/RackMultipart20100131-2563-80xjuq-0 +1 -0
- data/test/tmp/RackMultipart20100131-2563-du6204-0 +0 -0
- data/test/tmp/RackMultipart20100131-2563-m2xw0u-0 +0 -0
- data/test/tmp/RackMultipart20100131-3324-1bz902a-0 +1 -0
- data/test/tmp/RackMultipart20100131-3324-1cj3c2q-0 +1 -0
- data/test/tmp/RackMultipart20100131-3324-1dcwnmh-0 +1 -0
- data/test/tmp/RackMultipart20100131-3324-1qu1vvo-0 +1 -0
- data/test/tmp/RackMultipart20100131-3324-1wksfd7-0 +0 -0
- data/test/tmp/RackMultipart20100131-3324-8bmth5-0 +0 -0
- data/test/tmp/RackMultipart20100131-3324-c0sen5-0 +1 -0
- data/test/tmp/RackMultipart20100131-3324-mhg9zb-0 +0 -0
- data/test/tmp/RackMultipart20100131-3324-mram2k-0 +0 -0
- data/test/tmp/RackMultipart20100131-3712-11l26yb-0 +1 -0
- data/test/tmp/RackMultipart20100131-3712-18qhzz9-0 +1 -0
- data/test/tmp/RackMultipart20100131-3712-19efkti-0 +1 -0
- data/test/tmp/RackMultipart20100131-3712-1s6qbc-0 +1 -0
- data/test/tmp/RackMultipart20100131-3712-948hce-0 +0 -0
- data/test/tmp/RackMultipart20100131-3712-rliyfc-0 +0 -0
- data/test/tmp/RackMultipart20100131-3712-tvfxgh-0 +1 -0
- data/test/tmp/RackMultipart20100131-3712-ywjidy-0 +0 -0
- data/test/tmp/RackMultipart20100131-3712-zwa1yl-0 +0 -0
- data/test/tmp/RackMultipart20100131-4098-12u1n7m-0 +1 -0
- data/test/tmp/RackMultipart20100131-4098-188dwav-0 +0 -0
- data/test/tmp/RackMultipart20100131-4098-1a2nulg-0 +0 -0
- data/test/tmp/RackMultipart20100131-4098-1c9gbau-0 +1 -0
- data/test/tmp/RackMultipart20100131-4098-2923tu-0 +0 -0
- data/test/tmp/RackMultipart20100131-4098-he7nm8-0 +0 -0
- data/test/tmp/RackMultipart20100131-4098-nw5pcp-0 +1 -0
- data/test/tmp/RackMultipart20100131-4098-plj7cd-0 +1 -0
- data/test/tmp/RackMultipart20100131-4098-wha9du-0 +1 -0
- data/test/tmp/RackMultipart20100131-4178-10rjsef-0 +0 -0
- data/test/tmp/RackMultipart20100131-4178-13qqazs-0 +0 -0
- data/test/tmp/RackMultipart20100131-4178-1hpjqkl-0 +0 -0
- data/test/tmp/RackMultipart20100131-4178-1idjtdl-0 +1 -0
- data/test/tmp/RackMultipart20100131-4178-1ke1zpq-0 +1 -0
- data/test/tmp/RackMultipart20100131-4178-6y51hb-0 +1 -0
- data/test/tmp/RackMultipart20100131-4178-98i2o0-0 +1 -0
- data/test/tmp/RackMultipart20100131-4178-9k4jj6-0 +0 -0
- data/test/tmp/RackMultipart20100131-4178-zcxa4g-0 +1 -0
- data/test/tmp/RackMultipart20100131-4297-1moo7v9-0 +0 -0
- data/test/tmp/RackMultipart20100131-4297-1yxib1r-0 +0 -0
- data/test/tmp/RackMultipart20100131-4297-b239su-0 +0 -0
- data/test/tmp/RackMultipart20100131-4297-ht0qby-0 +1 -0
- data/test/tmp/RackMultipart20100131-4297-ia5rov-0 +1 -0
- data/test/tmp/RackMultipart20100131-4297-m6gof0-0 +1 -0
- data/test/tmp/RackMultipart20100131-4297-nm3rvt-0 +0 -0
- data/test/tmp/RackMultipart20100131-4297-qla73p-0 +1 -0
- data/test/tmp/RackMultipart20100131-4297-ylrtmu-0 +1 -0
- data/test/tmp/RackMultipart20100131-4434-11fsv9d-0 +0 -0
- data/test/tmp/RackMultipart20100131-4434-19ycsmr-0 +1 -0
- data/test/tmp/RackMultipart20100131-4434-1h0ws4q-0 +1 -0
- data/test/tmp/RackMultipart20100131-4434-1lszvv8-0 +0 -0
- data/test/tmp/RackMultipart20100131-4434-1ocgqu3-0 +1 -0
- data/test/tmp/RackMultipart20100131-4434-1ukqdfd-0 +1 -0
- data/test/tmp/RackMultipart20100131-4434-cq7rvl-0 +1 -0
- data/test/tmp/RackMultipart20100131-4434-f7jbl4-0 +0 -0
- data/test/tmp/RackMultipart20100131-4434-vxlg5t-0 +0 -0
- data/test/tmp/RackMultipart20100131-4544-1bf8inz-0 +1 -0
- data/test/tmp/RackMultipart20100131-4544-1vj44nb-0 +0 -0
- data/test/tmp/RackMultipart20100131-4544-20mdip-0 +1 -0
- data/test/tmp/RackMultipart20100131-4544-89y67y-0 +0 -0
- data/test/tmp/RackMultipart20100131-4544-gdbsui-0 +1 -0
- data/test/tmp/RackMultipart20100131-4544-ko8plt-0 +0 -0
- data/test/tmp/RackMultipart20100131-4544-ojykbo-0 +1 -0
- data/test/tmp/RackMultipart20100131-4544-r8sahr-0 +0 -0
- data/test/tmp/RackMultipart20100131-4544-uluv8k-0 +1 -0
- data/test/tmp/RackMultipart20100131-4655-11ovmuw-0 +0 -0
- data/test/tmp/RackMultipart20100131-4655-12iht5p-0 +1 -0
- data/test/tmp/RackMultipart20100131-4655-142j0ug-0 +0 -0
- data/test/tmp/RackMultipart20100131-4655-15affqj-0 +0 -0
- data/test/tmp/RackMultipart20100131-4655-1gv4gb4-0 +1 -0
- data/test/tmp/RackMultipart20100131-4655-1gwchw7-0 +1 -0
- data/test/tmp/RackMultipart20100131-4655-1hvqx5t-0 +1 -0
- data/test/tmp/RackMultipart20100131-4655-1jhgk7a-0 +1 -0
- data/test/tmp/RackMultipart20100131-4655-1yktury-0 +0 -0
- data/test/tmp/RackMultipart20100131-5244-13z86ip-0 +0 -0
- data/test/tmp/RackMultipart20100131-5244-17vpiv6-0 +0 -0
- data/test/tmp/RackMultipart20100131-5244-1a9w3e-0 +1 -0
- data/test/tmp/RackMultipart20100131-5244-1ox8g0l-0 +1 -0
- data/test/tmp/RackMultipart20100131-5244-1qrzlqz-0 +1 -0
- data/test/tmp/RackMultipart20100131-5244-g3mpli-0 +0 -0
- data/test/tmp/RackMultipart20100131-5244-gcl80c-0 +0 -0
- data/test/tmp/RackMultipart20100131-5244-jqk7el-0 +1 -0
- data/test/tmp/RackMultipart20100131-5244-st1ldm-0 +1 -0
- data/test/tmp/RackMultipart20100131-5383-10si01q-0 +0 -0
- data/test/tmp/RackMultipart20100131-5383-16ye4w3-0 +1 -0
- data/test/tmp/RackMultipart20100131-5383-1imlta8-0 +0 -0
- data/test/tmp/RackMultipart20100131-5383-1r3gvaw-0 +0 -0
- data/test/tmp/RackMultipart20100131-5383-3wialw-0 +1 -0
- data/test/tmp/RackMultipart20100131-5383-k16uor-0 +1 -0
- data/test/tmp/RackMultipart20100131-5383-oz1b3a-0 +0 -0
- data/test/tmp/RackMultipart20100131-5383-una84e-0 +1 -0
- data/test/tmp/RackMultipart20100131-5383-zk1hmz-0 +1 -0
- data/test/tmp/RackMultipart20100131-5711-12j0qy5-0 +1 -0
- data/test/tmp/RackMultipart20100131-5711-1cozdic-0 +0 -0
- data/test/tmp/RackMultipart20100131-5711-1kebrgm-0 +0 -0
- data/test/tmp/RackMultipart20100131-5711-1q3jt9q-0 +0 -0
- data/test/tmp/RackMultipart20100131-5711-6sv1xg-0 +1 -0
- data/test/tmp/RackMultipart20100131-5711-esxrbg-0 +0 -0
- data/test/tmp/RackMultipart20100131-5711-jfbr34-0 +1 -0
- data/test/tmp/RackMultipart20100131-5711-q1e91g-0 +1 -0
- data/test/tmp/RackMultipart20100131-5711-tdauxm-0 +1 -0
- data/test/tmp/RackMultipart20100131-91110-1196t1f-0 +1 -0
- data/test/tmp/RackMultipart20100131-91110-11tfgc4-0 +1 -0
- data/test/tmp/RackMultipart20100131-91110-19e4l6u-0 +0 -0
- data/test/tmp/RackMultipart20100131-91110-1m6i8r4-0 +0 -0
- data/test/tmp/RackMultipart20100131-91110-1nv9cn8-0 +1 -0
- data/test/tmp/RackMultipart20100131-91110-6gbf58-0 +0 -0
- data/test/tmp/RackMultipart20100131-91110-b7iewa-0 +1 -0
- data/test/tmp/RackMultipart20100131-91110-b8kbab-0 +0 -0
- data/test/tmp/RackMultipart20100131-91110-rq2ytl-0 +1 -0
- data/test/tmp/RackMultipart20100131-91876-1848spe-0 +1 -0
- data/test/tmp/RackMultipart20100131-91876-1u8xsmd-0 +0 -0
- data/test/tmp/RackMultipart20100131-91876-1vlruve-0 +0 -0
- data/test/tmp/RackMultipart20100131-91876-cbcvg1-0 +1 -0
- data/test/tmp/RackMultipart20100131-91876-jv0zd7-0 +1 -0
- data/test/tmp/RackMultipart20100131-91876-laype7-0 +1 -0
- data/test/tmp/RackMultipart20100131-91876-mswlj3-0 +1 -0
- data/test/tmp/RackMultipart20100131-91876-se56ms-0 +0 -0
- data/test/tmp/RackMultipart20100131-91876-t14psz-0 +0 -0
- data/test/tmp/RackMultipart20100131-93665-1cv0oop-0 +1 -0
- data/test/tmp/RackMultipart20100131-93665-1n0c582-0 +0 -0
- data/test/tmp/RackMultipart20100131-93665-1obpgzg-0 +1 -0
- data/test/tmp/RackMultipart20100131-93665-1pgbkl0-0 +1 -0
- data/test/tmp/RackMultipart20100131-93665-1udk862-0 +1 -0
- data/test/tmp/RackMultipart20100131-93665-9xxo6q-0 +0 -0
- data/test/tmp/RackMultipart20100131-93665-eawsec-0 +0 -0
- data/test/tmp/RackMultipart20100131-93665-g5rmm9-0 +0 -0
- data/test/tmp/RackMultipart20100131-93665-kdm9y0-0 +1 -0
- data/test/tmp/RackMultipart20100131-96270-10h26kt-0 +0 -0
- data/test/tmp/RackMultipart20100131-96270-1dtgwke-0 +1 -0
- data/test/tmp/RackMultipart20100131-96270-1pib5qg-0 +0 -0
- data/test/tmp/RackMultipart20100131-96270-1tfonee-0 +1 -0
- data/test/tmp/RackMultipart20100131-96270-1xoj9si-0 +0 -0
- data/test/tmp/RackMultipart20100131-96270-5kzssn-0 +0 -0
- data/test/tmp/RackMultipart20100131-96270-5qgi09-0 +1 -0
- data/test/tmp/RackMultipart20100131-96270-dlgdff-0 +1 -0
- data/test/tmp/RackMultipart20100131-96270-uky8ij-0 +1 -0
- data/test/tmp/RackMultipart20100131-96373-140mlqp-0 +1 -0
- data/test/tmp/RackMultipart20100131-96373-16du1gs-0 +1 -0
- data/test/tmp/RackMultipart20100131-96373-181k6zk-0 +1 -0
- data/test/tmp/RackMultipart20100131-96373-1f1xgl8-0 +0 -0
- data/test/tmp/RackMultipart20100131-96373-1v4tnat-0 +1 -0
- data/test/tmp/RackMultipart20100131-96373-5iwxty-0 +0 -0
- data/test/tmp/RackMultipart20100131-96373-nrglr4-0 +1 -0
- data/test/tmp/RackMultipart20100131-96373-tj67zf-0 +0 -0
- data/test/tmp/RackMultipart20100131-96373-y7mw5e-0 +0 -0
- data/test/tmp/RackMultipart20100131-96488-1c52jwo-0 +0 -0
- data/test/tmp/RackMultipart20100131-96488-1g4n5g3-0 +0 -0
- data/test/tmp/RackMultipart20100131-96488-1ih9vjx-0 +1 -0
- data/test/tmp/RackMultipart20100131-96488-1m67bqh-0 +1 -0
- data/test/tmp/RackMultipart20100131-96488-1sff2qf-0 +1 -0
- data/test/tmp/RackMultipart20100131-96488-1vxr0sz-0 +0 -0
- data/test/tmp/RackMultipart20100131-96488-f1va0r-0 +1 -0
- data/test/tmp/RackMultipart20100131-96488-godmi4-0 +0 -0
- data/test/tmp/RackMultipart20100131-96488-v7puqu-0 +1 -0
- data/test/tmp/RackMultipart20100131-96889-10srx2y-0 +1 -0
- data/test/tmp/RackMultipart20100131-96889-14sujbg-0 +1 -0
- data/test/tmp/RackMultipart20100131-96889-1edgzzr-0 +0 -0
- data/test/tmp/RackMultipart20100131-96889-1jtlvx0-0 +0 -0
- data/test/tmp/RackMultipart20100131-96889-1leo16l-0 +0 -0
- data/test/tmp/RackMultipart20100131-96889-1nroez0-0 +0 -0
- data/test/tmp/RackMultipart20100131-96889-2z4au4-0 +1 -0
- data/test/tmp/RackMultipart20100131-96889-v6dj39-0 +1 -0
- data/test/tmp/RackMultipart20100131-96889-z2owq5-0 +1 -0
- data/test/tmp/RackMultipart20100131-97178-1kzzmnx-0 +0 -0
- data/test/tmp/RackMultipart20100131-97178-1p48git-0 +0 -0
- data/test/tmp/RackMultipart20100131-97178-1pak2jq-0 +0 -0
- data/test/tmp/RackMultipart20100131-97178-1vb21z0-0 +1 -0
- data/test/tmp/RackMultipart20100131-97178-3pstpf-0 +1 -0
- data/test/tmp/RackMultipart20100131-97178-ah9j8g-0 +0 -0
- data/test/tmp/RackMultipart20100131-97178-dzgylu-0 +1 -0
- data/test/tmp/RackMultipart20100131-97178-eh8uuk-0 +1 -0
- data/test/tmp/RackMultipart20100131-97178-mompd7-0 +1 -0
- data/test/tmp/RackMultipart20100131-97404-11op195-0 +0 -0
- data/test/tmp/RackMultipart20100131-97404-15vgv5a-0 +0 -0
- data/test/tmp/RackMultipart20100131-97404-1ipzwm0-0 +1 -0
- data/test/tmp/RackMultipart20100131-97404-1je7x2p-0 +1 -0
- data/test/tmp/RackMultipart20100131-97404-1mb6juq-0 +0 -0
- data/test/tmp/RackMultipart20100131-97404-1uhf75x-0 +1 -0
- data/test/tmp/RackMultipart20100131-97404-4bkht5-0 +0 -0
- data/test/tmp/RackMultipart20100131-97404-8wsyqb-0 +1 -0
- data/test/tmp/RackMultipart20100131-97404-p5bwvt-0 +1 -0
- data/test/tmp/RackMultipart20100131-97860-134h0yk-0 +1 -0
- data/test/tmp/RackMultipart20100131-97860-137z1v8-0 +1 -0
- data/test/tmp/RackMultipart20100131-97860-1fxatvg-0 +1 -0
- data/test/tmp/RackMultipart20100131-97860-1rkrzj1-0 +0 -0
- data/test/tmp/RackMultipart20100131-97860-5aahhh-0 +0 -0
- data/test/tmp/RackMultipart20100131-97860-bk11df-0 +0 -0
- data/test/tmp/RackMultipart20100131-97860-bpt71-0 +0 -0
- data/test/tmp/RackMultipart20100131-97860-k5kib2-0 +1 -0
- data/test/tmp/RackMultipart20100131-97860-yj6uro-0 +1 -0
- data/test/tmp/RackMultipart20100131-97900-12zytln-0 +1 -0
- data/test/tmp/RackMultipart20100131-97900-1hpjwgc-0 +0 -0
- data/test/tmp/RackMultipart20100131-97900-1kuj8ok-0 +1 -0
- data/test/tmp/RackMultipart20100131-97900-1wtlnbe-0 +1 -0
- data/test/tmp/RackMultipart20100131-97900-66d1fg-0 +0 -0
- data/test/tmp/RackMultipart20100131-97900-m7hm3n-0 +1 -0
- data/test/tmp/RackMultipart20100131-97900-n2a8fd-0 +0 -0
- data/test/tmp/RackMultipart20100131-97900-y9kwnp-0 +1 -0
- data/test/tmp/RackMultipart20100131-97900-yu52kd-0 +0 -0
- data/test/tmp/RackMultipart20100131-97937-1fxbun8-0 +1 -0
- data/test/tmp/RackMultipart20100131-97937-1qjxhia-0 +1 -0
- data/test/tmp/RackMultipart20100131-97937-1vwp4fj-0 +1 -0
- data/test/tmp/RackMultipart20100131-97937-aha3dl-0 +0 -0
- data/test/tmp/RackMultipart20100131-97937-asyrei-0 +1 -0
- data/test/tmp/RackMultipart20100131-97937-d8rmsv-0 +1 -0
- data/test/tmp/RackMultipart20100131-97937-g9oy2w-0 +0 -0
- data/test/tmp/RackMultipart20100131-97937-lt544p-0 +0 -0
- data/test/tmp/RackMultipart20100131-97937-mgf4qa-0 +0 -0
- data/test/tmp/RackMultipart20100131-98521-1fdcemt-0 +0 -0
- data/test/tmp/RackMultipart20100131-98521-1l33j9z-0 +1 -0
- data/test/tmp/RackMultipart20100131-98521-1ohobk0-0 +0 -0
- data/test/tmp/RackMultipart20100131-98521-45jwmb-0 +1 -0
- data/test/tmp/RackMultipart20100131-98521-7vu49l-0 +1 -0
- data/test/tmp/RackMultipart20100131-98521-9kzlxx-0 +1 -0
- data/test/tmp/RackMultipart20100131-98521-cycfj-0 +0 -0
- data/test/tmp/RackMultipart20100131-98521-hhd1bf-0 +1 -0
- data/test/tmp/RackMultipart20100131-98521-iqvlrq-0 +0 -0
- data/test/tmp/RackMultipart20100201-6555-1ce2ok5-0 +1 -0
- data/test/tmp/RackMultipart20100201-6555-2rd8zm-0 +0 -0
- data/test/tmp/RackMultipart20100201-6555-9brifb-0 +0 -0
- data/test/tmp/RackMultipart20100201-6555-dcf8h0-0 +1 -0
- data/test/tmp/RackMultipart20100201-6555-meb4gi-0 +1 -0
- data/test/tmp/RackMultipart20100201-6555-sci6i5-0 +0 -0
- data/test/tmp/RackMultipart20100201-6555-sox363-0 +1 -0
- data/test/tmp/RackMultipart20100201-6555-x9kyyz-0 +0 -0
- data/test/tmp/RackMultipart20100201-6555-zqn4x6-0 +1 -0
- data/test/tmp/RackMultipart20100204-40252-123q4em-0 +1 -0
- data/test/tmp/RackMultipart20100204-40252-1jzjes5-0 +0 -0
- data/test/tmp/RackMultipart20100204-40252-1reve0y-0 +0 -0
- data/test/tmp/RackMultipart20100204-40252-1u2b3qm-0 +1 -0
- data/test/tmp/RackMultipart20100204-40252-3un54m-0 +1 -0
- data/test/tmp/RackMultipart20100204-40252-a2oh9b-0 +0 -0
- data/test/tmp/RackMultipart20100204-40252-od0run-0 +1 -0
- data/test/tmp/RackMultipart20100204-40252-qbgvnt-0 +0 -0
- data/test/tmp/RackMultipart20100204-40252-tey6cp-0 +1 -0
- data/test/tmp/RackMultipart20100204-40512-15nitzo-0 +0 -0
- data/test/tmp/RackMultipart20100204-40512-18g0pdd-0 +0 -0
- data/test/tmp/RackMultipart20100204-40512-1brd1j2-0 +1 -0
- data/test/tmp/RackMultipart20100204-40512-1fz7mb1-0 +0 -0
- data/test/tmp/RackMultipart20100204-40512-1n1muze-0 +1 -0
- data/test/tmp/RackMultipart20100204-40512-1q3r24f-0 +1 -0
- data/test/tmp/RackMultipart20100204-40512-1tnhl3y-0 +1 -0
- data/test/tmp/RackMultipart20100204-40512-okgtu4-0 +0 -0
- data/test/tmp/RackMultipart20100204-40512-qn5sg0-0 +1 -0
- data/test/tmp/RackMultipart20100204-57419-15yya1x-0 +1 -0
- data/test/tmp/RackMultipart20100204-57419-19m1c3d-0 +0 -0
- data/test/tmp/RackMultipart20100204-57419-1n7d3i6-0 +1 -0
- data/test/tmp/RackMultipart20100204-57419-1npqntd-0 +0 -0
- data/test/tmp/RackMultipart20100204-57419-bklpgc-0 +1 -0
- data/test/tmp/RackMultipart20100204-57419-ei91e5-0 +0 -0
- data/test/tmp/RackMultipart20100204-57419-g1hqwp-0 +1 -0
- data/test/tmp/RackMultipart20100204-57419-t7ag5k-0 +0 -0
- data/test/tmp/RackMultipart20100204-57419-xiebhk-0 +1 -0
- data/test/tmp/RackMultipart20100204-57658-16cfrux-0 +1 -0
- data/test/tmp/RackMultipart20100204-57658-19wbkan-0 +1 -0
- data/test/tmp/RackMultipart20100204-57658-1qptexw-0 +0 -0
- data/test/tmp/RackMultipart20100204-57658-1u2bpg8-0 +0 -0
- data/test/tmp/RackMultipart20100204-57658-1v8jrhq-0 +0 -0
- data/test/tmp/RackMultipart20100204-57658-48l4m0-0 +1 -0
- data/test/tmp/RackMultipart20100204-57658-hpw0o9-0 +1 -0
- data/test/tmp/RackMultipart20100204-57658-l75jof-0 +1 -0
- data/test/tmp/RackMultipart20100204-57658-t3or19-0 +0 -0
- data/test/tmp/RackMultipart20100204-57712-101mfz2-0 +1 -0
- data/test/tmp/RackMultipart20100204-57712-136zsqs-0 +0 -0
- data/test/tmp/RackMultipart20100204-57712-16ge0ra-0 +1 -0
- data/test/tmp/RackMultipart20100204-57712-18dppuc-0 +0 -0
- data/test/tmp/RackMultipart20100204-57712-1aj6ady-0 +0 -0
- data/test/tmp/RackMultipart20100204-57712-1nqkndh-0 +1 -0
- data/test/tmp/RackMultipart20100204-57712-1pngw5w-0 +1 -0
- data/test/tmp/RackMultipart20100204-57712-6lo90o-0 +1 -0
- data/test/tmp/RackMultipart20100204-57712-ufq7x-0 +0 -0
- data/test/tmp/RackMultipart20100204-58321-10lc3a6-0 +1 -0
- data/test/tmp/RackMultipart20100204-58321-15o8a4o-0 +0 -0
- data/test/tmp/RackMultipart20100204-58321-1sos76-0 +1 -0
- data/test/tmp/RackMultipart20100204-58321-26876u-0 +1 -0
- data/test/tmp/RackMultipart20100204-58321-hnz5b8-0 +0 -0
- data/test/tmp/RackMultipart20100204-58321-lrmvfa-0 +1 -0
- data/test/tmp/RackMultipart20100204-58321-q0ak2g-0 +1 -0
- data/test/tmp/RackMultipart20100204-58321-sa8wal-0 +0 -0
- data/test/tmp/RackMultipart20100204-58321-z7jxeq-0 +0 -0
- data/test/tmp/RackMultipart20100204-59702-1fdw43n-0 +1 -0
- data/test/tmp/RackMultipart20100204-59702-2hf4ld-0 +1 -0
- data/test/tmp/RackMultipart20100204-59702-2ldyxj-0 +0 -0
- data/test/tmp/RackMultipart20100204-59702-aqevfm-0 +1 -0
- data/test/tmp/RackMultipart20100204-59702-dpbv5t-0 +0 -0
- data/test/tmp/RackMultipart20100204-59702-ec8276-0 +1 -0
- data/test/tmp/RackMultipart20100204-59702-jn6ncc-0 +1 -0
- data/test/tmp/RackMultipart20100204-59702-m8xobr-0 +0 -0
- data/test/tmp/RackMultipart20100204-59702-q89plk-0 +0 -0
- data/test/tmp/RackMultipart20100204-59747-14sdb6-0 +1 -0
- data/test/tmp/RackMultipart20100204-59747-15742uk-0 +1 -0
- data/test/tmp/RackMultipart20100204-59747-15lp9kl-0 +0 -0
- data/test/tmp/RackMultipart20100204-59747-1a7ub6i-0 +0 -0
- data/test/tmp/RackMultipart20100204-59747-1i77fp1-0 +1 -0
- data/test/tmp/RackMultipart20100204-59747-1mfl7gf-0 +0 -0
- data/test/tmp/RackMultipart20100204-59747-1qrkt89-0 +0 -0
- data/test/tmp/RackMultipart20100204-59747-6biaui-0 +1 -0
- data/test/tmp/RackMultipart20100204-59747-m7iqd0-0 +1 -0
- data/test/tmp/RackMultipart20100204-60097-1kgjis5-0 +0 -0
- data/test/tmp/RackMultipart20100204-60097-1odv8os-0 +1 -0
- data/test/tmp/RackMultipart20100204-60097-1p5yvyk-0 +0 -0
- data/test/tmp/RackMultipart20100204-60097-43si9w-0 +1 -0
- data/test/tmp/RackMultipart20100204-60097-awjfar-0 +1 -0
- data/test/tmp/RackMultipart20100204-60097-d7g9gf-0 +1 -0
- data/test/tmp/RackMultipart20100204-60097-fmxwtb-0 +0 -0
- data/test/tmp/RackMultipart20100204-60097-i8r8ph-0 +0 -0
- data/test/tmp/RackMultipart20100204-60097-yv1urn-0 +1 -0
- data/test/tmp/RackMultipart20100204-60773-14k87gs-0 +1 -0
- data/test/tmp/RackMultipart20100204-60773-15uh5fc-0 +1 -0
- data/test/tmp/RackMultipart20100204-60773-1b4gi3-0 +1 -0
- data/test/tmp/RackMultipart20100204-60773-1g0sg6r-0 +1 -0
- data/test/tmp/RackMultipart20100204-60773-1jgjbwl-0 +0 -0
- data/test/tmp/RackMultipart20100204-60773-1kk50pp-0 +0 -0
- data/test/tmp/RackMultipart20100204-60773-1xktk0q-0 +0 -0
- data/test/tmp/RackMultipart20100204-60773-jcuq05-0 +1 -0
- data/test/tmp/RackMultipart20100204-60773-og04od-0 +0 -0
- data/test/tmp/RackMultipart20100205-69480-169yh4u-0 +1 -0
- data/test/tmp/RackMultipart20100205-69480-16ry3sk-0 +0 -0
- data/test/tmp/RackMultipart20100205-69480-1dm58eb-0 +1 -0
- data/test/tmp/RackMultipart20100205-69480-1e6dfel-0 +1 -0
- data/test/tmp/RackMultipart20100205-69480-1knio7h-0 +0 -0
- data/test/tmp/RackMultipart20100205-69480-1rxthf1-0 +1 -0
- data/test/tmp/RackMultipart20100205-69480-1sqp1p6-0 +1 -0
- data/test/tmp/RackMultipart20100205-69480-k3c5xi-0 +0 -0
- data/test/tmp/RackMultipart20100205-69480-y0o7bs-0 +0 -0
- data/test/tmp/RackMultipart20100205-89390-12t4t4h-0 +0 -0
- data/test/tmp/RackMultipart20100205-89390-18sku49-0 +1 -0
- data/test/tmp/RackMultipart20100205-89390-1aeaxrj-0 +0 -0
- data/test/tmp/RackMultipart20100205-89390-1ej1o6b-0 +0 -0
- data/test/tmp/RackMultipart20100205-89390-1qbye80-0 +1 -0
- data/test/tmp/RackMultipart20100205-89390-1t2reiw-0 +0 -0
- data/test/tmp/RackMultipart20100205-89390-2j4ebh-0 +1 -0
- data/test/tmp/RackMultipart20100205-89390-cqkz93-0 +1 -0
- data/test/tmp/RackMultipart20100205-89390-ehlxym-0 +1 -0
- data/test/tmp/RackMultipart20100207-41099-1db1yc7-0 +0 -0
- data/test/tmp/RackMultipart20100207-41099-1enfwih-0 +0 -0
- data/test/tmp/RackMultipart20100207-41099-1hiqogn-0 +1 -0
- data/test/tmp/RackMultipart20100207-41099-1n21xz7-0 +0 -0
- data/test/tmp/RackMultipart20100207-41099-1ofbaxj-0 +0 -0
- data/test/tmp/RackMultipart20100207-41099-1pqhw0q-0 +1 -0
- data/test/tmp/RackMultipart20100207-41099-1s6zxzw-0 +1 -0
- data/test/tmp/RackMultipart20100207-41099-asxuq9-0 +1 -0
- data/test/tmp/RackMultipart20100207-41099-eowd6o-0 +1 -0
- data/test/tmp/RackMultipart20100209-65426-10ag1jr-0 +1 -0
- data/test/tmp/RackMultipart20100209-65426-13zm3yu-0 +0 -0
- data/test/tmp/RackMultipart20100209-65426-1otg9r6-0 +0 -0
- data/test/tmp/RackMultipart20100209-65426-1rdz5v6-0 +1 -0
- data/test/tmp/RackMultipart20100209-65426-1usq2ff-0 +1 -0
- data/test/tmp/RackMultipart20100209-65426-1wxs8n7-0 +1 -0
- data/test/tmp/RackMultipart20100209-65426-4uffbj-0 +1 -0
- data/test/tmp/RackMultipart20100209-65426-a5hra7-0 +0 -0
- data/test/tmp/RackMultipart20100209-65426-ylpq1h-0 +0 -0
- data/test/tmp/RackMultipart20100209-65558-1bghj62-0 +0 -0
- data/test/tmp/RackMultipart20100209-65558-1fbovnp-0 +1 -0
- data/test/tmp/RackMultipart20100209-65558-1hfwl02-0 +1 -0
- data/test/tmp/RackMultipart20100209-65558-b35wyr-0 +0 -0
- data/test/tmp/RackMultipart20100209-65558-esd0f1-0 +1 -0
- data/test/tmp/RackMultipart20100209-65558-gq26ri-0 +0 -0
- data/test/tmp/RackMultipart20100209-65558-mwizdx-0 +1 -0
- data/test/tmp/RackMultipart20100209-65558-ntlzq6-0 +1 -0
- data/test/tmp/RackMultipart20100209-65558-yoxcgc-0 +0 -0
- data/test/tmp/RackMultipart20100212-43647-12bo3g0-0 +0 -0
- data/test/tmp/RackMultipart20100212-43647-133b4b8-0 +1 -0
- data/test/tmp/RackMultipart20100212-43647-1b2g7f7-0 +1 -0
- data/test/tmp/RackMultipart20100212-43647-1et2ima-0 +0 -0
- data/test/tmp/RackMultipart20100212-43647-1thip8b-0 +1 -0
- data/test/tmp/RackMultipart20100212-43647-1x05hpf-0 +1 -0
- data/test/tmp/RackMultipart20100212-43647-cbseb3-0 +0 -0
- data/test/tmp/RackMultipart20100212-43647-mybv0k-0 +1 -0
- data/test/tmp/RackMultipart20100212-43647-scxg3k-0 +0 -0
- data/test/tmp/RackMultipart20100316-26215-15fvlkf-0 +1 -0
- data/test/tmp/RackMultipart20100316-26215-15ms9t8-0 +0 -0
- data/test/tmp/RackMultipart20100316-26215-196k138-0 +0 -0
- data/test/tmp/RackMultipart20100316-26215-1qbnikd-0 +1 -0
- data/test/tmp/RackMultipart20100316-26215-1tey31-0 +1 -0
- data/test/tmp/RackMultipart20100316-26215-dp0rwx-0 +0 -0
- data/test/tmp/RackMultipart20100316-26215-lmfp1-0 +1 -0
- data/test/tmp/RackMultipart20100316-26215-njsjmn-0 +0 -0
- data/test/tmp/RackMultipart20100316-26215-z39dzf-0 +1 -0
- data/test/tmp/mona_lisa.jpg20100114-2850-1t73ev7-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100127-16318-1bffb05-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-1041-1rvua2k-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-1200-i3rods-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-1566-18mcqh9-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-2176-1t3bsp-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-2251-1tz4wqa-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-2563-ohvnnb-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-3076-m9pk9y-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-3324-9rpzdj-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-3712-wf4b9m-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-4098-l9cg9j-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-4178-vk5vzl-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-4297-ger5pb-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-4434-1bacf3n-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-4544-1mod9m0-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-4655-14v218s-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-5244-j05927-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-5383-immke7-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-5711-li3y72-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-91110-1tcf6h5-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-91876-1qvpsdp-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-93665-e6omtk-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-96270-l86z07-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-96373-du21ld-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-96488-14o5536-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-96889-1gtncmi-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-97178-1ppkuxt-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-97404-kcrmpr-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-97860-q1g3ex-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-97900-1mp4tmq-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-97937-o67sr4-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100131-98521-jd7yia-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100201-6555-1vw40l7-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100204-40252-13zlhuo-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100204-40512-nc3x8n-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100204-57419-7yfe6o-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100204-57658-b4op4h-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100204-57712-11uqh50-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100204-58321-ukp8q0-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100204-59747-ov4w4c-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100204-60097-1ekqjc6-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100204-60773-1eh6ap6-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100205-69480-tay2k2-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100205-89390-16rh2ue-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100205-91358-cdsa2g-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100207-41099-llyyhb-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100209-65426-pequnv-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100209-65558-fbl6xv-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100212-43647-l1vsxc-0 +0 -0
- data/test/tmp/mona_lisa.jpg20100316-26215-1jtjllg-0 +0 -0
- metadata +542 -18
- data/lib/action_view/erb/util.rb +0 -44
- data/lib/action_view/safe_buffer.rb +0 -28
- data/test/view/safe_buffer_test.rb +0 -36
|
@@ -14,6 +14,18 @@ class ErbUtilTest < Test::Unit::TestCase
|
|
|
14
14
|
end
|
|
15
15
|
end
|
|
16
16
|
end
|
|
17
|
+
|
|
18
|
+
def test_html_escape_is_html_safe
|
|
19
|
+
escaped = h("<p>")
|
|
20
|
+
assert_equal "<p>", escaped
|
|
21
|
+
assert escaped.html_safe?
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def test_html_escape_passes_html_escpe_unmodified
|
|
25
|
+
escaped = h("<p>".html_safe)
|
|
26
|
+
assert_equal "<p>", escaped
|
|
27
|
+
assert escaped.html_safe?
|
|
28
|
+
end
|
|
17
29
|
|
|
18
30
|
def test_rest_in_ascii
|
|
19
31
|
(0..127).to_a.map(&:chr).each do |chr|
|
|
@@ -92,6 +92,19 @@ class FormHelperTest < ActionView::TestCase
|
|
|
92
92
|
tests ActionView::Helpers::FormHelper
|
|
93
93
|
|
|
94
94
|
def setup
|
|
95
|
+
super
|
|
96
|
+
|
|
97
|
+
# Create "label" locale for testing I18n label helpers
|
|
98
|
+
I18n.backend.store_translations 'label', {
|
|
99
|
+
:helpers => {
|
|
100
|
+
:label => {
|
|
101
|
+
:post => {
|
|
102
|
+
:body => "Write entire text here"
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
95
108
|
@post = Post.new
|
|
96
109
|
@comment = Comment.new
|
|
97
110
|
def @post.errors()
|
|
@@ -112,6 +125,10 @@ class FormHelperTest < ActionView::TestCase
|
|
|
112
125
|
@post.secret = 1
|
|
113
126
|
@post.written_on = Date.new(2004, 6, 15)
|
|
114
127
|
|
|
128
|
+
def Post.human_attribute_name(attribute)
|
|
129
|
+
attribute.to_s == "cost" ? "Total cost" : attribute.to_s.humanize
|
|
130
|
+
end
|
|
131
|
+
|
|
115
132
|
@controller = Class.new do
|
|
116
133
|
attr_reader :url_for_options
|
|
117
134
|
def url_for(options)
|
|
@@ -137,6 +154,27 @@ class FormHelperTest < ActionView::TestCase
|
|
|
137
154
|
assert_dom_equal('<label for="post_secret">Secret?</label>', label(:post, :secret?))
|
|
138
155
|
end
|
|
139
156
|
|
|
157
|
+
def test_label_with_locales_strings
|
|
158
|
+
old_locale, I18n.locale = I18n.locale, :label
|
|
159
|
+
assert_dom_equal('<label for="post_body">Write entire text here</label>', label("post", "body"))
|
|
160
|
+
ensure
|
|
161
|
+
I18n.locale = old_locale
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
def test_label_with_human_attribute_name
|
|
165
|
+
old_locale, I18n.locale = I18n.locale, :label
|
|
166
|
+
assert_dom_equal('<label for="post_cost">Total cost</label>', label(:post, :cost))
|
|
167
|
+
ensure
|
|
168
|
+
I18n.locale = old_locale
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
def test_label_with_locales_symbols
|
|
172
|
+
old_locale, I18n.locale = I18n.locale, :label
|
|
173
|
+
assert_dom_equal('<label for="post_body">Write entire text here</label>', label(:post, :body))
|
|
174
|
+
ensure
|
|
175
|
+
I18n.locale = old_locale
|
|
176
|
+
end
|
|
177
|
+
|
|
140
178
|
def test_label_with_for_attribute_as_symbol
|
|
141
179
|
assert_dom_equal('<label for="my_for">Title</label>', label(:post, :title, nil, :for => "my_for"))
|
|
142
180
|
end
|
|
@@ -1102,12 +1140,12 @@ class FormHelperTest < ActionView::TestCase
|
|
|
1102
1140
|
|
|
1103
1141
|
class LabelledFormBuilder < ActionView::Helpers::FormBuilder
|
|
1104
1142
|
(field_helpers - %w(hidden_field)).each do |selector|
|
|
1105
|
-
src = <<-END_SRC
|
|
1143
|
+
src, line = <<-END_SRC, __LINE__ + 1
|
|
1106
1144
|
def #{selector}(field, *args, &proc)
|
|
1107
|
-
("<label for='\#{field}'>\#{field.to_s.humanize}:</label> " + super + "<br/>").html_safe
|
|
1145
|
+
("<label for='\#{field}'>\#{field.to_s.humanize}:</label> " + super + "<br/>").html_safe
|
|
1108
1146
|
end
|
|
1109
1147
|
END_SRC
|
|
1110
|
-
class_eval src, __FILE__,
|
|
1148
|
+
class_eval src, __FILE__, line
|
|
1111
1149
|
end
|
|
1112
1150
|
end
|
|
1113
1151
|
|
|
@@ -1182,6 +1220,22 @@ class FormHelperTest < ActionView::TestCase
|
|
|
1182
1220
|
assert_dom_equal expected, output_buffer
|
|
1183
1221
|
|
|
1184
1222
|
end
|
|
1223
|
+
|
|
1224
|
+
def test_default_form_builder_without_object
|
|
1225
|
+
|
|
1226
|
+
form_for(:post) do |f|
|
|
1227
|
+
concat f.error_message_on('author_name')
|
|
1228
|
+
concat f.error_messages
|
|
1229
|
+
end
|
|
1230
|
+
|
|
1231
|
+
expected = %(<form action='http://www.example.com' method='post'>) +
|
|
1232
|
+
%(<div class='formError'>can't be empty</div>) +
|
|
1233
|
+
%(<div class="errorExplanation" id="errorExplanation"><h2>1 error prohibited this post from being saved</h2><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li></ul></div>) +
|
|
1234
|
+
%(</form>)
|
|
1235
|
+
|
|
1236
|
+
assert_dom_equal expected, output_buffer
|
|
1237
|
+
|
|
1238
|
+
end
|
|
1185
1239
|
|
|
1186
1240
|
# Perhaps this test should be moved to prototype helper tests.
|
|
1187
1241
|
def test_remote_form_for_with_labelled_builder
|
|
@@ -113,19 +113,19 @@ class FormTagHelperTest < ActionView::TestCase
|
|
|
113
113
|
end
|
|
114
114
|
|
|
115
115
|
def test_select_tag
|
|
116
|
-
actual = select_tag "people", "<option>david</option>"
|
|
116
|
+
actual = select_tag "people", "<option>david</option>".html_safe
|
|
117
117
|
expected = %(<select id="people" name="people"><option>david</option></select>)
|
|
118
118
|
assert_dom_equal expected, actual
|
|
119
119
|
end
|
|
120
120
|
|
|
121
121
|
def test_select_tag_with_multiple
|
|
122
|
-
actual = select_tag "colors", "<option>Red</option><option>Blue</option><option>Green</option>", :multiple => :true
|
|
122
|
+
actual = select_tag "colors", "<option>Red</option><option>Blue</option><option>Green</option>".html_safe, :multiple => :true
|
|
123
123
|
expected = %(<select id="colors" multiple="multiple" name="colors"><option>Red</option><option>Blue</option><option>Green</option></select>)
|
|
124
124
|
assert_dom_equal expected, actual
|
|
125
125
|
end
|
|
126
126
|
|
|
127
127
|
def test_select_tag_disabled
|
|
128
|
-
actual = select_tag "places", "<option>Home</option><option>Work</option><option>Pub</option>", :disabled => :true
|
|
128
|
+
actual = select_tag "places", "<option>Home</option><option>Work</option><option>Pub</option>".html_safe, :disabled => :true
|
|
129
129
|
expected = %(<select id="places" disabled="disabled" name="places"><option>Home</option><option>Work</option><option>Pub</option></select>)
|
|
130
130
|
assert_dom_equal expected, actual
|
|
131
131
|
end
|
|
@@ -135,6 +135,12 @@ class FormTagHelperTest < ActionView::TestCase
|
|
|
135
135
|
assert_match VALID_HTML_ID, input_elem['id']
|
|
136
136
|
end
|
|
137
137
|
|
|
138
|
+
def test_select_tag_with_array_options
|
|
139
|
+
assert_deprecated /array/ do
|
|
140
|
+
select_tag "people", ["<option>david</option>"]
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
|
|
138
144
|
def test_text_area_tag_size_string
|
|
139
145
|
actual = text_area_tag "body", "hello world", "size" => "20x40"
|
|
140
146
|
expected = %(<textarea cols="20" id="body" name="body" rows="40">hello world</textarea>)
|
|
@@ -256,9 +262,9 @@ class FormTagHelperTest < ActionView::TestCase
|
|
|
256
262
|
assert_dom_equal %(<input checked="checked" disabled="disabled" id="admin" name="admin" readonly="readonly" type="checkbox" value="1" />), check_box_tag("admin", 1, true, 'disabled' => true, :readonly => "yes")
|
|
257
263
|
assert_dom_equal %(<input checked="checked" id="admin" name="admin" type="checkbox" value="1" />), check_box_tag("admin", 1, true, :disabled => false, :readonly => nil)
|
|
258
264
|
assert_dom_equal %(<input type="checkbox" />), tag(:input, :type => "checkbox", :checked => false)
|
|
259
|
-
assert_dom_equal %(<select id="people" multiple="multiple" name="people[]"><option>david</option></select>), select_tag("people", "<option>david</option>", :multiple => true)
|
|
260
|
-
assert_dom_equal %(<select id="people_" multiple="multiple" name="people[]"><option>david</option></select>), select_tag("people[]", "<option>david</option>", :multiple => true)
|
|
261
|
-
assert_dom_equal %(<select id="people" name="people"><option>david</option></select>), select_tag("people", "<option>david</option>", :multiple => nil)
|
|
265
|
+
assert_dom_equal %(<select id="people" multiple="multiple" name="people[]"><option>david</option></select>), select_tag("people", "<option>david</option>".html_safe, :multiple => true)
|
|
266
|
+
assert_dom_equal %(<select id="people_" multiple="multiple" name="people[]"><option>david</option></select>), select_tag("people[]", "<option>david</option>".html_safe, :multiple => true)
|
|
267
|
+
assert_dom_equal %(<select id="people" name="people"><option>david</option></select>), select_tag("people", "<option>david</option>".html_safe, :multiple => nil)
|
|
262
268
|
end
|
|
263
269
|
|
|
264
270
|
def test_stringify_symbol_keys
|
|
@@ -313,19 +319,19 @@ class FormTagHelperTest < ActionView::TestCase
|
|
|
313
319
|
expected = %(<fieldset><legend>Your details</legend>Hello world!</fieldset>)
|
|
314
320
|
assert_dom_equal expected, output_buffer
|
|
315
321
|
|
|
316
|
-
self.output_buffer = ''
|
|
322
|
+
self.output_buffer = ''.html_safe
|
|
317
323
|
field_set_tag { concat "Hello world!" }
|
|
318
324
|
|
|
319
325
|
expected = %(<fieldset>Hello world!</fieldset>)
|
|
320
326
|
assert_dom_equal expected, output_buffer
|
|
321
327
|
|
|
322
|
-
self.output_buffer = ''
|
|
328
|
+
self.output_buffer = ''.html_safe
|
|
323
329
|
field_set_tag('') { concat "Hello world!" }
|
|
324
330
|
|
|
325
331
|
expected = %(<fieldset>Hello world!</fieldset>)
|
|
326
332
|
assert_dom_equal expected, output_buffer
|
|
327
333
|
|
|
328
|
-
self.output_buffer = ''
|
|
334
|
+
self.output_buffer = ''.html_safe
|
|
329
335
|
field_set_tag('', :class => 'format') { concat "Hello world!" }
|
|
330
336
|
|
|
331
337
|
expected = %(<fieldset class="format">Hello world!</fieldset>)
|
|
@@ -247,14 +247,6 @@ module RenderTestCases
|
|
|
247
247
|
assert_equal %(<title>title</title>\n<div id="column">column</div>\n<div id="content">content</div>\n),
|
|
248
248
|
@view.render(:file => "test/nested_layout.erb", :layout => "layouts/yield")
|
|
249
249
|
end
|
|
250
|
-
|
|
251
|
-
if '1.9'.respond_to?(:force_encoding)
|
|
252
|
-
def test_render_utf8_template
|
|
253
|
-
result = @view.render(:file => "test/utf8.html.erb", :layouts => "layouts/yield")
|
|
254
|
-
assert_equal "Русский текст\n日本語のテキスト", result
|
|
255
|
-
assert_equal Encoding::UTF_8, result.encoding
|
|
256
|
-
end
|
|
257
|
-
end
|
|
258
250
|
end
|
|
259
251
|
|
|
260
252
|
module TemplatesSetupTeardown
|
|
@@ -286,5 +278,52 @@ class ReloadableRenderTest < Test::Unit::TestCase
|
|
|
286
278
|
def setup
|
|
287
279
|
setup_view_paths_for(cache_templates = false)
|
|
288
280
|
end
|
|
281
|
+
|
|
282
|
+
if '1.9'.respond_to?(:force_encoding)
|
|
283
|
+
def test_render_utf8_template_with_magic_comment
|
|
284
|
+
with_external_encoding Encoding::ASCII_8BIT do
|
|
285
|
+
result = @view.render(:file => "test/utf8_magic.html.erb", :layouts => "layouts/yield")
|
|
286
|
+
assert_equal Encoding::UTF_8, result.encoding
|
|
287
|
+
assert_equal "Русский текст\n\nUTF-8\nUTF-8\nUTF-8\n", result
|
|
288
|
+
end
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
def test_render_utf8_template_with_default_external_encoding
|
|
292
|
+
with_external_encoding Encoding::UTF_8 do
|
|
293
|
+
result = @view.render(:file => "test/utf8.html.erb", :layouts => "layouts/yield")
|
|
294
|
+
assert_equal Encoding::UTF_8, result.encoding
|
|
295
|
+
assert_equal "Русский текст\n\nUTF-8\nUTF-8\nUTF-8\n", result
|
|
296
|
+
end
|
|
297
|
+
end
|
|
298
|
+
|
|
299
|
+
def test_render_utf8_template_with_incompatible_external_encoding
|
|
300
|
+
with_external_encoding Encoding::SJIS do
|
|
301
|
+
begin
|
|
302
|
+
result = @view.render(:file => "test/utf8.html.erb", :layouts => "layouts/yield")
|
|
303
|
+
flunk 'Should have raised incompatible encoding error'
|
|
304
|
+
rescue ActionView::TemplateError => error
|
|
305
|
+
assert_match 'invalid byte sequence in Shift_JIS', error.original_exception.message
|
|
306
|
+
end
|
|
307
|
+
end
|
|
308
|
+
end
|
|
309
|
+
|
|
310
|
+
def test_render_utf8_template_with_partial_with_incompatible_encoding
|
|
311
|
+
with_external_encoding Encoding::SJIS do
|
|
312
|
+
begin
|
|
313
|
+
result = @view.render(:file => "test/utf8_magic_with_bare_partial.html.erb", :layouts => "layouts/yield")
|
|
314
|
+
flunk 'Should have raised incompatible encoding error'
|
|
315
|
+
rescue ActionView::TemplateError => error
|
|
316
|
+
assert_match 'invalid byte sequence in Shift_JIS', error.original_exception.message
|
|
317
|
+
end
|
|
318
|
+
end
|
|
319
|
+
end
|
|
320
|
+
|
|
321
|
+
def with_external_encoding(encoding)
|
|
322
|
+
old, Encoding.default_external = Encoding.default_external, encoding
|
|
323
|
+
yield
|
|
324
|
+
ensure
|
|
325
|
+
Encoding.default_external = old
|
|
326
|
+
end
|
|
327
|
+
end
|
|
289
328
|
end
|
|
290
329
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# encoding: us-ascii
|
|
1
2
|
require 'abstract_unit'
|
|
2
3
|
require 'testing_sandbox'
|
|
3
4
|
begin
|
|
@@ -17,7 +18,7 @@ class TextHelperTest < ActionView::TestCase
|
|
|
17
18
|
end
|
|
18
19
|
|
|
19
20
|
def test_concat
|
|
20
|
-
self.output_buffer = 'foo'
|
|
21
|
+
self.output_buffer = ActiveSupport::SafeBuffer.new('foo')
|
|
21
22
|
assert_equal 'foobar', concat('bar')
|
|
22
23
|
assert_equal 'foobar', output_buffer
|
|
23
24
|
end
|
|
@@ -39,6 +40,14 @@ class TextHelperTest < ActionView::TestCase
|
|
|
39
40
|
assert_equal %Q(<p class="test">para 1</p>\n\n<p class="test">para 2</p>), simple_format("para 1\n\npara 2", :class => 'test')
|
|
40
41
|
end
|
|
41
42
|
|
|
43
|
+
def test_simple_format_should_be_html_safe
|
|
44
|
+
assert simple_format("<b> test with html tags </b>").html_safe?
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def test_simple_format_should_not_escape_safe_input
|
|
48
|
+
assert_equal "<p><b> test with safe string </b></p>", simple_format("<b> test with safe string </b>".html_safe)
|
|
49
|
+
end
|
|
50
|
+
|
|
42
51
|
def test_truncate
|
|
43
52
|
assert_equal "Hello World!", truncate("Hello World!", :length => 12)
|
|
44
53
|
assert_equal "Hello Wor...", truncate("Hello World!!", :length => 12)
|
|
@@ -224,6 +233,8 @@ class TextHelperTest < ActionView::TestCase
|
|
|
224
233
|
assert_equal("2 counts", pluralize('2', "count"))
|
|
225
234
|
assert_equal("1,066 counts", pluralize('1,066', "count"))
|
|
226
235
|
assert_equal("1.25 counts", pluralize('1.25', "count"))
|
|
236
|
+
assert_equal("1.0 count", pluralize('1.0', "count"))
|
|
237
|
+
assert_equal("1.00 count", pluralize('1.00', "count"))
|
|
227
238
|
assert_equal("2 counters", pluralize(2, "count", "counters"))
|
|
228
239
|
assert_equal("0 counters", pluralize(nil, "count", "counters"))
|
|
229
240
|
assert_equal("2 people", pluralize(2, "person"))
|
|
@@ -356,6 +367,20 @@ class TextHelperTest < ActionView::TestCase
|
|
|
356
367
|
assert_equal %(<p>#{link10_result} Link</p>), auto_link("<p>#{link10_raw} Link</p>")
|
|
357
368
|
end
|
|
358
369
|
|
|
370
|
+
def test_auto_link_other_protocols
|
|
371
|
+
silence_warnings do
|
|
372
|
+
begin
|
|
373
|
+
old_re_value = ActionView::Helpers::TextHelper::AUTO_LINK_RE
|
|
374
|
+
ActionView::Helpers::TextHelper.const_set :AUTO_LINK_RE, %r{(ftp://)[^\s<]+}
|
|
375
|
+
link_raw = 'ftp://example.com/file.txt'
|
|
376
|
+
link_result = generate_result(link_raw)
|
|
377
|
+
assert_equal %(Download #{link_result}), auto_link("Download #{link_raw}")
|
|
378
|
+
ensure
|
|
379
|
+
ActionView::Helpers::TextHelper.const_set :AUTO_LINK_RE, old_re_value
|
|
380
|
+
end
|
|
381
|
+
end
|
|
382
|
+
end
|
|
383
|
+
|
|
359
384
|
def test_auto_link_already_linked
|
|
360
385
|
linked1 = generate_result('Ruby On Rails', 'http://www.rubyonrails.com')
|
|
361
386
|
linked2 = generate_result('www.rubyonrails.com', 'http://www.rubyonrails.com')
|
|
@@ -9,7 +9,7 @@ class TranslationHelperTest < Test::Unit::TestCase
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
def test_delegates_to_i18n_setting_the_raise_option
|
|
12
|
-
I18n.expects(:translate).with(:foo, :locale => 'en', :raise => true)
|
|
12
|
+
I18n.expects(:translate).with(:foo, :locale => 'en', :raise => true).returns("")
|
|
13
13
|
translate :foo, :locale => 'en'
|
|
14
14
|
end
|
|
15
15
|
|
|
@@ -17,6 +17,18 @@ class TranslationHelperTest < Test::Unit::TestCase
|
|
|
17
17
|
expected = '<span class="translation_missing">en, foo</span>'
|
|
18
18
|
assert_equal expected, translate(:foo)
|
|
19
19
|
end
|
|
20
|
+
|
|
21
|
+
def test_translation_of_an_array
|
|
22
|
+
I18n.expects(:translate).with(["foo", "bar"], :raise => true).returns(["foo", "bar"])
|
|
23
|
+
assert_equal "foobar", translate(["foo", "bar"])
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_translation_of_an_array_with_html
|
|
27
|
+
expected = '<a href="#">foo</a><a href="#">bar</a>'
|
|
28
|
+
I18n.expects(:translate).with(["foo", "bar"], :raise => true).returns(['<a href="#">foo</a>', '<a href="#">bar</a>'])
|
|
29
|
+
@view = ActionView::Base.new(ActionController::Base.view_paths, {})
|
|
30
|
+
assert_equal expected, @view.render(:file => "test/array_translation")
|
|
31
|
+
end
|
|
20
32
|
|
|
21
33
|
def test_delegates_localize_to_i18n
|
|
22
34
|
@time = Time.utc(2008, 7, 8, 12, 18, 38)
|
|
@@ -26,7 +38,13 @@ class TranslationHelperTest < Test::Unit::TestCase
|
|
|
26
38
|
|
|
27
39
|
def test_scoping_by_partial
|
|
28
40
|
expects(:template).returns(stub(:path_without_format_and_extension => "people/index"))
|
|
29
|
-
I18n.expects(:translate).with("people.index.foo", :locale => 'en', :raise => true)
|
|
41
|
+
I18n.expects(:translate).with("people.index.foo", :locale => 'en', :raise => true).returns("")
|
|
30
42
|
translate ".foo", :locale => 'en'
|
|
31
43
|
end
|
|
44
|
+
|
|
45
|
+
def test_scoping_by_partial_of_an_array
|
|
46
|
+
I18n.expects(:translate).with("test.scoped_array_translation.foo.bar", :raise => true).returns(["foo", "bar"])
|
|
47
|
+
@view = ActionView::Base.new(ActionController::Base.view_paths, {})
|
|
48
|
+
assert_equal "foobar", @view.render(:file => "test/scoped_array_translation")
|
|
49
|
+
end
|
|
32
50
|
end
|
|
@@ -88,6 +88,10 @@ class UrlHelperTest < ActionView::TestCase
|
|
|
88
88
|
)
|
|
89
89
|
end
|
|
90
90
|
|
|
91
|
+
def test_button_to_returns_an_html_safe_string
|
|
92
|
+
assert button_to("Hello", "http://www.example.com").html_safe?
|
|
93
|
+
end
|
|
94
|
+
|
|
91
95
|
def test_link_tag_with_straight_url
|
|
92
96
|
assert_dom_equal "<a href=\"http://www.example.com\">Hello</a>", link_to("Hello", "http://www.example.com")
|
|
93
97
|
end
|
|
@@ -344,7 +348,7 @@ class UrlHelperTest < ActionView::TestCase
|
|
|
344
348
|
end
|
|
345
349
|
|
|
346
350
|
def test_mail_to_with_img
|
|
347
|
-
assert_dom_equal %(<a href="mailto:feedback@example.com"><img src="/feedback.png" /></a>), mail_to('feedback@example.com', '<img src="/feedback.png" />')
|
|
351
|
+
assert_dom_equal %(<a href="mailto:feedback@example.com"><img src="/feedback.png" /></a>), mail_to('feedback@example.com', '<img src="/feedback.png" />'.html_safe)
|
|
348
352
|
end
|
|
349
353
|
|
|
350
354
|
def test_mail_to_with_hex
|
|
@@ -562,6 +566,10 @@ class PolymorphicControllerTest < ActionView::TestCase
|
|
|
562
566
|
render :inline => "<%= url_for([@workshop, @session]) %>\n<%= link_to('Session', [@workshop, @session]) %>"
|
|
563
567
|
end
|
|
564
568
|
|
|
569
|
+
def show_workshop_of_nil_sessions
|
|
570
|
+
render :inline => "<%= workshop_sessions_path(nil) %>"
|
|
571
|
+
end
|
|
572
|
+
|
|
565
573
|
def rescue_action(e) raise e end
|
|
566
574
|
end
|
|
567
575
|
|
|
@@ -608,6 +616,16 @@ class PolymorphicControllerTest < ActionView::TestCase
|
|
|
608
616
|
end
|
|
609
617
|
end
|
|
610
618
|
|
|
619
|
+
def test_existing_nested_resource_with_nil_id
|
|
620
|
+
@controller = SessionsController.new
|
|
621
|
+
|
|
622
|
+
with_restful_routing do
|
|
623
|
+
assert_raise ActionController::RoutingError do
|
|
624
|
+
get :show_workshop_of_nil_sessions
|
|
625
|
+
end
|
|
626
|
+
end
|
|
627
|
+
end
|
|
628
|
+
|
|
611
629
|
protected
|
|
612
630
|
def with_restful_routing
|
|
613
631
|
with_routing do |set|
|
|
@@ -615,6 +633,7 @@ class PolymorphicControllerTest < ActionView::TestCase
|
|
|
615
633
|
map.resources :workshops do |w|
|
|
616
634
|
w.resources :sessions
|
|
617
635
|
end
|
|
636
|
+
map.show_workshop_of_nil_sessions 'sessions/show_workshop_of_nil_sessions', :controller => 'sessions', :action => 'show_workshop_of_nil_sessions'
|
|
618
637
|
end
|
|
619
638
|
yield
|
|
620
639
|
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
contents
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
contents
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Hello
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Hello
|
|
File without changes
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
contents
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
contents
|