&& ';'.
- ENDDO.
- result = result && cl_abap_char_utilities=>cr_lf.
- ENDLOOP.
-
-
- ENDMETHOD.
-
- METHOD get_json_by_table.
-
- result = /ui2/cl_json=>serialize(
- val
-* compress =
-* name =
-* pretty_name =
-* type_descr =
-* assoc_arrays =
-* ts_as_iso8601 =
-* expand_includes =
-* assoc_arrays_opt =
-* numc_as_string =
-* name_mappings =
-* conversion_exits =
- " format_output = abap_true
-* hex_as_base64 =
- ).
-
-
- ENDMETHOD.
-
- METHOD get_xml_by_table.
-
- CALL TRANSFORMATION id SOURCE values = val RESULT XML result.
-
- ENDMETHOD.
-
- METHOD get_fieldlist_by_table.
-
- DATA(lo_tab) = CAST cl_abap_tabledescr( cl_abap_datadescr=>describe_by_data( it_table ) ).
- DATA(lo_struc) = CAST cl_abap_structdescr( lo_tab->get_table_line_type( ) ).
-
- DATA(lt_comp) = lo_struc->get_components( ).
-
- LOOP AT lt_comp INTO DATA(ls_comp).
- INSERT ls_comp-name INTO TABLE result.
- ENDLOOP.
-
- ENDMETHOD.
-
-
- METHOD get_test_data_json.
-
- result = `[` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` }` && |\n| &&
- `]`.
-
- ENDMETHOD.
-
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_13.clas.xml b/src/00/z2ui5_cl_app_demo_13.clas.xml
deleted file mode 100644
index baa76f3f..00000000
--- a/src/00/z2ui5_cl_app_demo_13.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_13
- E
- demo - table maintenance
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_14.clas.abap b/src/00/z2ui5_cl_app_demo_14.clas.abap
deleted file mode 100644
index 63331c2f..00000000
--- a/src/00/z2ui5_cl_app_demo_14.clas.abap
+++ /dev/null
@@ -1,109 +0,0 @@
-CLASS z2ui5_cl_app_demo_14 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA mv_type TYPE string.
- DATA mv_path TYPE string.
- DATA mv_editor TYPE string.
- DATA mv_check_editable TYPE abap_bool.
- DATA check_initialized TYPE abap_bool.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_14 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- IF check_initialized = abap_false.
- check_initialized = abap_true.
- mv_path = '../../demo/text'.
- mv_type = 'plain_text'.
- ENDIF.
-
- CASE client->get( )-event.
-
- WHEN 'DB_LOAD'.
-
- mv_editor = COND #(
- WHEN mv_path CS 'abap' THEN lcl_mime_api=>read_abap( )
- WHEN mv_path CS 'json' THEN lcl_mime_api=>read_json( )
- WHEN mv_path CS 'yaml' THEN lcl_mime_api=>read_yaml( )
- WHEN mv_path CS 'text' THEN lcl_mime_api=>read_text( )
- WHEN mv_path CS 'js' THEN lcl_mime_api=>read_js( )
- ).
- client->popup_message_toast( 'Download successfull' ).
-
- WHEN 'DB_SAVE'.
- lcl_mime_api=>save_data( ).
- client->popup_message_box( text = 'Upload successfull. File saved!' type = 'success' ).
- WHEN 'EDIT'.
- mv_check_editable = xsdbool( mv_check_editable = abap_false ).
- WHEN 'CLEAR'.
- mv_editor = ``.
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
- ENDCASE.
-
- DATA(page) = Z2UI5_CL_XML_VIEW=>factory( )->shell( )->page(
- title = 'abap2UI5 - MIME Editor'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link( text = 'Demo' target = '_blank' href = 'https://twitter.com/OblomovDev/status/1631562906570575875'
- )->link( text = 'Source_Code' target = '_blank' href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent( ).
-
- DATA(grid) = page->grid( 'L7 M12 S12' )->content( 'layout' ).
-
- grid->simple_form( title = 'File' editable = abap_true )->content( 'form'
- )->label( 'path'
- )->input( client->_bind( mv_path )
- )->label( 'Option'
- )->input(
- value = client->_bind( mv_type )
- suggestionitems = client->_bind_one( lcl_mime_api=>get_editor_type( ) ) )->get(
- )->suggestion_items(
- )->list_item( text = '{NAME}' additionaltext = '{VALUE}'
- )->get_parent( )->get_parent(
- )->button(
- text = 'Download'
- press = client->_event( 'DB_LOAD' )
- icon = 'sap-icon://download-from-cloud' ).
-
- grid = page->grid( 'L12 M12 S12' )->content( 'layout' ).
-
- grid->simple_form( 'Editor' )->content( 'form'
- )->scroll_container( '75%'
- )->code_editor(
- type = mv_type
- editable = mv_check_editable
- value = client->_bind( mv_editor ) ).
-
- page->footer( )->overflow_toolbar(
- )->button(
- text = 'Clear'
- press = client->_event( 'CLEAR' )
- icon = 'sap-icon://delete'
- )->toolbar_spacer(
- )->button(
- text = 'Edit'
- press = client->_event( 'EDIT' )
- icon = 'sap-icon://edit'
- )->button(
- text = 'Upload'
- press = client->_event( 'DB_SAVE' )
- type = 'Emphasized'
- icon = 'sap-icon://upload-to-cloud'
- enabled = xsdbool( mv_editor IS NOT INITIAL ) ).
-
- client->set_next( value #( xml_main = page->get_root( )->xml_get( ) ) ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_14.clas.locals_imp.abap b/src/00/z2ui5_cl_app_demo_14.clas.locals_imp.abap
deleted file mode 100644
index c7b3f6f5..00000000
--- a/src/00/z2ui5_cl_app_demo_14.clas.locals_imp.abap
+++ /dev/null
@@ -1,190 +0,0 @@
-CLASS lcl_mime_api DEFINITION FINAL.
-
- PUBLIC SECTION.
- CLASS-METHODS read_abap
- RETURNING
- VALUE(r_result) TYPE string.
- CLASS-METHODS read_json
- RETURNING
- VALUE(r_result) TYPE string.
- CLASS-METHODS read_js
- RETURNING
- VALUE(r_result) TYPE string.
- CLASS-METHODS read_yaml
- RETURNING
- VALUE(r_result) TYPE string.
- CLASS-METHODS read_text
- RETURNING
- VALUE(r_result) TYPE string.
-
- TYPES:
- BEGIN OF ty_s_suggest,
- name TYPE string,
- value TYPE string,
- END OF ty_s_suggest.
- TYPES ty_t_suggest TYPE STANDARD TABLE OF ty_s_suggest WITH EMPTY KEY.
-
- CLASS-METHODS get_editor_type
- RETURNING
- VALUE(r_result) TYPE ty_t_suggest.
- CLASS-METHODS save_data.
-
- PROTECTED SECTION.
-
- PRIVATE SECTION.
-
-ENDCLASS.
-
-CLASS lcl_mime_api IMPLEMENTATION.
-
-
- METHOD read_abap.
-
-r_result = `METHOD SELECT_FILES.` && |\n| &&
- |\n| &&
- ` DATA: LV_RET_CODE TYPE I,` && |\n| &&
- ` LV_USR_AXN TYPE I.` && |\n| &&
- |\n| &&
- ` CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG(` && |\n| &&
- ` EXPORTING` && |\n| &&
- ` WINDOW_TITLE = 'Select file'` && |\n| &&
- ` MULTISELECTION = 'X'` && |\n| &&
- ` CHANGING` && |\n| &&
- ` FILE_TABLE = ME->PT_FILETAB` && |\n| &&
- ` RC = LV_RET_CODE` && |\n| &&
- ` USER_ACTION = LV_USR_AXN` && |\n| &&
- ` EXCEPTIONS` && |\n| &&
- ` FILE_OPEN_DIALOG_FAILED = 1` && |\n| &&
- ` CNTL_ERROR = 2` && |\n| &&
- ` ERROR_NO_GUI = 3` && |\n| &&
- ` NOT_SUPPORTED_BY_GUI = 4` && |\n| &&
- ` OTHERS = 5` && |\n| &&
- ` ).` && |\n| &&
- ` IF SY-SUBRC <> 0 OR` && |\n| &&
- ` LV_USR_AXN = CL_GUI_FRONTEND_SERVICES=>ACTION_CANCEL.` && |\n| &&
- ` RAISE EX_FILE_SEL_ERR.` && |\n| &&
- ` ENDIF.` && |\n| &&
- |\n| &&
- ` ENDMETHOD. `.
-
- ENDMETHOD.
-
-
- METHOD read_json.
-
- r_result = `{` && |\n| &&
- ` "quiz": {` && |\n| &&
- ` "sport": {` && |\n| &&
- ` "q1": {` && |\n| &&
- ` "test" : false,` && |\n| &&
- ` "question": "Which one is correct team name in NBA?",` && |\n| &&
- ` "options": [` && |\n| &&
- ` "New York Bulls",` && |\n| &&
- ` "Los Angeles Kings",` && |\n| &&
- ` "Golden State Warriros",` && |\n| &&
- ` "Huston Rocket"` && |\n| &&
- ` ],` && |\n| &&
- ` "answer": "Huston Rocket"` && |\n| &&
- ` }` && |\n| &&
- ` },` && |\n| &&
- ` "maths": {` && |\n| &&
- ` "q1": {` && |\n| &&
- ` "question": "5 + 7 = ?",` && |\n| &&
- ` "options": [` && |\n| &&
- ` "10",` && |\n| &&
- ` "11",` && |\n| &&
- ` "12",` && |\n| &&
- ` "13"` && |\n| &&
- ` ],` && |\n| &&
- ` "answer": "12"` && |\n| &&
- ` },` && |\n| &&
- ` "q2": {` && |\n| &&
- ` "question": true,` && |\n| &&
- ` "options": [` && |\n| &&
- ` "1",` && |\n| &&
- ` "2",` && |\n| &&
- ` "3",` && |\n| &&
- ` "4"` && |\n| &&
- ` ],` && |\n| &&
- ` "answer": 487829` && |\n| &&
- ` }` && |\n| &&
- ` }` && |\n| &&
- ` }` && |\n| &&
- `}`.
-
- ENDMETHOD.
-
-
- METHOD read_js.
-
- r_result = `function showAlert() {` && |\n| &&
- ` alert("Alert from JS file");` && |\n| &&
- `}` && |\n| &&
- |\n| &&
- `function updateHeading() {` && |\n| &&
- ` document.getElementById('heading').innerHTML = 'Heading changed with JS';` && |\n| &&
- `}`.
-
- ENDMETHOD.
-
-
- METHOD read_yaml.
-
- r_result = `# Employee records` && |\n| &&
- `- martin:` && |\n| &&
- ` name: Martin Developer` && |\n| &&
- ` job: Developer` && |\n| &&
- ` skills:` && |\n| &&
- ` - python` && |\n| &&
- ` - perl` && |\n| &&
- ` - pascal` && |\n| &&
- `- tabitha:` && |\n| &&
- ` name: Tabitha Bitumen` && |\n| &&
- ` job: Developer` && |\n| &&
- ` skills:` && |\n| &&
- ` - lisp` && |\n| &&
- ` - fortran` && |\n| &&
- ` - erlang`.
-
- ENDMETHOD.
-
-
- METHOD read_text.
- r_result = `TXT test file` && |\n| &&
- `Purpose: Provide example of this file type` && |\n| &&
- `Document file type: TXT` && |\n| &&
- `Version: 1.0` && |\n| &&
- `Remark:` && |\n| &&
- |\n| &&
- `Example content:` && |\n| &&
- `The names "John Doe" for males, "Jane Doe" or "Jane Roe" for females, or "Jonnie Doe" and "Janie Doe" for children, or just "Doe" non-gender-specifically are used as placeholder names for a party whose true identity is unknown or mus` &&
-`t be withheld in a legal action, case, or discussion. The names are also used to refer to acorpse or hospital patient whose identity is unknown. This practice is widely used in the United States and Canada, but is rarely used in other English-speak` &&
-`ing countries including the United Kingdom itself, from where the use of "John Doe" in a legal context originates. The names Joe Bloggs or John Smith are used in the UK instead, as well as in Australia and New Zealand.` && |\n| &&
- |\n| &&
- `John Doe is sometimes used to refer to a typical male in other contexts as well, in a similar manner to John Q. Public, known in Great Britain as Joe Public, John Smith or Joe Bloggs. For example, the first name listed on a form is o` &&
-`ften John Doe, along with a fictional address or other fictional information to provide an example of how to fill in the form. The name is also used frequently in popular culture, for example in the Frank Capra film Meet John Doe. John Doe was also` &&
-` the name of a 2002 American television series.`.
- ENDMETHOD.
-
- METHOD get_editor_type.
-
- DATA(lv_types) = `abap, abc, actionscript, ada, apache_conf, applescript, asciidoc, assembly_x86, autohotkey, batchfile, bro, c9search, c_cpp, cirru, clojure, cobol, coffee, coldfusion, csharp, css, curly, d, dart, diff, django, dockerfile, ` &&
-`dot, drools, eiffel, yaml, ejs, elixir, elm, erlang, forth, fortran, ftl, gcode, gherkin, gitignore, glsl, gobstones, golang, groovy, haml, handlebars, haskell, haskell_cabal, haxe, hjson, html, html_elixir, html_ruby, ini, io, jack, jade, java, ja` &&
-`vascri` &&
-`pt, json, jsoniq, jsp, jsx, julia, kotlin, latex, lean, less, liquid, lisp, live_script, livescript, logiql, lsl, lua, luapage, lucene, makefile, markdown, mask, matlab, mavens_mate_log, maze, mel, mips_assembler, mipsassembler, mushcode, mysql, ni` &&
-`x, nsis, objectivec, ocaml, pascal, perl, pgsql, php, plain_text, powershell, praat, prolog, properties, protobuf, python, r, razor, rdoc, rhtml, rst, ruby, rust, sass, scad, scala, scheme, scss, sh, sjs, smarty, snippets, soy_template, space, sql,` &&
-` sqlserver, stylus, svg, swift, swig, tcl, tex, text, textile, toml, tsx, twig, typescript, vala, vbscript, velocity, verilog, vhdl, wollok, xml, xquery, terraform, slim, redshift, red, puppet, php_laravel_blade, mixal, jssm, fsharp, edifact,` &&
-` csp, cssound_score, cssound_orchestra, cssound_document`.
- SPLIT lv_types AT ',' INTO TABLE DATA(lt_types).
-
-
- r_result = VALUE #( FOR row IN lt_types ( name = shift_right( shift_left( row ) ) value = shift_right( shift_left( row ) ) ) ).
-
- ENDMETHOD.
-
-
- METHOD save_data.
- "save data here
- ENDMETHOD.
-
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_14.clas.xml b/src/00/z2ui5_cl_app_demo_14.clas.xml
deleted file mode 100644
index 4da649c9..00000000
--- a/src/00/z2ui5_cl_app_demo_14.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_14
- E
- demo - mime editor
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_15.clas.abap b/src/00/z2ui5_cl_app_demo_15.clas.abap
deleted file mode 100644
index 22a98542..00000000
--- a/src/00/z2ui5_cl_app_demo_15.clas.abap
+++ /dev/null
@@ -1,57 +0,0 @@
-CLASS z2ui5_cl_app_demo_15 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA mv_html_text TYPE string.
- DATA check_initialized TYPE abap_bool.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_15 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- IF check_initialized = abap_false.
- check_initialized = abap_true.
-
- mv_html_text = `subheader
link: link to sap.com - links open in ` &&
-`a new window.
paragraph: strong and emphasized.
list:
pre:
abc def ghi
code: var el = document.getElementById("myId");
cite: a reference to a source
` &&
-`- definition:
- definition list of terms and descriptions
`.
-
- ENDIF.
-
- CASE client->get( )-event.
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
-
- ENDCASE.
-
- data(view) = Z2UI5_CL_XML_VIEW=>factory( )->shell(
- )->page(
- title = 'abap2UI5 - Formatted Text'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->toolbar_spacer(
- )->link( text = 'Source_Code' target = '_blank' href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent(
- )->vbox( 'sapUiSmallMargin'
- )->link(
- text = 'Control Documentation - SAP UI5 Formatted Text'
- href = 'https://sapui5.hana.ondemand.com/#/entity/sap.m.FormattedText/sample/sap.m.sample.FormattedText'
- )->get_parent(
- )->vbox( 'sapUiSmallMargin'
- )->formatted_text( mv_html_text ).
-
- client->set_next( value #( xml_main = view->get_root( )->xml_get( ) ) ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_15.clas.locals_imp.abap b/src/00/z2ui5_cl_app_demo_15.clas.locals_imp.abap
deleted file mode 100644
index 85ddeefe..00000000
--- a/src/00/z2ui5_cl_app_demo_15.clas.locals_imp.abap
+++ /dev/null
@@ -1,194 +0,0 @@
-CLASS lcl_mime_api DEFINITION FINAL.
-
- PUBLIC SECTION.
- CLASS-METHODS read_abap
- RETURNING
- VALUE(r_result) TYPE string.
- CLASS-METHODS read_json
- RETURNING
- VALUE(r_result) TYPE string.
- CLASS-METHODS read_js
- RETURNING
- VALUE(r_result) TYPE string.
- CLASS-METHODS read_yaml
- RETURNING
- VALUE(r_result) TYPE string.
- CLASS-METHODS read_text
- RETURNING
- VALUE(r_result) TYPE string.
-
- TYPES:
- BEGIN OF ty_s_suggest,
- name TYPE string,
- value TYPE string,
- END OF ty_s_suggest.
- TYPES ty_t_suggest TYPE STANDARD TABLE OF ty_s_suggest WITH EMPTY KEY.
-
- CLASS-METHODS get_editor_type
- RETURNING
- VALUE(r_result) TYPE ty_t_suggest.
-
- CLASS-METHODS save_data
- IMPORTING
- i_mv_editor TYPE string.
-
-
- PROTECTED SECTION.
-
- PRIVATE SECTION.
-
-ENDCLASS.
-
-CLASS lcl_mime_api IMPLEMENTATION.
-
-
- METHOD read_abap.
-
-r_result = `METHOD SELECT_FILES.` && |\n| &&
- |\n| &&
- ` DATA: LV_RET_CODE TYPE I,` && |\n| &&
- ` LV_USR_AXN TYPE I.` && |\n| &&
- |\n| &&
- ` CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG(` && |\n| &&
- ` EXPORTING` && |\n| &&
- ` WINDOW_TITLE = 'Select file'` && |\n| &&
- ` MULTISELECTION = 'X'` && |\n| &&
- ` CHANGING` && |\n| &&
- ` FILE_TABLE = ME->PT_FILETAB` && |\n| &&
- ` RC = LV_RET_CODE` && |\n| &&
- ` USER_ACTION = LV_USR_AXN` && |\n| &&
- ` EXCEPTIONS` && |\n| &&
- ` FILE_OPEN_DIALOG_FAILED = 1` && |\n| &&
- ` CNTL_ERROR = 2` && |\n| &&
- ` ERROR_NO_GUI = 3` && |\n| &&
- ` NOT_SUPPORTED_BY_GUI = 4` && |\n| &&
- ` OTHERS = 5` && |\n| &&
- ` ).` && |\n| &&
- ` IF SY-SUBRC <> 0 OR` && |\n| &&
- ` LV_USR_AXN = CL_GUI_FRONTEND_SERVICES=>ACTION_CANCEL.` && |\n| &&
- ` RAISE EX_FILE_SEL_ERR.` && |\n| &&
- ` ENDIF.` && |\n| &&
- |\n| &&
- ` ENDMETHOD. `.
-
- ENDMETHOD.
-
-
- METHOD read_json.
-
- r_result = `{` && |\n| &&
- ` "quiz": {` && |\n| &&
- ` "sport": {` && |\n| &&
- ` "q1": {` && |\n| &&
- ` "test" : false,` && |\n| &&
- ` "question": "Which one is correct team name in NBA?",` && |\n| &&
- ` "options": [` && |\n| &&
- ` "New York Bulls",` && |\n| &&
- ` "Los Angeles Kings",` && |\n| &&
- ` "Golden State Warriros",` && |\n| &&
- ` "Huston Rocket"` && |\n| &&
- ` ],` && |\n| &&
- ` "answer": "Huston Rocket"` && |\n| &&
- ` }` && |\n| &&
- ` },` && |\n| &&
- ` "maths": {` && |\n| &&
- ` "q1": {` && |\n| &&
- ` "question": "5 + 7 = ?",` && |\n| &&
- ` "options": [` && |\n| &&
- ` "10",` && |\n| &&
- ` "11",` && |\n| &&
- ` "12",` && |\n| &&
- ` "13"` && |\n| &&
- ` ],` && |\n| &&
- ` "answer": "12"` && |\n| &&
- ` },` && |\n| &&
- ` "q2": {` && |\n| &&
- ` "question": true,` && |\n| &&
- ` "options": [` && |\n| &&
- ` "1",` && |\n| &&
- ` "2",` && |\n| &&
- ` "3",` && |\n| &&
- ` "4"` && |\n| &&
- ` ],` && |\n| &&
- ` "answer": 487829` && |\n| &&
- ` }` && |\n| &&
- ` }` && |\n| &&
- ` }` && |\n| &&
- `}`.
-
- ENDMETHOD.
-
-
- METHOD read_js.
-
- r_result = `function showAlert() {` && |\n| &&
- ` alert("Alert from JS file");` && |\n| &&
- `}` && |\n| &&
- |\n| &&
- `function updateHeading() {` && |\n| &&
- ` document.getElementById('heading').innerHTML = 'Heading changed with JS';` && |\n| &&
- `}`.
-
- ENDMETHOD.
-
-
- METHOD read_yaml.
-
- r_result = `# Employee records` && |\n| &&
- `- martin:` && |\n| &&
- ` name: Martin Developer` && |\n| &&
- ` job: Developer` && |\n| &&
- ` skills:` && |\n| &&
- ` - python` && |\n| &&
- ` - perl` && |\n| &&
- ` - pascal` && |\n| &&
- `- tabitha:` && |\n| &&
- ` name: Tabitha Bitumen` && |\n| &&
- ` job: Developer` && |\n| &&
- ` skills:` && |\n| &&
- ` - lisp` && |\n| &&
- ` - fortran` && |\n| &&
- ` - erlang`.
-
- ENDMETHOD.
-
-
- METHOD read_text.
- r_result = `TXT test file` && |\n| &&
- `Purpose: Provide example of this file type` && |\n| &&
- `Document file type: TXT` && |\n| &&
- `Version: 1.0` && |\n| &&
- `Remark:` && |\n| &&
- |\n| &&
- `Example content:` && |\n| &&
- `The names "John Doe" for males, "Jane Doe" or "Jane Roe" for females, or "Jonnie Doe" and "Janie Doe" for children, or just "Doe" non-gender-specifically are used as placeholder names for a party whose true identity is unknown or mus` &&
-`t be withheld in a legal action, case, or discussion. The names are also used to refer to acorpse or hospital patient whose identity is unknown. This practice is widely used in the United States and Canada, but is rarely used in other English-speak` &&
-`ing countries including the United Kingdom itself, from where the use of "John Doe" in a legal context originates. The names Joe Bloggs or John Smith are used in the UK instead, as well as in Australia and New Zealand.` && |\n| &&
- |\n| &&
- `John Doe is sometimes used to refer to a typical male in other contexts as well, in a similar manner to John Q. Public, known in Great Britain as Joe Public, John Smith or Joe Bloggs. For example, the first name listed on a form is o` &&
-`ften John Doe, along with a fictional address or other fictional information to provide an example of how to fill in the form. The name is also used frequently in popular culture, for example in the Frank Capra film Meet John Doe. John Doe was also` &&
-` the name of a 2002 American television series.`.
- ENDMETHOD.
-
- METHOD get_editor_type.
-
- DATA(lv_types) = `abap, abc, actionscript, ada, apache_conf, applescript, asciidoc, assembly_x86, autohotkey, batchfile, bro, c9search, c_cpp, cirru, clojure, cobol, coffee, coldfusion, csharp, css, curly, d, dart, diff, django, dockerfile, ` &&
-`dot, drools, eiffel, yaml, ejs, elixir, elm, erlang, forth, fortran, ftl, gcode, gherkin, gitignore, glsl, gobstones, golang, groovy, haml, handlebars, haskell, haskell_cabal, haxe, hjson, html, html_elixir, html_ruby, ini, io, jack, jade, java, ja` &&
-`vascri` &&
-`pt, json, jsoniq, jsp, jsx, julia, kotlin, latex, lean, less, liquid, lisp, live_script, livescript, logiql, lsl, lua, luapage, lucene, makefile, markdown, mask, matlab, mavens_mate_log, maze, mel, mips_assembler, mipsassembler, mushcode, mysql, ni` &&
-`x, nsis, objectivec, ocaml, pascal, perl, pgsql, php, plain_text, powershell, praat, prolog, properties, protobuf, python, r, razor, rdoc, rhtml, rst, ruby, rust, sass, scad, scala, scheme, scss, sh, sjs, smarty, snippets, soy_template, space, sql,` &&
-` sqlserver, stylus, svg, swift, swig, tcl, tex, text, textile, toml, tsx, twig, typescript, vala, vbscript, velocity, verilog, vhdl, wollok, xml, xquery, terraform, slim, redshift, red, puppet, php_laravel_blade, mixal, jssm, fsharp, edifact,` &&
-` csp, cssound_score, cssound_orchestra, cssound_document`.
- SPLIT lv_types AT ',' INTO TABLE DATA(lt_types).
-
-
- r_result = VALUE #( FOR row IN lt_types ( name = shift_right( shift_left( row ) ) value = shift_right( shift_left( row ) ) ) ).
-
- ENDMETHOD.
-
-
- METHOD save_data.
- "save data here
- ENDMETHOD.
-
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_15.clas.xml b/src/00/z2ui5_cl_app_demo_15.clas.xml
deleted file mode 100644
index 5732cb48..00000000
--- a/src/00/z2ui5_cl_app_demo_15.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_15
- E
- selscreen - formatted text
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_16.clas.abap b/src/00/z2ui5_cl_app_demo_16.clas.abap
deleted file mode 100644
index 48e8fda1..00000000
--- a/src/00/z2ui5_cl_app_demo_16.clas.abap
+++ /dev/null
@@ -1,386 +0,0 @@
-CLASS z2ui5_cl_app_demo_16 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA check_initialized TYPE abap_bool.
-
- DATA mv_type TYPE string.
- DATA mv_path TYPE string.
-
- DATA mv_sel1 TYPE abap_bool.
- DATA mv_sel2 TYPE abap_bool.
- DATA mv_sel3 TYPE abap_bool.
-
- DATA mv_sel4 TYPE abap_bool.
- DATA mv_sel5 TYPE abap_bool.
- DATA mv_sel6 TYPE abap_bool.
- DATA mv_sel7 TYPE abap_bool.
- DATA mv_sel8 TYPE abap_bool.
- DATA mv_sel9 TYPE abap_bool.
- DATA mv_sel10 TYPE abap_bool.
- DATA mv_sel11 TYPE abap_bool.
- DATA mv_sel12 TYPE abap_bool.
-
- DATA mv_tab_bar_active TYPE abap_bool.
- DATA mv_tab_donut_active TYPE abap_bool.
- DATA mv_tab_line_active TYPE abap_bool.
- DATA mv_tab_radial_active TYPE abap_bool.
-
- METHODS render_tab_bar
- IMPORTING
- client TYPE REF TO z2ui5_if_client
- container TYPE REF TO Z2UI5_CL_XML_VIEW.
-
- METHODS render_tab_donut
- IMPORTING
- client TYPE REF TO z2ui5_if_client
- container TYPE REF TO Z2UI5_CL_XML_VIEW.
-
- METHODS render_tab_line
- IMPORTING
- client TYPE REF TO z2ui5_if_client
- container TYPE REF TO Z2UI5_CL_XML_VIEW.
-
- METHODS render_tab_radial
- IMPORTING
- client TYPE REF TO z2ui5_if_client
- container TYPE REF TO Z2UI5_CL_XML_VIEW.
-
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_16 IMPLEMENTATION.
-
-
- METHOD render_tab_bar.
-
- DATA(grid) = container->tab(
- text = 'Bar Chart'
- selected = client->_bind( mv_tab_bar_active )
- )->grid( 'XL6 L6 M6 S12' ).
-
- grid->link(
- text = 'Go to the SAP Demos for Interactive bar Charts here...' target = '_blank'
- href = 'https://sapui5.hana.ondemand.com/#/entity/sap.suite.ui.microchart.InteractiveBarChart/sample/sap.suite.ui.microchart.sample.InteractiveBarChart'
- )->text(
- text = 'Absolute and Percentage value'
- class = 'sapUiSmallMargin'
- )->get( )->layout_data(
- )->grid_data( 'XL12 L12 M12 S12' ).
-
- DATA(bar) = grid->flex_box(
- width = '22rem'
- height = '13rem'
- alignitems = 'Center'
- class = 'sapUiSmallMargin'
- )->items( )->interact_bar_chart(
- selectionchanged = client->_event( 'BAR_CHANGED' )
- press = client->_event( 'BAR_CHANGED' )
- )->bars( ).
- bar->interact_bar_chart_bar( selected = client->_bind( mv_sel1 ) label = 'Product 1' value = '10' ).
- bar->interact_bar_chart_bar( selected = client->_bind( mv_sel2 ) label = 'Product 2' value = '20' ).
- bar->interact_bar_chart_bar( selected = client->_bind( mv_sel3 ) label = 'Product 3' value = '70' ).
-
- bar = grid->flex_box(
- width = '22rem'
- height = '13rem'
- alignitems = 'Center'
- class = 'sapUiSmallMargin'
- )->items( )->interact_bar_chart(
- selectionchanged = client->_event( 'BAR_CHANGED' )
- )->bars( ).
- bar->interact_bar_chart_bar( label = 'Product 1' value = '10' displayedvalue = '10%' ).
- bar->interact_bar_chart_bar( label = 'Product 2' value = '20' displayedvalue = '20%' ).
- bar->interact_bar_chart_bar( label = 'Product 3' value = '70' displayedvalue = '70%' ).
-
- bar = grid->vertical_layout(
- )->layout_data( 'layout'
- )->grid_data( 'XL12 L12 M12 S12'
- )->get_parent(
- )->text(
- text = 'Positive and Negative values'
- class = 'sapUiSmallMargin'
- )->flex_box(
- width = '20rem'
- height = '10rem'
- alignitems = 'Center'
- class = 'sapUiSmallMargin'
- )->items( )->interact_bar_chart(
- selectionchanged = client->_event( 'BAR_CHANGED' )
- press = client->_event( 'BAR_PRESS' )
- labelwidth = '25%'
- )->bars( ).
- bar->interact_bar_chart_bar( label = 'Product 1' value = '25' ).
- bar->interact_bar_chart_bar( label = 'Product 2' value = '-50' ).
- bar->interact_bar_chart_bar( label = 'Product 3' value = '-100' ).
-
- ENDMETHOD.
-
-
- METHOD render_tab_donut.
-
- DATA(grid) = container->tab(
- text = 'Donut Chart'
- selected = client->_bind( mv_tab_donut_active )
- )->grid( 'XL6 L6 M6 S12' ).
-
- grid->link(
- text = 'Go to the SAP Demos for Interactive Donut Charts here...' target = '_blank'
- href = 'https://sapui5.hana.ondemand.com/#/entity/sap.suite.ui.microchart.InteractiveDonutChart/sample/sap.suite.ui.microchart.sample.InteractiveDonutChart'
- )->text(
- text = 'Three segments'
- class = 'sapUiSmallMargin'
- )->get( )->layout_data(
- )->grid_data( 'XL12 L12 M12 S12' ).
-
- DATA(seg) = grid->flex_box(
- width = '22rem'
- height = '13rem'
- alignitems = 'Start'
- justifycontent = 'SpaceBetween'
- )->items(
- )->interact_donut_chart(
- selectionchanged = client->_event( 'DONUT_CHANGED' )
- )->segments( ).
- seg->interact_donut_chart_segment( selected = client->_bind( mv_sel4 ) label = 'Impl. Phase' value = '40.0' displayedvalue = '40.0%' ).
- seg->interact_donut_chart_segment( selected = client->_bind( mv_sel5 ) label = 'Design Phase' value = '21.5' displayedvalue = '21.5%' ).
- seg->interact_donut_chart_segment( selected = client->_bind( mv_sel6 ) label = 'Test Phase' value = '38.5' displayedvalue = '38.5%' ).
-
- grid->text(
- text = 'Four segments'
- class = 'sapUiSmallMargin'
- )->get( )->layout_data(
- )->grid_data( 'XL12 L12 M12 S12' ).
-
- seg = grid->flex_box(
- width = '22rem'
- height = '13rem'
- alignitems = 'Start'
- justifycontent = 'SpaceBetween'
- )->items( )->interact_donut_chart(
- selectionchanged = client->_event( 'DONUT_CHANGED' )
- press = client->_event( 'DONUT_PRESS' )
- displayedsegments = '4'
- )->segments( ).
- seg->interact_donut_chart_segment( label = 'Design Phase' value = '32.0' displayedvalue = '32.0%' ).
- seg->interact_donut_chart_segment( label = 'Implementation Phase' value = '28' displayedvalue = '28%' ).
- seg->interact_donut_chart_segment( label = 'Test Phase' value = '25' displayedvalue = '25%' ).
- seg->interact_donut_chart_segment( label = 'Launch Phase' value = '15' displayedvalue = '15%' ).
-
- grid->text(
- text = 'Error Messages'
- class = 'sapUiSmallMargin'
- )->get( )->layout_data(
- )->grid_data( 'XL12 L12 M12 S12' ).
-
- seg = grid->flex_box(
- width = '22rem'
- height = '13rem'
- alignitems = 'Start'
- justifycontent = 'SpaceBetween'
- )->items( )->interact_donut_chart(
- selectionchanged = client->_event( 'DONUT_CHANGED' )
- showerror = abap_true
- errormessagetitle = 'No data'
- errormessage = 'Currently no data is available'
- )->segments( ).
- seg->interact_donut_chart_segment( label = 'Implementation Phase' value = '40.0' displayedvalue = '40.0%' ).
- seg->interact_donut_chart_segment( label = 'Design Phase' value = '21.5' displayedvalue = '21.5%' ).
- seg->interact_donut_chart_segment( label = 'Test Phase' value = '38.5' displayedvalue = '38.5%' ).
-
- ENDMETHOD.
-
-
- METHOD render_tab_line.
-
- DATA(tab) = container->tab( text = 'Line Chart' selected = client->_bind( mv_tab_line_active ) ).
- DATA(grid) = tab->grid( 'XL6 L6 M6 S12' ).
-
- grid->link(
- text = 'Go to the SAP Demos for Interactive Line Charts here...' target = '_blank'
- href = 'https://sapui5.hana.ondemand.com/#/entity/sap.suite.ui.microchart.InteractiveLineChart/sample/sap.suite.ui.microchart.sample.InteractiveLineChart' ).
-
- grid->text(
- text = 'Absolute and Percentage values'
- class = 'sapUiSmallMargin'
- )->get(
- )->layout_data(
- )->grid_data( 'XL12 L12 M12 S12' ).
-
- DATA(point) = grid->flex_box(
- width = '22rem'
- height = '13rem'
- alignitems = 'Center'
- class = 'sapUiSmallMargin'
- )->items( )->interact_line_chart(
- selectionchanged = client->_event( 'LINE_CHANGED' )
- precedingpoint = '15'
- succeddingpoint = '89'
- )->points( ).
- point->interact_line_chart_point( selected = client->_bind( mv_sel7 ) label = 'May' value = '33.1' secondarylabel = 'Q2' ).
- point->interact_line_chart_point( selected = client->_bind( mv_sel8 ) label = 'June' value = '12' ).
- point->interact_line_chart_point( selected = client->_bind( mv_sel9 ) label = 'July' value = '51.4' secondarylabel = 'Q3' ).
- point->interact_line_chart_point( selected = client->_bind( mv_sel10 ) label = 'Aug' value = '52' ).
- point->interact_line_chart_point( selected = client->_bind( mv_sel11 ) label = 'Sep' value = '69.9').
- point->interact_line_chart_point( selected = client->_bind( mv_sel12 ) label = 'Oct' value = '0.9' secondarylabel = 'Q4' ).
-
- point = grid->flex_box(
- width = '22rem'
- height = '13rem'
- alignitems = 'Start'
- class = 'SpaceBetween'
- )->items(
- )->interact_line_chart(
- selectionchanged = client->_event( 'LINE_CHANGED' )
- press = client->_event( 'LINE_PRESS' )
- precedingpoint = '-20'
- )->points( ).
- point->interact_line_chart_point( label = 'May' value = '33.1' displayedvalue = '33.1%' secondarylabel = '2015' ).
- point->interact_line_chart_point( label = 'June' value = '2.2' displayedvalue = '2.2%' secondarylabel = '2015' ).
- point->interact_line_chart_point( label = 'July' value = '51.4' displayedvalue = '51.4%' secondarylabel = '2015' ).
- point->interact_line_chart_point( label = 'Aug' value = '19.9' displayedvalue = '19.9%' ).
- point->interact_line_chart_point( label = 'Sep' value = '69.9' displayedvalue = '69.9%' ).
- point->interact_line_chart_point( label = 'Oct' value = '0.9' displayedvalue = '9.9%' ).
-
- point = grid->vertical_layout(
- )->layout_data( ns = 'layout'
- )->grid_data( 'XL12 L12 M12 S12'
- )->get_parent(
- )->text(
- text = 'Preselected values'
- class = 'sapUiSmallMargin'
- )->flex_box(
- width = '22rem'
- height = '13rem'
- alignitems = 'Start'
- class = 'sapUiSmallMargin'
- )->items(
- )->interact_line_chart(
- selectionchanged = client->_event( 'LINE_CHANGED' )
- press = client->_event( 'LINE_PRESS' )
- )->points( ).
- point->interact_line_chart_point( label = 'May' value = '33.1' displayedvalue = '33.1%' selected = abap_true ).
- point->interact_line_chart_point( label = 'June' value = '2.2' displayedvalue = '2.2%' ).
- point->interact_line_chart_point( label = 'July' value = '51.4' displayedvalue = '51.4%' ).
- point->interact_line_chart_point( label = 'Aug' value = '19.9' displayedvalue = '19.9%' selected = abap_true ).
- point->interact_line_chart_point( label = 'Sep' value = '69.9' displayedvalue = '69.9%' ).
- point->interact_line_chart_point( label = 'Oct' value = '0.9' displayedvalue = '9.9%' ).
-
- ENDMETHOD.
-
-
- METHOD render_tab_radial.
-
- DATA(grid) = container->tab(
- text = 'Radial Chart'
- selected = client->_bind( mv_tab_radial_active )
- )->grid( 'XL12 L12 M12 S12' ).
-
- grid->link(
- text = 'Go to the SAP Demos for Radial Charts here...' target = '_blank'
- href = 'https://sapui5.hana.ondemand.com/#/entity/sap.suite.ui.microchart.RadialMicroChart/sample/sap.suite.ui.microchart.sample.RadialMicroChart' ).
-
- grid->vertical_layout(
- )->horizontal_layout(
- )->radial_micro_chart(
- sice = 'M'
- percentage = '45'
- press = client->_event( 'RADIAL_PRESS' )
- )->radial_micro_chart(
- sice = 'S'
- percentage = '45'
- press = client->_event( 'RADIAL_PRESS' )
- )->get_parent(
- )->horizontal_layout(
- )->radial_micro_chart(
- sice = 'M'
- percentage = '99.9'
- press = client->_event( 'RADIAL_PRESS' )
- valueColor = 'Good'
- )->radial_micro_chart(
- sice = 'S'
- percentage = '99.9'
- press = client->_event( 'RADIAL_PRESS' )
- valueColor = 'Good'
- )->get_parent(
- )->horizontal_layout(
- )->radial_micro_chart(
- sice = 'M'
- percentage = '0'
- press = client->_event( 'RADIAL_PRESS' )
- valueColor = 'Error'
- )->radial_micro_chart(
- sice = 'S'
- percentage = '0'
- press = client->_event( 'RADIAL_PRESS' )
- valueColor = 'Error'
- )->get_parent(
- )->horizontal_layout(
- )->radial_micro_chart(
- sice = 'M'
- percentage = '0.1'
- press = client->_event( 'RADIAL_PRESS' )
- valueColor = 'Critical'
- )->radial_micro_chart(
- sice = 'S'
- percentage = '0.1'
- press = client->_event( 'RADIAL_PRESS' )
- valueColor = 'Critical' ).
-
- ENDMETHOD.
-
-
- METHOD z2ui5_if_app~main.
-
- IF check_initialized = abap_false.
- check_initialized = abap_true.
-
- mv_path = '../../demo/text'.
- mv_type = 'plain_text'.
- mv_sel1 = abap_true.
-
- ENDIF.
-
- CASE client->get( )-event.
-
- WHEN 'DONUT_CHANGED'.
- client->popup_message_toast( 'Donut selection changed' ).
-
- WHEN 'BAR_CHANGED'.
- client->popup_message_toast( 'Bar selection changed' ).
-
- WHEN 'LINE_CHANGED'.
- client->popup_message_toast( 'Line selection changed' ).
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
-
- ENDCASE.
-
-
- DATA(container) = Z2UI5_CL_XML_VIEW=>factory( )->shell(
- )->page(
- title = 'abap2UI5 - Visualization'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link( text = 'Demo' target = '_blank' href = `https://twitter.com/OblomovDev/status/1639191954285113344`
- )->link( text = 'Source_Code' target = '_blank' href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent(
- )->tab_container( ).
-
- render_tab_donut( client = client container = container ).
- render_tab_bar( client = client container = container ).
- render_tab_line( client = client container = container ).
- render_tab_radial( client = client container = container ).
-
- client->set_next( value #( xml_main = container->get_root( )->xml_get( ) ) ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_16.clas.locals_imp.abap b/src/00/z2ui5_cl_app_demo_16.clas.locals_imp.abap
deleted file mode 100644
index 85ddeefe..00000000
--- a/src/00/z2ui5_cl_app_demo_16.clas.locals_imp.abap
+++ /dev/null
@@ -1,194 +0,0 @@
-CLASS lcl_mime_api DEFINITION FINAL.
-
- PUBLIC SECTION.
- CLASS-METHODS read_abap
- RETURNING
- VALUE(r_result) TYPE string.
- CLASS-METHODS read_json
- RETURNING
- VALUE(r_result) TYPE string.
- CLASS-METHODS read_js
- RETURNING
- VALUE(r_result) TYPE string.
- CLASS-METHODS read_yaml
- RETURNING
- VALUE(r_result) TYPE string.
- CLASS-METHODS read_text
- RETURNING
- VALUE(r_result) TYPE string.
-
- TYPES:
- BEGIN OF ty_s_suggest,
- name TYPE string,
- value TYPE string,
- END OF ty_s_suggest.
- TYPES ty_t_suggest TYPE STANDARD TABLE OF ty_s_suggest WITH EMPTY KEY.
-
- CLASS-METHODS get_editor_type
- RETURNING
- VALUE(r_result) TYPE ty_t_suggest.
-
- CLASS-METHODS save_data
- IMPORTING
- i_mv_editor TYPE string.
-
-
- PROTECTED SECTION.
-
- PRIVATE SECTION.
-
-ENDCLASS.
-
-CLASS lcl_mime_api IMPLEMENTATION.
-
-
- METHOD read_abap.
-
-r_result = `METHOD SELECT_FILES.` && |\n| &&
- |\n| &&
- ` DATA: LV_RET_CODE TYPE I,` && |\n| &&
- ` LV_USR_AXN TYPE I.` && |\n| &&
- |\n| &&
- ` CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG(` && |\n| &&
- ` EXPORTING` && |\n| &&
- ` WINDOW_TITLE = 'Select file'` && |\n| &&
- ` MULTISELECTION = 'X'` && |\n| &&
- ` CHANGING` && |\n| &&
- ` FILE_TABLE = ME->PT_FILETAB` && |\n| &&
- ` RC = LV_RET_CODE` && |\n| &&
- ` USER_ACTION = LV_USR_AXN` && |\n| &&
- ` EXCEPTIONS` && |\n| &&
- ` FILE_OPEN_DIALOG_FAILED = 1` && |\n| &&
- ` CNTL_ERROR = 2` && |\n| &&
- ` ERROR_NO_GUI = 3` && |\n| &&
- ` NOT_SUPPORTED_BY_GUI = 4` && |\n| &&
- ` OTHERS = 5` && |\n| &&
- ` ).` && |\n| &&
- ` IF SY-SUBRC <> 0 OR` && |\n| &&
- ` LV_USR_AXN = CL_GUI_FRONTEND_SERVICES=>ACTION_CANCEL.` && |\n| &&
- ` RAISE EX_FILE_SEL_ERR.` && |\n| &&
- ` ENDIF.` && |\n| &&
- |\n| &&
- ` ENDMETHOD. `.
-
- ENDMETHOD.
-
-
- METHOD read_json.
-
- r_result = `{` && |\n| &&
- ` "quiz": {` && |\n| &&
- ` "sport": {` && |\n| &&
- ` "q1": {` && |\n| &&
- ` "test" : false,` && |\n| &&
- ` "question": "Which one is correct team name in NBA?",` && |\n| &&
- ` "options": [` && |\n| &&
- ` "New York Bulls",` && |\n| &&
- ` "Los Angeles Kings",` && |\n| &&
- ` "Golden State Warriros",` && |\n| &&
- ` "Huston Rocket"` && |\n| &&
- ` ],` && |\n| &&
- ` "answer": "Huston Rocket"` && |\n| &&
- ` }` && |\n| &&
- ` },` && |\n| &&
- ` "maths": {` && |\n| &&
- ` "q1": {` && |\n| &&
- ` "question": "5 + 7 = ?",` && |\n| &&
- ` "options": [` && |\n| &&
- ` "10",` && |\n| &&
- ` "11",` && |\n| &&
- ` "12",` && |\n| &&
- ` "13"` && |\n| &&
- ` ],` && |\n| &&
- ` "answer": "12"` && |\n| &&
- ` },` && |\n| &&
- ` "q2": {` && |\n| &&
- ` "question": true,` && |\n| &&
- ` "options": [` && |\n| &&
- ` "1",` && |\n| &&
- ` "2",` && |\n| &&
- ` "3",` && |\n| &&
- ` "4"` && |\n| &&
- ` ],` && |\n| &&
- ` "answer": 487829` && |\n| &&
- ` }` && |\n| &&
- ` }` && |\n| &&
- ` }` && |\n| &&
- `}`.
-
- ENDMETHOD.
-
-
- METHOD read_js.
-
- r_result = `function showAlert() {` && |\n| &&
- ` alert("Alert from JS file");` && |\n| &&
- `}` && |\n| &&
- |\n| &&
- `function updateHeading() {` && |\n| &&
- ` document.getElementById('heading').innerHTML = 'Heading changed with JS';` && |\n| &&
- `}`.
-
- ENDMETHOD.
-
-
- METHOD read_yaml.
-
- r_result = `# Employee records` && |\n| &&
- `- martin:` && |\n| &&
- ` name: Martin Developer` && |\n| &&
- ` job: Developer` && |\n| &&
- ` skills:` && |\n| &&
- ` - python` && |\n| &&
- ` - perl` && |\n| &&
- ` - pascal` && |\n| &&
- `- tabitha:` && |\n| &&
- ` name: Tabitha Bitumen` && |\n| &&
- ` job: Developer` && |\n| &&
- ` skills:` && |\n| &&
- ` - lisp` && |\n| &&
- ` - fortran` && |\n| &&
- ` - erlang`.
-
- ENDMETHOD.
-
-
- METHOD read_text.
- r_result = `TXT test file` && |\n| &&
- `Purpose: Provide example of this file type` && |\n| &&
- `Document file type: TXT` && |\n| &&
- `Version: 1.0` && |\n| &&
- `Remark:` && |\n| &&
- |\n| &&
- `Example content:` && |\n| &&
- `The names "John Doe" for males, "Jane Doe" or "Jane Roe" for females, or "Jonnie Doe" and "Janie Doe" for children, or just "Doe" non-gender-specifically are used as placeholder names for a party whose true identity is unknown or mus` &&
-`t be withheld in a legal action, case, or discussion. The names are also used to refer to acorpse or hospital patient whose identity is unknown. This practice is widely used in the United States and Canada, but is rarely used in other English-speak` &&
-`ing countries including the United Kingdom itself, from where the use of "John Doe" in a legal context originates. The names Joe Bloggs or John Smith are used in the UK instead, as well as in Australia and New Zealand.` && |\n| &&
- |\n| &&
- `John Doe is sometimes used to refer to a typical male in other contexts as well, in a similar manner to John Q. Public, known in Great Britain as Joe Public, John Smith or Joe Bloggs. For example, the first name listed on a form is o` &&
-`ften John Doe, along with a fictional address or other fictional information to provide an example of how to fill in the form. The name is also used frequently in popular culture, for example in the Frank Capra film Meet John Doe. John Doe was also` &&
-` the name of a 2002 American television series.`.
- ENDMETHOD.
-
- METHOD get_editor_type.
-
- DATA(lv_types) = `abap, abc, actionscript, ada, apache_conf, applescript, asciidoc, assembly_x86, autohotkey, batchfile, bro, c9search, c_cpp, cirru, clojure, cobol, coffee, coldfusion, csharp, css, curly, d, dart, diff, django, dockerfile, ` &&
-`dot, drools, eiffel, yaml, ejs, elixir, elm, erlang, forth, fortran, ftl, gcode, gherkin, gitignore, glsl, gobstones, golang, groovy, haml, handlebars, haskell, haskell_cabal, haxe, hjson, html, html_elixir, html_ruby, ini, io, jack, jade, java, ja` &&
-`vascri` &&
-`pt, json, jsoniq, jsp, jsx, julia, kotlin, latex, lean, less, liquid, lisp, live_script, livescript, logiql, lsl, lua, luapage, lucene, makefile, markdown, mask, matlab, mavens_mate_log, maze, mel, mips_assembler, mipsassembler, mushcode, mysql, ni` &&
-`x, nsis, objectivec, ocaml, pascal, perl, pgsql, php, plain_text, powershell, praat, prolog, properties, protobuf, python, r, razor, rdoc, rhtml, rst, ruby, rust, sass, scad, scala, scheme, scss, sh, sjs, smarty, snippets, soy_template, space, sql,` &&
-` sqlserver, stylus, svg, swift, swig, tcl, tex, text, textile, toml, tsx, twig, typescript, vala, vbscript, velocity, verilog, vhdl, wollok, xml, xquery, terraform, slim, redshift, red, puppet, php_laravel_blade, mixal, jssm, fsharp, edifact,` &&
-` csp, cssound_score, cssound_orchestra, cssound_document`.
- SPLIT lv_types AT ',' INTO TABLE DATA(lt_types).
-
-
- r_result = VALUE #( FOR row IN lt_types ( name = shift_right( shift_left( row ) ) value = shift_right( shift_left( row ) ) ) ).
-
- ENDMETHOD.
-
-
- METHOD save_data.
- "save data here
- ENDMETHOD.
-
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_16.clas.xml b/src/00/z2ui5_cl_app_demo_16.clas.xml
deleted file mode 100644
index fd7c730c..00000000
--- a/src/00/z2ui5_cl_app_demo_16.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_16
- E
- demo - visualization
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_17.clas.abap b/src/00/z2ui5_cl_app_demo_17.clas.abap
deleted file mode 100644
index f00a9da9..00000000
--- a/src/00/z2ui5_cl_app_demo_17.clas.abap
+++ /dev/null
@@ -1,191 +0,0 @@
-CLASS z2ui5_cl_app_demo_17 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA check_initialized TYPE abap_bool.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_17 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- IF check_initialized = abap_false.
- check_initialized = abap_true.
-
- ENDIF.
-
-
- CASE client->get( )-event.
-
- WHEN 'BUTTON_ROUNDTRIP'.
- DATA(lv_dummy) = 'user pressed a button, your custom implementation can be called here'.
-
- WHEN 'BUTTON_MSG_BOX'.
- client->popup_message_box(
- text = 'this is a message box with a custom text'
- type = 'success' ).
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
-
- ENDCASE.
-
- DATA(view) = Z2UI5_CL_XML_VIEW=>factory( ).
-
-
- DATA(page) = view->object_page_layout(
- showtitleinheadercontent = abap_true
- showeditheaderbutton = abap_true
- editheaderbuttonpress = client->_event( 'EDIT_HEADER_PRESS' )
- uppercaseanchorbar = abap_false
- ).
-
- DATA(header_title) = page->header_title( )->object_page_dyn_header_title( ).
-
- header_title->expanded_heading(
- )->hbox(
-
- )->title( text = 'Oblomov Dev' wrapping = abap_true ).
-
- header_title->snapped_heading(
- )->flex_box( alignitems = `Center`
- )->avatar( src = lcl_help=>get_avatar( ) class = 'sapUiTinyMarginEnd'
- )->title( text = 'Oblomov Dev' wrapping = abap_true ).
-
- header_title->expanded_content( ns = `uxap` )->text( `abap2UI5 Developer` ).
- header_title->snapped_Content( ns = `uxap` )->text( `abap2UI5 Developer` ).
- header_title->snapped_Title_On_Mobile( )->title( `abap2UI5 Developer` ).
-
- header_title->actions( ns = `uxap` )->overflow_toolbar(
- )->overflow_toolbar_button(
- icon = `sap-icon://edit`
- text = 'edit header'
- type = 'Emphasized'
- tooltip = 'edit'
- )->overflow_toolbar_button(
- icon = `sap-icon://pull-down`
- text = 'show section'
- type = 'Emphasized'
- tooltip = 'pull-down'
- )->overflow_toolbar_button(
- icon = `sap-icon://show`
- text = 'show state'
- tooltip = 'show'
- )->button(
- " icon = `sap-icon://edit`
- text = 'Go Back'
- press = client->_event( 'BACK' )
- ).
-
- DATA(header_content) = page->header_Content( ns = 'uxap' ).
-
- header_content->flex_box( wrap = 'Wrap'
- )->avatar( src = lcl_help=>get_avatar( ) class = 'sapUiSmallMarginEnd' displaySize = 'layout'
- )->vertical_layout( class = 'sapUiSmallMarginBeginEnd'
- )->link( text = '+33 6 4512 5158'
- )->link( text = 'email@email.com'
- )->get_parent(
- )->horizontal_layout( class = 'sapUiSmallMarginBeginEnd'
- )->label( text = 'Hello! I an abap2UI5 developer'
- )->label( text = 'San Jose, USA'
- )->get_parent(
- )->vertical_layout( class = 'sapUiSmallMarginBeginEnd'
- )->label( text = 'Hello! I an abap2UI5 developer'
- )->vbox(
- )->label( 'Achived goals'
- )->progress_indicator( percentvalue = '30%' displayvalue = '30%'
- )->get_parent( )->get_parent(
- " )->avatar( src = lcl_help=>get_avatar( ) class = 'sapUiSmallMarginEnd' displaySize = 'layout'
- )->vertical_layout( class = 'sapUiSmallMarginBeginEnd'
- )->label( text = 'San Jose, USA'
- )->get_parent(
- ).
-
-
- data(sections) = page->sections( ).
-
- sections->object_page_section( titleuppercase = abap_false id = 'goalsSectionSS1' title = '2014 Goals Plan'
- )->heading( ns = `uxap`
- )->message_strip( text = 'this is a message strip'
- )->get_parent(
- )->sub_sections(
- )->object_page_sub_section( id = 'goalssubSectionSS1' title = 'goals1'
- )->blocks(
- )->vbox(
- )->label( text = 'goals1'
- )->label( text = 'goals1'
- )->label( text = 'goals1'
- )->label( text = 'goals1'
- )->label( text = 'goals1'
- )->label( text = 'goals1'
- )->label( text = 'goals1'
- )->label( text = 'goals1'
- )->label( text = 'goals1'
- )->label( text = 'goals1'
-
- )->get_parent( )->get_parent( )->get_parent(
- )->object_page_sub_section( id = 'goalsSectionWS1' title = 'goals2'
- )->blocks(
- )->vbox(
- )->label( text = 'goals2'
- )->label( text = 'goals2'
- )->label( text = 'goals2'
- )->label( text = 'goals2'
- )->label( text = 'goals2'
- )->label( text = 'goals2'
- )->label( text = 'goals2'
- )->label( text = 'goals2').
-
- sections->object_page_section( titleuppercase = abap_false id = 'PersonalSection' title = 'Personal'
- )->heading( ns = `uxap`
- " )->message_strip( text = 'this is a message strip'
- )->get_parent(
- )->sub_sections(
- )->object_page_sub_section( id = 'personalSectionSS1' title = 'Connect'
- )->blocks(
- )->label( text = 'telefon'
- )->label( text = 'email'
- )->get_parent( )->get_parent(
- )->object_page_sub_section( id = 'personalSectionWS2' title = 'Payment information '
- )->blocks(
- )->label( text = 'Hello! I an abap2UI5 developer'
- )->label( text = 'San Jose, USA' ).
-
-
- sections->object_page_section( titleuppercase = abap_false id = 'employmentSection' title = 'Employment'
- )->heading( ns = `uxap`
- " )->message_strip( text = 'this is a message strip'
- )->get_parent(
- )->sub_sections(
- )->object_page_sub_section( id = 'empSectionSS1' title = 'Job information'
- )->blocks(
- )->label( text = 'info'
- )->label( text = 'info'
- )->label( text = 'info'
- )->label( text = 'info'
- )->label( text = 'info'
- )->get_parent( )->get_parent(
- )->object_page_sub_section( id = 'empSectionWS2' title = 'Employee Details '
- )->blocks(
- )->vbox(
- )->label( text = 'details'
- )->label( text = 'details'
- )->label( text = 'details'
- )->label( text = 'details'
- )->label( text = 'details'
- )->label( text = 'details'
- )->label( text = 'details'
- )->label( text = 'details' ).
-
- client->set_next( value #( xml_main = page->get_root( )->xml_get( ) ) ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_17.clas.locals_imp.abap b/src/00/z2ui5_cl_app_demo_17.clas.locals_imp.abap
deleted file mode 100644
index b0f14e79..00000000
--- a/src/00/z2ui5_cl_app_demo_17.clas.locals_imp.abap
+++ /dev/null
@@ -1,207 +0,0 @@
-CLASS lcl_help DEFINITION.
-
- PUBLIC SECTION.
-
- class-METHODS get_avatar
- RETURNING
- VALUE(result) TYPE string.
-ENDCLASS.
-
-CLASS lcl_help IMPLEMENTATION.
-
- METHOD get_avatar.
-
- result = `data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA` &&
- `AAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB+AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQ` &&
- `BsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAAC` &&
- `SdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBw` &&
- `cHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIAZABkAMBIgACEQEDEQH/xAAcAAEAAgMBAQEAAAAAAAAAAAAAAwQCBQYBBwj/xAAaAQEAAwEBAQAAAAAAAAAAAAAAAQ` &&
- `IDBAUG/9oADAMBAAIQAxAAAAH7KAAAAAAAAAAAh9pMrGnC8gxLKqhaUMqzdVLV49GkAAAAAAAAAAAAAAAAAPPdbSYqcNfyerdabSYcu3R5czFlfc2ebnlurvP0bO1t8Rntn3trmLvZhvWGfpcwSAAAAAAAAAAAAAMM4K0eu5tNfE1vi980FPDj0yj8xytIjzJfPYLxgVehsElmsZ+SR3bzoOO2vbz9Or2PZ4AuAAARScpjbrBtUAAAAA` &&
- `B57FVqdLY0Hid+z91Dn0nrV/ODaeHzCEiWWZqxzpmKK1nrFKTH3Jbs1F624/ICxH7BeO+3PE9d73nWB34gAK3Bcxx62tHu8/B9D7CPqvKAAAAAAUZtLlbU6qnJ816dijlBy6ye1/azP5h5MJ447Tc8reSueU1mGeGFJt2tZetEvtf1W3Jh7ZR63m9hvn9AazZ/R+YGtXFdh+eKTJ2dL35n1dlRvR8G/wBTH3HhAAAAAAY8hd5vyurRyy` &&
- `YeF3+4yyVVlvV9lbdvXrryhBpS/jprWldn5TgxvssNLZynYYWIuTVNBEi5nBPaJovdVpX6R0PzzvPb4Z9HyXO9mO4rS7/z+vl8Ot0vJpnJQx8nr+tD7fwgAAAABWNNxvY814vZQ11uTi6KM/VY2c9a2dKWdG9elQuzZZ2p1dz5aNXcnzrPP6ft/dI+eU/o9fSnD3Nro4bCbCzxbR+PYiTmuv5D1+Ta9Xy6bbfU9Bscr8hFuufovySa/w` &&
- `ATr+xtVovr/H7JpNz0Z+udg5tOoy+WfRqWu+cfR3p3ul4mrxb9V1HxW6bfUe7ettL1kN3i3rayzyFdL3nL4d0d7d4jd8c9XZ1myxiT3DOSSPyJ9jeZ3z5nfc70Z7v3UbFEEfQULRrItbsazsPiX2nqvW4vmu2+rurL4/yH2LivI7Ndeml8frqjGd7y2F/vxpWM/YXuX3fhBjZrpqbpbTQi3HktdBt9VaNpHhrN6drnPFS3O8T3HE630W` &&
- `p38HrccvT6q5wdHZ7fR7jztJZIJZrDPTix0v049LtXDTU4exsN5xW1i3eXud6vDLk61yLWnvS8/wBRpn1o9zh4Pn9nV+Z9OKKxW83pxymyMNfcytGvz5m/3ZbvF75uoWiLZa2z0Vnx9hi3mo3FA22Me17MZNlrN9tTT8j3XP8ALtxljfXbW5ybfV6sNVyUfrc24l0Tqz7ff/Kuw8fo6rltzz7Tk69jD2eLa2oZOTr6D6B83+i8cc6wmr` &&
- `S39A0299fhRyfN9q83egk+S9aaBjz6zZw+F+v7alo4po+nObPW7DNI8957VtnQ2fTWeLKpW1OGbyYz6fk9x2Uw67ien6MtXtaewpMbyHm0wp+3aW+Ow9Fy30vHYMNYzv6nocZ6Sj1ev8Ls5Kj2cOluT22yu6xPsr2hrhFvIOp2x3vp7PF58u+o/F+XWrf8fKer6eZz74xlZsQZzMHD97y3o87b6+5nrdHBZnDf2iSJ5FqcFmprWG/pLP` &&
- `bHYVfK+uXa6mXYMtdVzpcm9XX7CjM6vlur86o4qx01Psz1H0LjM8XV7rm+l8veDX7HYXrr5b9u9cefvQ9GfO7TWaHen2roPh212y+j/HMbnFtZHh9npSvF1rJda9Bhfp5a16GxoTXVbCpf3rI8clvNhR2W0Rxz1kx4zZROns7eG8avY0ZOim16/wCc7joy7LVT2dcdDq+112WvznTd5pNdtBPPY0vX30+9xyoS7u5XLU3L+N60Mdhps9` &&
- `Kmgv67orUgylx0bbS7Xg6LdaSDmiHz3GIo7jSfbvb4vkPa9l57HH85r+VfkPbVfY84193TX+7O3nq9xy6RRX8L1t1868xJ7VnytZu66WLWef2GOjTbjXw9FNphD50Z9jtOC28U6rnsq3Tlhv8AR+0t1cuh3SMlWG9dhHrb2do+P8qxenYqZZaSwRXOXbK0wwnPCTyiHn91vvS5er6I+m8wJfnbcdBxPi93R8v12rl7B9O+U47WthrveP` &&
- `p3GVSbjT51/YeeT+zEC5qJWpq9qFGls8rofJsbRW9wq3jaT6yakbDV2o9Ir2ZKu1bF3UY613NShZq10/mFLLXsvFqvUs85u1ocjBrJOvGx9ayv/T+YG9APn+gw7PxfQg1nNfQ6zlrtP9G9fg+JQdXzfzvrSbHGfi1zmr+5xNHH4WdVnV6WxlxmxV5sPaT7Yj8R5NhOVa1+OYizmwu8pzwWQZZQ2UJ7WOlfes4H6Z6nLzGi+7aXs5fk1n` &&
- `caDxe3XXfqe07sNTv5XqcoaQAB8o0v0/5zxdHU8po+q59cfqX5+7zu5vpny76tpqPm3ul3Hz3pZy2IOLbGPHGEUE1Ppm5s9LuJqg9x55m8wyqzkhxlJhjnLCT2K0z1LtG0V/fZU4UL3FdePV9hwf1b0OfqR7HAxyQCQAAACKUcjF2Y+bdhuQ1ezZz8mg7T598z6m5i1t3i6GM0UK1K1F2MdvWzwjzLGzkwZRyPJDLySOzOKxHZLrNtq7` &&
- `R7DYp1mpn59Z9blqdT577PnhpUAAAAAAAAABzvRKz8kqfY+Y8nq4irutN5Pdrc85NdLtnzziiKaH2izhHJePJI5peeY+Js4QSWjyPH2Jg1l2Pam8+qVrP1HkhtQAAAAAAAAAAAABqdsrPzLR/VdV4nfxvtuj5nTPDHLnaOK3jSayWOqXDDKU+FddlHc0+ij23NfT/W4uiHt8AAAAAAAAAAAAAAAAHnJdd5nb41qvpdDwO7msukmlzGG6` &&
- `53O932jd8/eOhdw6I0fV9L2PucGi3x6PKEgAAAAAAAAAAAAAAAAAAAOUo9ypPPbqdSfPTaoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//xAAwEAACAgEDAwMDBAICAwEAAAABAgMEAAUREhATIQYiMRQgMBUjMkFAUCQzBzRggP/aAAgBAQABBQL/AOIEik815E` &&
- `7CWbYQtyRJOTM6tDC3tEx3eX2xv7R5/wBOfDNOFaWcGrPIdorXbxrsUciT9qb611bkeZsIuLMjCKwi5C7MxYD/AEk9qKOJ7QaF7TdqIwFecgl5eJCzytEjIQOfc82P+w2XVh9TKy2yhhkM0oI3/wBBO4jiM0vOZmZZGVkd9wzHpv0/oHH9rO27cUdYqtYMEXnBqamzDOUlgmWb8jMq/wCDyG+TOQ07M0bSxvkjYxzl9gOb5v7n8sm+6D` &&
- `x/S+Mn5SLC1ZVrzxwy90b/AIrMiyWvznJ/cWuBJHuTugcNj8FY4cObdTn9HfB8rifAOb5y2wszLVT6eao6zL+CeaKCKW/aOpXktWo/zyDdb8ipHZ7xDRyYzYzed85YTkZ3wqMPgkZthTww2O+Jm/n+unafuU5oUWBw8f3ep9eNKcwq7Yw2H51swvlt4GeNRG7EYW3+zxnlT3MDA5yGK45SyhRy3KnOWKMkPgMNgvT+B0m6WP2+otfTSH` &&
- `gqW7EyRjOIGEcm/M0cbPrUwSqqnYsc84VzcjNzgPIec23GxGbHouOubdY29r+SrbZv0kZRlJzEK5LfZK6xR9yXVdbeCxFPBaEq/EcKbfnPgao8Bd+TMvnCM85tixtm2xC4hj71vaFIZgZbHKO9GuXGWCsiMRxzbouclXEYnNzvtuK8pSbTnCjpqup09NhNrVtZwWtN0tZ4NZuRpHHGE/iPzyG1PjRhW4cW2GecVdsbY4qXIMhuwyOLgF` &&
- `qftWEne0a4r9qJ7H1GnQ2y0HNXe+0l5xaginOwXbNs+MUk5vxC8jl32PptgFI/Ed/XZ7U6wVNPnapqGoZUqVqiWTKEb3VmkIxZD+ezZiSabeRpO0mSTESmeUH96XIqzoIlkYzU45h+mRQiOojJ9PHstZRkmn13apWCQNGrY2mDuT6RxSW7HBkNi5CrXZmyt3zEPGKyjJJG4x7yYWmU6prKai2nC5chqVK9RbOs6bXz9Xu3M/S9RtiMwB` &&
- `FUvioB+aeITJZijUS8VEvGVdOeGdpOOJtkpULJIZBAeGI/L7Dg6+MfYZskmTVpt5I5pZGWlVdos2zf3WohYg0+tQkw6tbuv+jWreVdNo1clljiSxqcfb09u5QMqJH+PfNTuTVY6uvVrBlmjjr6hqUggBsyzpp9iSSvEteuXbjPOVw2lV/1FWyOyDjMpSvIZI/tY9FC5KX7tMSLHPWr2MkpKK9ebuY3tMs6RrHEl7TJl7kunnWIqwq+q7` &&
- `Iv6VqMIp6Xsy1YxGAAOmpTtXr1NWO7XuwoII1S7LVl1K/tAbM/KpMJ4LOuLBbteoavCXUbCkak0jypHLPJekk03TUMVeqO0tDuu8/8ZmLPdlOGZBO86bUZA2CVxlUA/Z8Zv0OSS7LuWaNYFyNjHEMuV6thI4IKGpN7cjtj6PQipq9PUJZ68AVkC7koAvSC0ZIDYeZe+e3pl2TTkt6oLNQz6kSJvadYv0ZK917WRhmJoQb/AECM8lFXX6` &&
- `AZDwVmnHerR9uM+TqBKJZX2S/+1YmmY0NzOCA1ItwHRfgndtsLAY7ZbtIJZboZorQfKs2UXSNZduOowrJHDyReRhT0/Mtmbp6ktJiqwRcPksu2KufRKcAChQFH2GJchcMgYYXGKwySQKJpxtpvLaWQ1dRQqyv82w0j213MsbSKIpCa9E4xBer4A6DHfge4zYx2yzORg/cTtgmeFlytIdqs6CJwNrDSMxAORycF0CuE6+oQsOrowZW+B/` &&
- `I4vgL4N0vHVRHWIH7GcJHGTFFt4GzLknwxMktCUSrqiiKh6fl72jWPa7qvdtQbSGBkf9zi6WNq0DAtZSul3WSMbU7UuR6paRotXVxFMr43xb5MZ7vFIH7iVCWWIf8AGpuFLYg9z7Sw6T3ZrKqFXGIVdQnGr3IzthbpvjHPdngibTVL1qvBMHjD0klWLKhKQmIMeTKW840cTGGWOJbsPeTQuK0m85OVGScp8jjbII2lEsBDWX7MMhdpOo` &&
- `+dNk/aaQkSv7rVcDIgu1U9kJuTUQyVz8RbfVceNnS67Rr09WTtNYAAH2E4Vw/N0BM5e5CCvWXkrxbMvxjlWUboZAcqI6zFv2dP71eMEY8kImX/AKv6PjJPcbNfmkoZZNxv1rWRHKOJaxHs8gZcPMhVytEDlCJkuz3qql+5XWrStPYHx09YRxF6VZKsP2q5xkHG6haFCsizuI2HWX/qi2CNjHJv4OcqN7q7ho527KJKHFqKSK0cPwG2M0` &&
- `0cMjuM1qDt2JU5dGYKsTlxpUMk06xIuWIC2SRAEx7Yw4oqFo40VM0w86FkJ2dMjjjPX1CbMuv/AGsOSo2w32xxm/bnqx9nIz9lRdovGFcn8ZIMDlRSkLp2YJ404VraqstcM8chGS7ZX3ZZoe1kkth45+KZ3ot+BICnfSwtara1WrFKSNmYrKieYoQFpQuJW+KBP6dYkkLaLqcl2LR9Ug1Kpl65FVWxNJJr/wB3Bh0cbpPFKIySzxDrJ/` &&
- `ADx4zlhV/qLhdWIJOnxyfStMEhuDuNpk/PJIuUzwyxksj4u0KzuJF5EZzxoYmMtKu2GnJxFGc5ptatVCjcHj9QI/PZ3YZqjt9P3U+mDcLmnqDIaoeDu360bnULUkFZKw6zySxtYtxJUrzFqvkBvOKdstxCaKM96xGNj08cuPgr42w5aj7qtA+5T3HkM9vANwkgbnGVByairtbhsqLdEvk8bQgd9yJHRlkDKjxbwRExIqAdt5hXqurcPC` &&
- `rv0MIDF1xuTGuu2JvvEcY4V3w9GtIskNSxwm9K25pqmgww2eI228zLtki80UtHi9QGJ2bCG23Occj6e04++RO4DSK8dG1ImRS8o45Q2P5yWJmW3GUyeFcaLK1KOQR0bPOPT25JWC4EAzbxtn8VtyiGGtcLSVi8mE7tHyXPPOJ1wsMLdN80erNqWsV07UHSTwTk536Ozzug4Jy6MWAq2ZpGLq+c9pGPmP8Ak5xG2ycLJkvKNmHEV3R1Mk` &&
- `aYthomq3BNGrjjH8NocDW49IfKkNeNQV6Myqu+E5vvjyZavHt3e3OzlTntUdxsXNxh2w9NU+oNnQNPGm6b1lsQDJG2bGOwoN7CTi78lXPGIiIfbvPEtiLyrRHfJP5E+xmOSDupscQCM9/bDDs/1EmLqMG0mrVIIV1STc6nu0traux5FW3yWQCQluctjkxZY4bWoYZHmwqBm+FeeRrnHYYHyQ75JKiN6Zi7+qfZrtUzw1p0kr3eVTNOjF` &&
- `xUiCqcXYFH3weegAwuNs24tIds38YnxKu+cX34lMVuEcrIX2jbIo66YGj37cThYJfp5Z27kN2QYl/6ZX1NXr92btSzSSL7e9yO4PIquIo3ATbYZKNuhzT9Os6pNp9SKjT+yvo8Ea1tOKapZr3reRJ+k6/f0arZS5Un013AXIzitgJ6hc3GMAUQgOMXGGxCjkxJXtOymPgFj4ZuSVbfGH7KkbGDuKI1xj73i/bhfGbi+tR/8epMtrOPXk` &&
- `dt8Zick2sWKFG5bWjWSrX+3Srf1tP1JBLG1OxHbq6/T+t0v0ve/UNG9ThpCzxSn4xB4iB2AwADDnLOfiYBZcXP7TEHvObbkRqceFebx75CrMJ4jyh/jttkLMJ3yPl9VZf9hrEdjTadClrFK16YtVhBZPftWoqxkHOIR6lXVINUmFHSKVaBEVF+67y0nVAUliqN+h6rnptxQ1+1CLEGpadCqmFYrSoM22Azlm/RyQflot9/ktiYvQYpxz` &&
- `gxXAzcg2AJMUBVJzlg2yQK6inG170o2+m5qmm09Sik9NTo5qTR5WoqYoa8UR/BVss8gab0/atwVtTpULk2k2PUivWkqzx2a7KrZPBIJ99sjlEgzjmwxskG422yFt25+1vjB8YM3zfP7YYDhHg/P9qmcfHfTt1OfP0XIWqdSAfx65pNbVa1ie3pyV7n6Szaho2rVdN1C1Uq/wDju13NNzWIzLp89WVJqCTBmTyTh6SfxL5AT3mXN+m/3H` &&
- `p/TEHF+cncRxdt2kSvaYena7VqP53VXSf03oszr6Y0UQt6M0ovpmm09NjzUp3r1bM8liVH4FZd8Yqehxjk65CvHOftwfaB0Of2w9oHlVx/B1BlMMarNe03S0rS/wCPe0oyyuWWRG6AKcchQZUAB5FFGEdFGHDgxeg+WwD3N8EeVOwk+WhabKWnQwf5Wp6TWvZd0+1QxGVl3GOw3lILJkfwfIxW2zflm2AYBhxcbBjPh+GyYuZtH0y3LY` &&
- `/y2UMtjQ6MmWdNuV8Oxx/mIe5V8Hx1U7ZzGKw3LjiMLYCSPgA+WOWG4QNGfrIIkhT/ADpqFaWTUoYDLGnHEbYJ7maIKWGbYevL2jydxjHOWM+XGsCv6cgsWbP+gtUYLBn0iKTLNGaqIQJFlu1o5kIzkoxvdgDYegGH5Q+9osszwRSsjSJolZq8P+j1jShYL0xAm70sBBG+cm6ADGI2PxZjkdIrlmNNB0uSzXqaTp9WT/S3NJeSUaNZ3X` &&
- `Qmq42lpap6h6YqcXq6tUEE0cyMWijgtO4cO+aJE8h/1uqaJVuSSaLZsQ6dpwrHtx//AJ1//8QAKREAAgIBAwMDBAMBAAAAAAAAAAECEQMSITEQIEEEMFETMkBhFCJxYP/aAAgBAwEBPwH26ZGLlwaWVtZoY1X4aViiY4aSWNMWOPB9NcDwpk8DW/j8GON8mPGluutdkkZowkrXJVdsY6vZhxRHGihIvq0V00ozRad9mLC8hHAkq9iMdT` &&
- `ohjUe6l1aEZIa1RKOl10irZhUI7L2cEKdsRY5mtDma35Hk+BZdyxj2JSo9RCnq+SONyIQrghGpl+xgWobfg3KP9KKsqhwRUvkUmuRS1DRmbk1Ei/jcqT5ZBLWq6RxSkrXRYpOjJheMWOTZ/G+WTwqtiEWtkRVbiNUT+r60KkNWbeRqt0KVozKX3M+pIw41JLUKCXHT6b/weO+RYv2Tx6lQov5NK+DQiWzvpHcy422YoNLca6bsoXTjYS` &&
- `M7Th09LWnqyLlxXX9Iv5GiW6FwQZsfsnkci2YsjezORqWrcxp1uPk8GSepkVqdGKGldnkvp5EIcdjHG9iD8dOdiacekN3sb9JMkyb0x6YuRKlS7M6sgklt089Wfa7RLaVohKxUSxavJ9CRCMoPghKXkctx7j5Gm9vkfpZmLD8dG6Nauhj4IcdnJQ1ZONKjdEXa3E09jdE8h9QUxSsZjXZP1Gkc2yxkN9yhoqu1414HEdtlPySjRFWaaV` &&
- `lfBHH89nqJVHrqlGWquTJkfNbEPURfY+5UOCY8ZpYoXyJqMqfY8lE5anfX7lpYv7KmVUqZDJa7GuxdKKNJo2M7encx5pQIZdY8yWyHJvsjlvnk1p7+TK1J2jHkcHZDLr9zJNx4M/2+2nTMWSD49pdMuVQJScnb9xNrgxeqa+4hkjLj2cjpGSep376bXBj9StNMjNS4L7Xtyeoez3/CjJxYssK5H6tEPUprc1I1J7GbI09Kf4+pkpuTt/` &&
- `8AL//EADURAAICAQMDAgQDBwQDAAAAAAECAAMRBBIhEBMxIkEFMDJRIGGRFCNAQnGBoRUzYLHB0fD/2gAIAQIBAT8B+XvWPYqeZ3F4/OFwG2zvpiK4b+DdgoyYzgTUXb/eJqSowTDqG85neY8xNQynMq1q/SPMBz8/Mt1AXIl+oY8NN/tM9dwKwMRwDK255mltsqbax4gYN4/Dbb2wPkHxLGOcy3UGM+ZmbYBPaZmeiMfGZo7ARt9/wa` &&
- `rWLpxzH+IOz7sfIts7aFpbqmsP2h5m2bZzMkTuQGDoRKbTW4fMqs7i56O20Zmsa6z1P4+TrLsjaI5yZiVUBhP2ZsxdOMifs6+0TTYPqj6QgceYVIgbMJlI3HbPh9uRs+0e0Lx7y24N9X6TUuWpMz8jWN2v7yupT6mmUHgTvcQWH2M3mdxl5ELk8wXvN6eNsamtxheI6duK4M0QRFLxwf5jiBqx9IzNSz9k7ulmrrrfYxgYGPq60zn2mm` &&
- `1q6gkAYj3qFyOZ/qBIyFleqYNzyP8AqXWBuTLW3cSpd5nZ+wltZV4fPQECHJlb7BNxzlTNwcbXj0BCPtNG9eNg8zspnJE1mosrLds8Sy2yz6j0a5Bg/VBqgowBDqxnO3P9Zp70R8kR7F9lxBe494NQ/gSob/QYRKm28Sq1dvMvtV39MzBAwB5iA2TZWP7S2pWGVhU+YWO3BmkDC7IHT4kW7uOtbAMCZfTV9W//AB0XzPI3mFR/LKWAbm` &&
- `Veh/ylmNxj7hyJ3HP1CG0n0CUaFE5bkzsp9prtKtfrWU8CIU25EbBY4lnEb6hNNVsXMscIu4zUXm18/gH+2CZZXgbugOU5jGZz6pk7pqGxhpao4MMAK+oyhxYgPTUbdh3TuLmLqlHmDVBvEQBjuMqUWPg9NV9Mscu25ug6aB9uRNSS3LdEOF6BPGIAoXMr/eJgxeV2mWrt8Qbs5HiU3dvwINYv2mpZbVxuxLq1H0QV+nmIAg4ir6Jwo3` &&
- `H2xB8RqJmq1Z5Dfp0rrLnAh07hdxH5dEOGBl5/ToviGKxQ5m9m8SqxhEbcd04PmMNrZWI20ciFkxmbc8zt5hSbIuRndLm9paoHQDMr+HB+PH/uLSBj3xGUjzPMuXB7Y8COm2V2KoORA6scGMpEErYTdBccYMBPtEyohsOeBEfMZsTcWMU45eW6jIwszt5MZs9PhtLNcDjiAY6dmu2vYW8TT6ZFUqp5M/Y7F+qOm4ZhGOgOIFyIOYlm3z` &&
- `E++YPyMbf5Jiah1WLqhjOIbUOCRLLyDtUQq1lYsEdpnoml3e/MoTtoB1PoYOvj/wC4jjtuGWE5TKwgKdsd93WsY5hXH4Nxm6ZUDidw+07wLgkTSIgcbP6zU6Ou8c+ZdpBSQPf/ABK9K78kD9ItajnH4Hox9Pj7TtlPSRlZQpRdpmo063JtMu0nZXk9a8kS0YhOeoHTEJxNLpxaCzTRt+846Yz8mxSykAy7SXglmjDExK/QJY5aAfgIjQ` &&
- `HM0VHcA+3P/iIioML8xlDeZqvhgc5TiGlqWw4juNsMHEzBiZgbMJzKF5/WU17Ex88qG4M1GhsJOBxLaHr+oRqyvkQ9MwGJWzHiaHJZfT9/4J0DjEbT6jeQVyIPhNhPniW/DWU4Q5hrbOMREao7jNLUtibyuMzGP4YoDK6ErGFH/F//xABGEAACAQIDBAUJBwIFAwMFAAABAhEAAxIhMQQiQVEQEzJhcQUgQoGRobHB8BQjMDNS0eFAYi` &&
- `RQU3LxgpKyFTRDYGOAwvL/2gAIAQEABj8C/wDoiKiak0INTURWNGDBhkQdaM1nQit4/wCUZV94rJrvEZZcZ4eupDAzp39ArDMNhxaZctawoGKXjiMnsN+x+PjRRVnKrTMReuZjEMlUE1LnCAMyayPGNKKznrUGsz/knWF0wnjOVddYw3l/tarZwA4+KPIA512MGIySsozRz40Zus68jGXsFZ60r4hC6CM/bWDNVOoGlSZ5ZmhnSNk2Hg` &&
- `aWQsTGpn2RX5vUriywgY45cRW4FPjQDVH+Qs7MFAEyeFOOt2hwVOsIAfUMVBt2eKzkKwOAycjWfn5dBV1VlOoIkViGz2QRxwClaAxTsltR66Fm0tw3PThOx4zUnMUY/EzMf0MSOjKssJOoxaVxVxqp1HTn581nr0R0YVYgTvDLeHEZ0lpQbWiqr5cNBz9VKhbt1H4bq90W1WTJMRA/ocs66tTcYgwcPCvzFLYTK2xJB/3HL2ikduu6wL` &&
- `Ha+IGVGAATrA/oIJpWGQyG7p4Rw9VC4Du8+f4LXbzqiLqTW1bXsDP9mv4d05Yt2MQ5Vd1APosRLd8/0EUyszjhudr1Rn7KVbFnq1R9CYBXuisK31S3wC2sx7491a+dPRPm9w812V3340PZ8JyqVuOwMDDGh+RzoEeeNj2e4qPH3jkYsHKBzoPeZ77j0rrYj79Ojv8A6BerfrA2QKDEPaNKxLsyC5mfvGxdW/AwMvfTObl1y36nJA8BXH` &&
- `8Pd87IVn0ODkWOTTr3d1LszLEDXzrdoWOvuuMRXHhgULm2MBvF2UemxM58OXsrn0H8dXZFLIZUkaeFNa35fSBQxxzjo1rWs6y6J/Cz6R0BWQMj5GdPCgpbHHE0COz5jXLhwqoknkKubXcd3Ut91bjew+iI4DTXKsTq+HBuIilpPfGh0/etzI8QdRUnebhUnj+PNKxA6z0cpPD+KxsoEZgcRWvTmakZipFTRt4hjGq/OusKyg7UcBzrDk` &&
- `bbibbjjzHj9cKSfyrqwO5h/Hw6Lu0NoqzUlYJ4eZn5hBzFG1cgDMqT6Q+UVxhu7p6zarsfpQdpvAVKk+TthPL824Pl9a19k2O2b1//AE7QxMTnqaNx7v2X/Ts2ng66s1fdtbMsSSvHvP17NB/Qb7Cxb/SmbHxPy99FbYkyMRn4njlTSZY6nzIOQoGy67UnJjDe3Q1hMo/FGyamtC3cOEYpGYj40cEu6+iuVxP2pkg3Z7FxWwsDwn+Ku9` &&
- `W2LenDp4eB93CriNubRaGPCRmGHyrHZtFyRIxbopLu07TbbC26vZVT4c/GjsqFrdpfzWKkE9wq1sCAzgy7ujPo0no760q0VFovilS1yI/fjWL2jlWs99NsfkJBddTFzaG7CeH1w411u1vc8o+UnzC9pvZ8zyo/br32Wwf/AILJ3jr2mrBs1lbY7uNAWhqYLZbo50k2jbYN2SMx486gf0Bt9q5+hBJ/jxOVFOsu2rZJxYIkZzqNDMjLFQ` &&
- `CaUEtqjEic2j5V/wC1uHww/vX5eBY55msSq57i5PxqCMPjQF63buj+5dK/wy4Txzr70T3GtIo4s6DMqsR+pZBFBbqJj4xnUUzptN23iaSFC/MVOzE9erYsdwyW7iaw3LF1No06oqZPgdK/xOzPcnjaEx3RWGz5P2jF/wDc3K+/6sPOidGZodWuLxMUcaoOEq0++iRbuRzMQPfTbMt97Hk+1qE/Mv8A8UF2W2PJmw8IH3jj640epSCe05` &&
- `zZvE1vbUrGJhN74UP/AEzyc5U59beyX69dR5R8ptgzm3YEAjxpbWyB1s7OWtZzm2RP13mian8bAzOB/Y5U+0UNj2VFtCMT9Xu4V/n96gAKq5ADQUyMMiI1pCtkHLM/o7vGsRXTuo7mHP21hZ29Rj4Vhlo/3UBifLm0/GsJyaJ7vwc6zEU2AW49Fjn7q6r7RctxBuFcvZx99JZQb9wiY3jnxY+J6QBaZjzBim2a5cuhbgzwfCYyFPtlwL` &&
- `Z8m2m+6R//AJSPSbn4ePrNvyRsmNQYN+7kv1oflU+VfKNy6P8ATtZL9eqh1Oy21IMhok+01ju3FRebGKf7Ev2y4nBOz/3aUhN1Hxsz7qwEk5r35zWBRJ/FW5Z2VtqGL7xUbeC8wONYkB6o6Nx9dNfZvu1XESM8q+x7PP23at+4wbKyP4yHfrR8n7AEVNnRQ925n4QKuLeu9fhIEO+FTxnCB9RSoSNxczoK31wzw5VCtR6y4MS+iMzW6f` &&
- `aI6MzhjMN+nvoElSea6Hv/AAMxTJbJr73Oh1tm25GmJQaaxaVUU/oUCDzr7PewrtS9pOfeO7o3vZI+dbRbt7UEZhh3fvSoPcKTZtnuXtpC5Ll/4ihY8neQWsga9edTzzisWLY9ij0dZ/8AKlvbR5avsx1W1ufXspbz3pbiCgOfrmrdt2uXlt9kXHLAerSgAIA0HTjQZzFYb4/6v3pW2xUtK3ppcxKPHQ+6KkGRVvCowGk6g/mCZqLlx2` &&
- `E6E0tz21csnY7zqujIy5+qaQWy1t2EkXlKRQu2la5bjMK1FrFzrXB3kJhvYaN3ZG+z7Qc3tsO14j5iruxFXW4sXMHHIzlzEisd5XXEROf3l5vkO7+ZDQOtYKHfXEQOPOr1+8hQu0KCR2Rp86gYczGYkd9HgBRwmM+dFG0Czl8K/LaKCgyDkD8qIOHD30LhSLkYSTr+BCLib3Vj61G4HATr4g/KgAkrixQd7P8AVnWKSyYdJxMv7/HxrK` &&
- `o2m2jDQYu+msomBL9uUz4rqPYake7jUJblTkhttMcJHL1USLaBiZZ1t4cfee/p6q2DMgzRCoyYDhhv36D03Nn2m7lhlGPA0UsYQon74jTuHOlxYzCjGUXER4CiiNdKnQdU5HwqHtbQ91WnKydKlLUqOyGgeqpvHC0DETkJ8aazZwXlIkW1BxeNMtzYb4fU/wDJiirpukan4ViRMB/sJX4UjXXe7g4OF/aagXHjWG3s/XnS9Zfe5hbFDR` &&
- `88/fTFQDdYZE7x/wCKxYTmYUDUnkK3u22beNTThIxsMgTRDGZq53wRQtvccrbJwKTkvhVtTO/kw9U0MTb3OhiM/gdSExGN/wAKO+s8c6yYHwNa0NmkZDcz17vdUMJU5GuquMcJO43FG4Z1DtjGQYxxqLnZHpnl399XHV8QtoFEaGf/AOR0jY7M/aHObDLCvH676CgBVUZDzcCO6Wz2kByI+XqqAIA4VCgAch5pKBVfWY+NBsxI0PDzZP` &&
- `8AzRuXNTw5Ck2u5ae5YW2RuLOA8T7KDKZBzFRUBwuUxh19dMp8KDLk61+VveIrrLjDTdwns0Ms8VDzO/pOETRZjixNiPI1hAHgKBAzoNRl5ZnAXFwb0Rlnr0NYtwAmTPy4wO+s5GPLLhRTaWVYGbcI591XLwaQclOLUa9KXrmQvWgiGOIJke8ee9xJxDumgxu9cGzDxHmsx0Aml6zxduR/ap0oMpDA6EdIt8NT30YG7oG/VV4TJNp/hW` &&
- `yvEQmH2ZfKkMNnu65D6j31J1iBREViQa6ihhtEk8zpQAdFnhE1jYbxrez7hXV2Lbf7q32NfmMR3mpu24aeGdZUaZAwTnzintrbyZdyDGHPXv4+2sxTWsQgCRi4UTm2eId9NcxG2wGHF+mePRfB7XWmfl7oprY3T9Z0pe0VQAq/JmkacY1qB0FmIAGpNPeVn+yAwnDrI4+HnlXEqciKNtdpuSpkYt6QeNRcvXbmeuMj5+aMRzOgAkmgrC` &&
- `MzA5CchWISjHUrx8edYbgg/qGh6PvLaMP7hNW2A/NcQO9jUESujeFG0ghLd11Ud2KuPqrNoMSBRNu2Y4M2Qamx2d4cFz95ApisKvotrPfWJgJ4d1FiCY5UWu9vj5mpFfmBiuta1nbIJ1YGR9eqsxucG+VYbefhTnFvERA4UFGlXVtziNtkC98cejaR6XWgx3YFHypAGRce7BWcXHXhxp7ly2iO7Tuti9ED5dNryWpZVKdbeM9pZiKgCA` &&
- `OHn50l0cGA9Ry+vCtDUjMeYt1RMAgjuoODIIkdBDCQawHNT2SdfDotktz0XLDy+H/bRo3LlwYTejAB+pvjLeys6utcbAouYQh3iWgH2+3KNKEggxx6MuhkPpLFMriGBg1E5+YoLLyg6/WlFZhgJjurC3Ec86hT7ahj7KgCsR7hNOZbCLa5cNT+1dX1ouPPYt7zewVtG1Om/m2A8IGQ91W3W+rIhneXM+P/AAPMXrLK3br7toHU/wAVgX` &&
- `M+kefnZ1OtMiZk8zx4e+g66GlwkYmYDD+rzGzIy4a0FUAAcK16NSIzy7ui6xEaKDzH0TRz1yrXJXVz4Ag0HRgwPI0m2LhuIxFuDl1YMaZ8+6emGpcb4QxyPD29Bcdls/XxoMphh0SanDApcEYR2zROESdT9eFFlJnUDvoAjWsgvspmImM8hWAai4uviDRga5mtlRMgEiIjMa++aKu3bGGfGrhVjv8ADl5hW08Mq4WJzFtZ+PnESRI1FR` &&
- `HR3ULU3jIgqHbtHjw1nnRm0inmNfr1+bphBzA/SOVa9AVe02n79EUDhhSAw76i8JBGE+FdSgw2rglB3jX5e+jbbQiNaNq+cWcLcyz5SOHKeY8OiGq4XOJXbKc8tPfr66/w102h+jVfZw9VdVtGzdYp9K0+ntqSr2wT6Sn6+NRjn1VmjEf7DUYXnlhpVYy8ZmhbxF3JjCgmoImaTsC22Q8avPilMZjOfH3zRe6cKgTJqbjq2C2qkaw/H3` &&
- `H31NW9oKFQ7M4HczEj41fukqTbshk5Kc8vhRSwyWdsKygfst/HCuvT7tkyuo2ts9G8ZfgtXHVvzlxXl5RkPPnoyNbOtxVCpcWWRs555jnTIwh117+/zD5mMBWUrGbRH18qAVR7a7XsyopcLWid2Z0yjKgcxMe+reAw4O6e+iCMJBwkcjWLDbKMmG5Izbl8Wp8LKV1UnXwP7/RlZkag6ijCtgAGEATzqVxetY6ZNq2x71FEm2Ae7Kgtva` &&
- `7ygc2mobyheK8Rn+9PgXNRm5/epiktsgvelhy3e/4+ysOFQmvfNSzuwmQp0H139H2a1+be3RHoji3q/ajYtrCWSLcf9I/er1thlhHr1q/s1wnFbfHbad4d45V1Y2i8HgqXntKTJB56msGx7S/VRAXIlPCco7qW3dW5YOHFcua4u4HhRCatmzHMnzAVt9YkZga/XdRvrcUysp30Lt1cLZ4h3jpzp7R9Ieyrl1exART+qJ/fzBMd1a+YuH` &&
- `gc6yEZ0DP80QuGdVnn/wA0t1TlrVu8NG3GPw+f/dQPRjQ4XiPGslDNM5cO7w1z8Mqm05t5NppiPH65197AH6sWtEjCqzlK5mouHwIFYsQivzFnlOdY7n3KasSc4+VAQEXtAHXxpcPWWxj17s8/CusvOrvEDCuEAUem68sSdSfhW02tHu3N2NYwAT7j7KxGYPZkaUzRnz8+5ag41AgH0poRZutOeLCc6S51qInW4mttw5mhdN53QN1nVx` &&
- `lj5/OOdZdE0yEkSIypbd0AcAwG6f28wYYmeNadEeZgOFbnLn4VGHC65waykpqeP8/XhRSRhbNW1g8DRLIcPHCZ9fOhcQhlOhBkGstejcfBHdRu3tnZgNXUyo4TB09VYk0OhHGoOdG4AN3KQOVfdi2qxq2fu/mgz3ccZiV7Phw90561p5rXTook1cs3yugIjlH7zTHGGGZU8xOXupqJPHzMugSddKuOyr1SSqP4f8mktzOFQPMmhHQ9u1` &&
- `gCDddmE59woKCYAjPp3BJ8YoAlbciVnexDnWAnC4E7prC3Hsnn0iprMb3A1lWLhrUDXjWFbNxBxwXXSfGDXW2Gxc0dyZ9Z0qc+8HVTyNTXdT30vXLRuahVWPhQ666IDf7pHqC/A0MCtIGr6/WVQOgs7BVGZJ4Vy6MqiurO7dL9n+2f299B81IEZNFBbZhFUVlUVNdmsunZRsttrl3ewqok6VasHO5G+e/zGxXkXCYOIxnE1APRNXSNGv` &&
- `MZHHzTgRVLZmBrUxnzoowgc6wwSOFAjzOVREHlW5lQnTQnke+sSrINDfCxwI1rCcjy4ipLEngOJorC4weWRFb6xzq5fRlOFCwzoCWjFmVOkZ+zL39ASHnURx+v2rEzaaAfWdAKGcEwWXODRd2AUDMmvuw0N6v5FGch0ZdEHzVVmguYWr21a29nTqhl6ZzPsEe3zftqS2ERqIjWrFxRlcOARwaNKTrFO+wRSM8zV5dpd71y0/ZJgeMe2o` &&
- `CgDkB529WQ6MXPWsR0FEdPgahcJPM1nRVVnkOVawTUMisORFHBaVD3VvJX6vGriswLsCO6KxscJ0+vrhWbtEQQDFFLVswTOKSxnvpurxddoN33511YdVABGIHEx75ojfAxYgrPiilQkYzoJ1o1p0Z9GXmfbLF4WVtHDbLpMggy1W9lsTgQcTme/wA23iLyINxEaLbtzw1tOwpfe1etsL2yydwxz5/80m1bTs4XqWVrezK8ntCSTpoK2T` &&
- `aryhLW2YlvrkQpJ08Bu+yisYARmOFYmxCwDDBs8I0kdGta+e1oRuxpw8yagVDhVH9pmahRAGgFSmQ/TWT+qPb8qI0I1FM+cAZxWQiMo5VrHfyqShU8jwogJigS3P8Amsdth/u4RzoWyN7iRoaTMZmM6+02t27aOJTy50Vw4L6/mWjkQfDzs66mJtW837zwHzpNlK4UXdaD2h8hS2UGnnC6VwXAcNxY7LDWrPlXZRN3Zu0OafXxpNotHc` &&
- `cSKu2gJdd9PEfUVZusZur93cz9IfU+urVq/ab7B2rjomIluC5Zgd/wom0yuO4z52fSLizOIA+vL8DMVigTETXI8COFNbuJiBHDjWJNfjR8YI5GpQ4hLSJ7+FFjZZQVgliPVofGioANt+0p+Iq8iSIgjlJzPxouUIa3J0yBwmr9y3IKo0htQRVu5ttgO5RSGGRGXOsfkzb3bDpZvcfXR2XabZsbSnaRvlSdbO/x5UwD4JHaHCsKNZvqMh` &&
- `iEGsJexbB9JASR7fGkQWcTAbzEziPE1hRQo5Dz/wD1BF/wm0ZbR/a36vrvqRhdHHiCKbZLpjYtoOK0x9E8vru6Ns8lndt3vvrA0HeB9ejRtMSAeVBynWLOHfQUqIoWVLFRlyz/AAADzmjOnA1l+DhHRmM9JBg+2oXTpmsLaSDVwNjC3Fx7pjFzB93tpVk7gC9HV7VamOy4yZfA0Ln2w7UEnAjpBz7+NHZhItnLCw3l8KwXrSiIKsuvrq` &&
- `UEEkn8G55I8sIq7QBH9t0cxWBsVzydcOR16s1gaHtvmrDh3il8neU2+6P5N/h4H6yrZvK9gb+zPvcJX6y9dJfstit3FxKa3lBir9y/ct/aCxLKTDROUf2/Ws9G4yv4Hp1rLpIxZDKO+o/FPS930VkH1V11475EBZyUcqfWCZHt/H6u8MNwfl3QM1NHYvLuznaNlbdXaFEg+Pf78qx7FtVvbdicn7rFDr6taNi9dVJzi5ulfXzp7W27Jt` &&
- `F3YGGHMdn11e2Ukk2XkeDfyD0XEWwL5MbpAPHWDrGtfdWbpCnX7MU//Qx7acPZ6s8SXxHz25Ze36ipH47XDoomjauF1uXLgaA2QGuXsoqu15Hjg3hWArA9HnH9AyOoZWEEHjRdthVSf0MVHsFC0dkxZziLmfbWIXNqUfpDiPhTJsdnqw2bGZJ6GuoASOdG5cOfwrLzshnWsnj+Nl0KhzDOo99JZjenIkV1jEv+nu/qLl1HAnRcNGzdQp` &&
- `cUSR+3TrHRn/RW1H+qn/kBSnCrMOJX+q38SNzSi9z76xwuIMx/uX9vdWJGDDmD0Z6Vuj+hS2hw4pJPcP8AmrT37hFhGFycEF4Mga+HDh/WFToaLWlaxd/Wh+POjK9db/UmvsrSa06Y87LzT0PdicIJrZ8GZYm3Hjn8qCooGX9f1nVgPMkj0vGuqCmzdGu97xzFRikjXKCOnOp87Pzb/wB2jJhOjQRlS7RfwWksHEtsbxLEEZn9v8hxOC` &&
- `G/UDQzzGh4j10S4a6n6lG8PEcfV7Kx2riuvdX2e7fUXeVZ6fgCpmhba6oY8zXUAb149WPXlTFwQzHQ/wCSC9sw6u/Obpukjv51c2e6Q5ZpuA8SawmW2bgeNv8AipBkdEdOVTQ6m4bbgyCKxbXs910/1LQkGnv7VbKddcJKOmfcD3V1lnZLaPM4gP8AJmu27yyx0Iis3tR4mp2bBfWc7NwlB/0kafWlfZLmxG2pO/cuMMX/AE4Sff79KV` &&
- `vJ9s7OwmStxpqb2zNtVoenbXfHqrHacOKF1skMmTTEbE5QrunEsn1TW+mBP08T411ziEHZ7/8ALvtCTs20/wCrb4+I41b2fbNvR7FvMIljDiPNs/dRd2xsRHdXYX2f/jr/AP/EACwQAQACAgIBAwMEAgMBAQAAAAEAESExQVFhcYGREKGxIMHR8DDhQFDxYID/2gAIAQEAAT8h/wDiKjczzKFcUQUbt3KflOOPeCBkb4DyMVs3WbZqFn` &&
- `iItirN/NcQLHH/AEzqZnliNau6aEWoWD2SzYpYcDsjwGOZusnUyJAWUUWnS14u5bo7kDn+4/0HKvyVAP3+zAypMTcDR3gOdcWw+naIoJckq2SNNc+m+YM+EB5uz9paCzcbAC/+kDIFYyI7uJBJvJjxQ36b6tw2CtaXGWas9CIwt8cGdV74d8yyNxqlfxRZ/HNxfb2MRYASByb9GseCUA0WFh1SIe0CkRgWpV43zfO5ncivvLJQGt7tTN` &&
- `+K1q66mc35pegV8/Eur2l9hcryXTZdnBAwhp2g0Gd1qLQcn/QvhEkoHcakshWjVWAfOT7SiGmh+Smv2iVK2dnxHzb8zQuXZCxUOpn6LFPXKMLxHm3Rj2hjXgXH2jafkzbOlk5+Y11lFD7Fr0IJd5IdlE4f8ihXbt/4O0u6v6U/Aj4BkA3YR9vXjdMvNQPPf65LMMtVGJdwwqHMMMcNkG4irmFIYgWZQvumqJzQCorUL0Qn81Vl3PVOKn` &&
- `sqnZlSRVBPLf4wMmhwMntz/wABAW6mashcIvD726x1vxElilSHWqrUjUDlaI4PqLvmpeX22GfWPN3ZMj6LbJuViWJa2J2+0ahuDLHdniHXmNzE6I6ZSVKGoUHrGnDJml84IVR2OHo/wkxa30EtECw2qFb4Fav4rA5YFwXb1cc8Pd/8C3G4dZW+auyhtV9gtxVhFBAiA9WuMY11iXa9Kqj4BVCp4RGLy/U5YYiMIeCWlIa1LIwc6TM6gt` &&
- `wi1jMrpSGrfiA6J+Xhho51e94IcCKUG5VKLNr6IGaFG/T9eR1V6tp4Gc4Ct3CLNQ4s3j9ioDMA/wDAbARTWm7we5l48zWtFkv2DN10j1CHH3fMdkbS79dcRF4YOHFOpyGEgWoi3FTUUvbLHxB6vE0yiGCxlmfjM8QXtYpCuM3S9azjaFxhgBh/VdYnwDFadt16Qtou1tiRpda8H1le3KFlD3j0eP8AOqtAlWlL0xNZmHruX+8wGaBBxH` &&
- `/2Ii0hlsozkKiecpSJOjXM4f0DTZAbllSJfpmOGIXdRWzqchmOqnBLur8TLAgi0sZtIfu0iuc79OSNbduyuPtjOY8tV8foG6u7gLWFFWcpFui0dq0W52wo2thJyIUAbYy8JQCBjabTPuPxMMq+BxKief8AOQi4jB5E4mw+2bcF5iPeHKwZz78fLGaxZ4ZXBuLqkgSrsCHVIP7pX1Behr9nmNe5Xty05rnxfpDlLgeKGT7vS+0RtLtJzl` &&
- `45/JFsudZDdvB7uPeEVELea8TNuPwI45m2/pEFlTfaivMOojMQpO5TjjIqc2t+Bs67mR5o5Vnt8f0+tCTR3F6/c15lZmYX2O/T43wm/fjTb7Km+TqpwV+CGx6Ebo3XDG+Z8ja+DFvR4xaGIXczf86jkGGqXizBZhA1xJekJrOttlYedcZibgzJ+Dx/d3LtYYGqHr3OZuVt5i4HRvGJ0BXqHIerEggyOr259SDsMMPJq8rsoFjUodilzk` &&
- `un3xK0N81gyCrq1HpM6NJARxY4BL1bhVUVx8zK67JV9MBlmKAwNK5zewTzLVXNVT9spznS9EduRehsJ+fj3dV3OoYH2H7dxeZomJfwjfawFVo5i1FEfIgFwhb4+yc87t2FGsUQwFpwu0esxFIq8uJXBBXivtznnQgdidBuOThRXwOp72MQ4fBgw+JcZ90z6nbvmZxHzpZ/73dNVEZdyxSl5W2XN73dNzREBi/84SW41G9KcGuDygG1rK` &&
- `48EABBeSTLXyX8xZARfq50uz5jQDG1I+4l17ep7bGD2fiW2qFq/ux7RmxconQAFmmyWbao2avu5gqt85CZQZuoVQZYTGI6lCwuoR9WnZ6KKuHYTvGXLiUlEDgaJuLbAWg5OAlC4I2CFcikxRBLguzLrAWL0kf2zs2zn4d5jvl1AfL+JfJ0CKB5vncsm8ekY5YXJVptAVvTK9gRu1XJgJKHpTmkb4MeIbRXI91VDnBzeApu3O7SsXVnru` &&
- `m2GA5bLPaZeZjsfNvxeA+sFAUp21PNPGrbxGgDBaR3Qv3GUyiFTchHpf2AqxeAg1m/82SD22D4H4YZBo0Wl0Gl3qtMbC602UFBwEo1VY03FYmR5PK/ge/FgjerxZ+DcDCVGCh7v/Y9yDe16XlH/V4Q/JmVDowzXM7t536cEFUYKN+x5z+3Z9Bh9SsWQFys3iS4yL0TAxyTf1x/MMktAhpWjFGt2PXNasFShajYyBb3KnSTF2ygixVZBd` &&
- `1djxEoKwImtKMDdjd7mMfNjyp9ddkdw7jSg90e/ZH5wFGnVavg53LpfYU33GVZfij5ZY6xa7hVuA2ri7ZeUC2XByZpsfuRKpDfUVdv61Ayh+gCWJUJWAVHOpfH+j1GoLR5pxMu58UF2VuPbStsTQ5N1BShHJpyhFZAh5DWc4w+LteWUHoGKS8U3tKSOinQfY8cSvTWZbI6fP8Ac7m3HiciIcSehmCC2lqrz8wu6LlqDXWldH0v2scXKD` &&
- `23+2/j87hBjDcArM4ItesUKMtLF8MU22wy+WDal+ZmBv7SPOs+CZShf0+V9tMN40psWFk3bRQv3QS8AcVtV2q5uvaFZa59N5TaF2+eiZh1JR5ly4lpoVWbeWh94vgaMj2RqBRmzWfIcDnmo8Kbry1n+yE2BQGA+uWhexhzK4SOiVX9dSwOMUNilIG92AWpAQE0kBFjau2nJOem2yHXrMNhZewiYUw6YTXcpWVeQaL/ANR3t1QTnC+ixV` &&
- `ZsMtVYg7+b9ZfxYrYN6PvXrNn/APg/aX8juU34iicG9JQfxmohAobr7Bzi4vozRSLwErDhWTmMxLWKI4dqveuJamYVLw4fF+8FHZWfPdh7XL03Id1/9RuFHSZv2/3Fn2Kuza5sO4nb54Dz28Ht8Q4rRBrfZ80YhB+im0ymb1DXOYubI0LWBy/Bp3C9lpIJlkwMOLyxLPb7Xa2re96eYKYeRSDeas1nPDtRVLQwxbggLFAU8K0Y8QEIy9` &&
- `p8mhzL93pYhqY3ARrIvWvRxmJl0CttMIGY3Xri6PoEALBsLpr2Vz1zLLc2BuvBb63djcvRajk/XK45C0usF5iPhPNED7t50fJA3vozZNI5c6vBnoVCBfAJnJ5F0brUM5Cxy/qd1MeB6LfC3t5JZhtCIrpY+7NFUE444Jj19oxdDBQHmyj6RKOQUe6D8nnXI9T1dz63LhwpJC94XJu97hyrtHCdruPZJgeL9wG7whrDRagFBZe3VpoT5q` &&
- `KaQoc8I/vbQRdBS81hx4AD2hpzwIZ/b2lgnXj1fSBa+a9d6gSwoHxK/aXeaByOacXiaGD5CIPhE3xmZStMwed/3fBDACrKFZi+iha6hTbNZPPKfmvbQroe7zj198gQeG4prPJFuvdGQCHQM0L5BYzr2LEfDUsp7iksrZ5Y8v8AV5CVhgAKX2rzOeNF1PO3A84caujMFQRZNtm2h8B5+rsb0OjK+XIHm3FSt8QOAgxcvVEi79ojfUX4we` &&
- `p6YxDBAUAoCDSvQUfS2qv67qrCMv5H93mEYoHk8HzBOoI+iUUZgMwvAG1LPHdHxGfnQ/Eo6p7ttr0U3DeDsNJEXA4L1j5jiodgc8sV4MmM5iWGkVHXLxkw9kDmrvF6ZzDq4mB8s51l195sEhVf33l+FHZCxzNah0hcO5j0lK1g9l9DKXd0NJRXqVXiYZa0GohTbnF95lBaYBUw1QuzCmHe84uMpUuWG25sA9AjeizeQEzN5c2y+OOcN1` &&
- `m4SA3W0+HqdPmrC4BpOgiVbHrR4+tDOssu2cKVd09ZelZmGkWEZKWMNlQVUBVYLauvG4fsASpExR95d+gAVVgWlZxMYG7Bpm19y+mPKFUkptZSqVosSai0mg9EL4cen95nNd6HZPHmWCfkGeLM3fn98pR9LNzYzb7gP5TGN24NGL/b4JW2HEUWtr9+TzAv4SoD3b+0CC+R5etl/E05mbDHgrj3ZeXhxW/BM7bstXGPTPd6cNzWMvNNfb` &&
- `+/vMe9RPtCdmpm381WIDfOG2WojFYsOfKuvXzMP2fyFW3kAr9ksUrGnzKLPV1PwV/eyqA0pw5XBUxuuRoMPNdG71FAsqKLvBBiYKN4Xhp07pdJdMzVbFYAPQrNrZCF1Hb9DwtaKAlFBBbX3BfR7talF8y6XmP0DlqUUi2DCMPjYWJVg65HyXiyNd3TBnVH0JQjSTa/plhzd6IMywnNDuaMYKMR7vLCfQ1hjOuJQGQx/THx92mYtQnUtU` &&
- `0+YiShesn4tfaYk10drc+Rn6H95jqwJWVPzCkO1tLW8basgwLF7i65+0sht9iH2CcXlC0euP571uh48AzTq+/9bq4Rb7Fb35xN0Hx37foVBxeT/wAl1L9yLPUmdgmoEFBhNcP/AKjyuBxaCMYJ5pfzOCPfkDnhbDHiLB4RS6nGPqb4i/3zMoNg2ULmg/KFyR5FKkFOhk3vUI2Oqj1QV7Pz9ajSJTSGu0b9u4TMCgFAfS4QfoVanBFjC9` &&
- `5tRHpkfZGiMHDW/wB4aQQsTSfoCZrNu1ZPJWvXxCeikORhjcKGDI5uZUdhfJ36/OctiITawAp2+bVf2ZstnEbxY/JWNvdA8ZYvMqMGm2QEFAu8yjQU2u66QKVv3rEADiOTqlTikdlmSWkIC7pJwDwvP6FcjGA+g6z9kTutJVtzjjfxNftlGHDUs7At4a8YqWHoUVUdYKyylwMZ1nnfHcrJ0XOuX1wm3ZDx+zIk2GacqaUTfLHK+sAAx0` &&
- `XeRjnR6m4KB19XIZyFnOb021RnzBGVzTv/AB4l/W/otDSJ0QYABCwqmX2RmrGyIgsgaWC12DvxmO/rgu1zqxx5iI60AoJr26iu5knKne2GveqgF2xEchttBf5haKS/orH8wrqe+jX7Tn4VcMvSFPamVNKoYyXvAGkypf0goeokN+nQ99y1nmVjBaZ5Z/l89R1wAfoyegjJdBvcOgrLFwdVq9e0ZEGujK0H7PiVprljH2OHn53D18S++p` &&
- `xH6woDS0zNcQENl0KukVe8ZxAEBfRt1+xCoIK8C99ITSyuvZ+WO3KM+n/v6LwT5CAlHcLrkfeBQCrXL+mt7och5nIOdy+Dkl4i2pbGRoywyLoUYQi5hZza2TkbX8pa7+pENtkO79R+ONcQNKk5VjbIMXh37PzRzObiAb8syD2b0fxF2yQ3VqOvwSaCoe5YPDlzKhUh9k1NMVoDLhcsjAUKNmGJ6n1gvJAFkQ6Bo4FfdEd2bY53S8uQSu` &&
- `YCtRXgpT7xUVxFKvXH2GHBeoLP2iGrPP8AtKC2tBl/M4FmirY69qBM1n+N+JjABSJuA7Qa8lXHx+POHdpj0AAPhjB+XxKCuXxDNBhTDVdjRpyKYPpGOkya+1gmzfw5Vx4xZxdcYA7LDLUeO1VqyZ6IlsyGoOx8ef8AYS33RZuX+CC1UaGKcP2x/T9VQpZPWIhQ1hrUzudHsx7wLuXILVdDgeH7ZJXR9UHnKC6t4PoLHMszHyDGVVyYd2` &&
- `daR0u8t1x8QtasbDBz/faDGABW0h933j2qRpM2gL+YmKI8AH8Onwso7ZndHn0pNYTBL60IW5MPTg8zlYAtnBpzjveDDmOdxW89P98mJSQ3p1zYAt68GKjIRmkZj6MdhhZ3G7hyiLq7l4exiN4DFD21KtwxzDqGwM4uQ5t4MZrrM34WaeJlQYtUu6K1g2tehlj2sOSOVslVVPfl9YCnIuAp6Bfy46+hNh33u/JgPyjmYA8ytLj+tQLGsD` &&
- `WLP8ZjfTaq5sNrBx3Lv0qupdOVPDmCoHwpud5Kxp0R1donqOw32lQKFaxt9r+jMGnH+Th+6W4sFd/Te9xuBAp0iNHqQMCUEBVpEswgNXbh9twneAFxYlPGnsy0V+qLt9u649rhfakMxJpcVRk0wbOT2/vHMUFD269oLZFVZRpq8XhzGjlVN45evBvzAViqDyS9GE84tb0XTyjxO2eYXkjW1XpZTppFrZkT3bFlSZSsMpau2Ap7M2ddBK` &&
- `SJLEa3eKbhCszlW6Xor0Ikke2o8l4/MampQqR97fvUr7zVqCQuOFvhuVcAKFUXeTA1m9Xrceygh0qco9U92FGAQhBoDsK/cZUgFfKIuFbcGb4KrNhwS24wRCbC7VmjQ8Fte7tVK5yKoqlZ9RX63WlSKr7794TY3Kwz6QG0xZlmAjq2bfTNVzANBT6oX5icIeCvzLFLYtWqku7rUBzO0W8m6uvceDT2iZrUgCAyVSX1MZhpXAHl4111L1` &&
- `9eAE04vP2uFOIurGFFoulaxORCrBBmlqDrTXaMqfPmHNqlpp8fnMRu3uLU5bPkb5KIsNgagaS77j7R3TF3p7MF794Ii90A8MSyocRAzGw6V3RHw3x6U+SGVWNPewt0q0ccsfTCdowHmIjgOEeYAFbkMjGN5A+0TXQF2X5fCAbWUhlY/YS1UUNPbatr7vrCKCOysSlVxGkolLox+g3LJQSwy8vCWryS9WP2I+BhxKGX1hS14gNiTcGPyj` &&
- `ECAFVbl3+zDKcADS6xz9j4lp75qror6jITHa5Ss+i/W+aaZPBZv4gPgQVa0cyt19LoHDdHzHieCIByGzs45PQuVkdW7L8l3s41NDPgeHh8cnvXWiip9UGqhxTSCzrnf8REpk28Pf8AM3erVdxqmVao+wQvF7o8S2cOnvkK+27OSiaU0Guof3vUtBTDbeXEbVl1Vq6t1dW+ZYtWWLautgPRgCYsqLYB9LpYUXLnIfQkg21A5VhhkfBmDL` &&
- `ghIV9OZRmWii6zWnTUvVq3Kn2qiR9I7XgAKNQweU5IJcIoiFNIgtgkFfQsTOZDyrxuKNVe6y+UPFr+i/VbWgVBnxLu4EWXHSaSQejLcYblhzCrcAxpULTLdscTCRCmQd/g+I/xeAY+ZZbTvuvD/P71YZqnOSo8J3dBMNvU8i7rmO1Q3a/jsmUFX8ePSFGW60uK/ZXMS4dA0wy7jxgDp61x43klbZSK/wCn7QwgUabGuYhTOzbmFe1X/a` &&
- `YRRWjz/EdfuIMGPmDT6ODybeVCCOI4+AMzBa8GNtF0tuok0rWvBjl8r+2LLgUMiAXVSGd4wYpuqlnJSKCH6Avau6v7Fw/AubdjCCgw7igvaPRd/TN4l5uUbICK6gaqG7YmEtFLalL4A/pXOImlHIN/Pye49Q5nFh/GviAKysFOK/iULxCqbejN8uKJSqtUAm9VHdagjH5+lTN6MZLbbDD6wFvs1/5j0gWWtj1M+w/TeQN+wrhlp7hgr2` &&
- `5+08pjcPBfLa6feNcOrhZRUTdoZcmG6Vc0anZuWtIlKMKLz9pewipBZhRxiZUMUEMXx7tfD3WDvDXkdnzKhd5YVtWVfPtiiFZOGoC+kNbq4FlUMDWLOd3hu9zf0EttBz81wrXEugoKmXsjm4zFsefoYDSUmKSCbD4lvj6LlifBziAI71XoQIMcNyLantVf0tJrHB6babBooxriZ2AdXrKplSGDiX6SKWRsQm6jz3GA+sEm2XAjl5wbYF` &&
- `Ra9phEl7Yo261iOUsE0ItaRxPWVbOyBOrjGtzXSquBuj7fFRZ+nAy0OIyIXi+5gV20Xw20UeOfSxoOAhQREDRw0+nT/fQFDGrOSuXPMG0FdJ+fJ/djDvIW2U1URTklfhAtLEQBnymEyF8/gy5qDQ0FQo9DZ8W4g0oWnIcuemrZeh4vXsNPrxxXpdspMd1amPXJrzHCyELyMvFRbgbkJdLKYfTmFNQKPopRghsfoI2XKJj7729oCUY19R` &&
- `teX5dQOQDKFW/qN8SejhM/3MukrEL3X4M34XUaZthk7HyNkBJFhLeoPJfulqpctnsfKVDCGlUZldnVoy67QH45CnrEtEdj5+g2uyeQY6/ZLHBNUuFIK9iKeAw+z2yrcRJiPaZ3LPAihsajFwFT1xmurgd6OxGIgi6X2Vxz48xWBxzodRPIVYb6n7e1JhlL3O7yGzl9qca1Td89gC06Wd/ZAbvb1Gd+pye/djYo5ybPZbY+5hKKGXsGhv` &&
- `k/1plNmgqM0kUrlDetVM1nWosMnnnYpjPoesThfcrz2OfTvcM6RIAspWX5JdvbD7yYp3wmB4x92DvQKSxwNMw0GQJLsvasLBnDR+u6sUkHpUP977ELPbR2X5JSq1dVrs/A+7Gfo5vDGTgemJr33bt3CCA73LOTsgDUyUq6U9/f2lHBBwwiu/ouIC8QTKSnuGycF1/g/vcSwGoIqZgL3Fz9GT6OmY+7HmaNxKtYplq+qZqCioed/wAspI` &&
- `nDHZIC7e5tZ9gR/aJNetxBjvFq42mfRyBqisfH0N2t7ll5/Y1gslE7kQjBu/HuphEd2Uv3eB+eIAy6GkXryx998xXzwO/Hsf4bVNFuX9z+4pAX5fzo/u/W5bca/wBuE7l1TE3Ds6/rFMs2GCOW6Xq35ZRcDwGV+TWWXTMsIHDFS7AgJ71RBQkwBbU1/aYrDG1ncZS48dKUeYueU4NUv8JBcIQFW/o4HMyY1wRsxbpxOQlk2pjRmUJ2xB` &&
- `FLLFs7ySMJl8+X+5wW+MS7yxZ6VXpv9G0B/wAfIYf9hjs/DTCygMuj8HjZnc5aEPVbYetU5wYYIsHL3CLHsXfrE7DupVxRqlcY8Vy+fpujiPc+/wBKXlAaYXqUXTF1Qk19eV1+Bbg7bjdbqaTrLmsuOOsxreIpibfS+UwHEUllTlna/tFnkzOkZpCDRFlwKgmb95p3NRxMlBCrm6kOvEvXa00Ckdii/SIOQaRR9RPmbI8LcAGfj/gOgA` &&
- `NYHYk/3MqsB9pVRC3G+DrxqJURvAvGb/eBUTkE+V/Hl7+ioiApjcuKPFcDoioqoeTuO2YYwYuVV0ysM/Aup84LthWvMW2ZxMxwS7lW/Q5g1Kv3zIgD8wRWHRA4s4fTKxe5KvdS6wAXot47/wCOlmYFXFj4S3ywonquT+tRu4U5mks6Y4vMpqV4KhM/mcCVQ3CrUKMymkBcaqZqDBPvJviQsHcVltrLe/3kD5JmtpsTqABRgP8Akh3UNj` &&
- `U336/yytFTwlX9GxywaXdWh95iziCo44Jdy8wDARNx/KZLqcpwTNNIZTGZW7jLUEKomRUULKNXzY+8IhBoQDnhdu3/ADBA2FJ4hqC5trxRx6GX6m0emd76DV5ZTsmKVUl1EhawOScxM/RibgLsxSjW11KtQAvtLhkJonSBt7ouJ0Du1P6+sGoAMG67/wCfYeOBWler/RKsXxNj+Az+GyUHpx2CZPZ8PEDLCVywLE40bECOZTUJoOpToQ` &&
- `P9p0MpU5qgyJ1KA2UqmACndLXacALjZc6/6H0nCn+IVldsV3UKqFS1V74+6c8lTkAlWtPT0+JjyWVdGLy6ILBuHUhIVjiGvrcUsDzDVFIEXLD8nUztAPm3l7FvtMsrwar/AKNBKSyBBrWDoFwwYbIpIhGXWrRXWvEGHu58D31eISIhYjYwRGizBvcRuoCp9WG6i4DB8q9cJyQiFl+KbejzzxGJLYtDFjgauLa1bA9Ojx/0qWUzLoDGHu` &&
- `fxFULypP2hNzEkjHa34ROoxZSxJd2LDxkBhrYLYra9Ba+YvBGafqc8vHBbPRxvHqbILNaiwhuFG0l7whR734mj27WPVMV4N90pEeqcdry/t7/9dbnqtPXiN1vLVXFILWuvkWbwoYWJRAaX/qbuTDhmABRg/wDzp//aAAwDAQACAAMAAAAQ88888888884ARDDrK8888888888888888880l3isemBc88888888888888YEoHAl0dmE+D` &&
- `8888d8888888PB1yRAXh1lwOj888Z88888888ar7wfQUk2OHdPc8HEK8888884knBHIEl6AFnQYIbS5l8888888bRBVmcz7gIxM0BJYrDAh/kZHim5zdpaN98q/wBvMMOMD+NfBn8fZHBL+BHCY74KX+/A/wCSfhpE/JaV7lpSiMuvrihglLLaLDV0o5LutM4RowRmdqbpx7redMzsyb8KNWDawmdLc4Ae96L14MmXi4iMOgLJZUPBiI` &&
- `9OCrJIWKKUm4x5ZdfAYe4/oL7TN3JpzazTyFNiWYhI5qLuWm8fBJ8PLy/Hzxn5b7qnEafoBe+cpoqTPsOHzzxZJGasV+jjUqgyB+r57yzzzzzzzzxqFIAobBOXJbhGmLzzzzzzzzzzzDf3w4J9lpNrunzzzzzzzzzzzzzxjfSdgwQhb3zzzzzzzzzzzzzzzzwB8VbPPfXzzzzzzzzzzzzzzzzzzzzzHDzzzzzzzzzzzzzzzzzzzzzzzz` &&
- `zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz/8QAKhEBAAICAAQFBAMBAQAAAAAAAQARITEQQVFhMIGR4fBxobHRIEDBYPH/2gAIAQMBAT8Q8PsRChEF7QbDPUVZ/pu6IihDOs3E7DLuVLEDOqF1llsyoSvHqIqB9TKtuoEYDMOswspO3rK24RW38bjejwCrzAZNQfKWNRhjRglSy50JtMxQtJjDH8` &&
- `MgOJTz4DCOcJrb1YATcqb3KJzonSJMEcN661GscKYhvN+8214GUKmJiEscpcbjA/aoUcjv2lh1QHLWr6sAwXByRBdxhTGY0dY4xru79OUAm1fBbN4IfGEq1LLjiIXhAxOEBhEjiN1/H1i9pfQgfVE5RKaM5+coBrbro8vadAfT9somfV395glFsRElyNMMFbuGBKvrKDUVBwfs/Tv2nLS5V6oKMxJykabJqEUyhCcQFD/YkrtyZf5MwU` &&
- `MZhb5zVqjCxDB6f5Fdq+1SkrA7YjZUIF2ixmC20jls1BRjitLfrGLjwqqIGMEx3CpeMwG6ZhMhakpC61wCKPtNcAohH8nzv34OSDTAWouKnnJelyiWDDUE2lsGCAc4lBLUyztByztBLcIcRzgGbeFSuk0z581CynThpVBMGoGkzbamF6GGYuiIJFrMSEAdkolBiIYO8RE3wMkQYm4sMRQJy9oBOCopg5bjSiok7thlGBYdxsvw/wDIiY` &&
- `R9SWTN+pMjHy5ecbSNdsXpiAOo84AuAUjJtceQfm+AC2W0PK/KBIRQz1OfDUGJSI5wcGWvRqDoh9RGMtToOO8EajQqUS8vKUaqWo8OcYuRlt9OsWUxfSJdcBpfbGHUpxLhTLBg1HOZ+JbuAMTU7lxlL2IrolLkcqnNYgBjibg5x+4q5eDRPclkdh8/MBxo+3twzwyi0xiG4nSJ1ItAjURxAhBh5KwirF07+/AZZUzsY6y94gu2HwY79m` &&
- `mHZDKBMnzl78EZUsJfBZS41qU5yy5lKplhAxTrnXo7ju7Okpry6cyX6Prj9zAL/AgDoaf3LNGj6MAc7ZAIlwCM1wM7hKlQOAxigC1+EfOV9ayteGQKWQYHXbjWMSgmpcuEGPEY+3tCvvL82+IrcA1lAbVxcS5ympngGITCfT8xH8craqUy57/uZqAtg3XCuFRBtVCAcsYx1f6VoI0uCfPODMFsCOPnfrzgxY4ifu+pMrFRV3/WAwMshn` &&
- `/l/wD/xAAqEQEAAgECBAYDAQEBAQAAAAABABEhMUFRYXHwEIGRobHBMNHx4SBAYP/aAAgBAgEBPxD8Yhd8obbgwr5IIXCDJHSHiP8A41KYlo7RXmmAzM4AadfSPQ5QTbBK1oOf+RgJbazfzAGPzgdJROsbcxFJliNmGWI4mCIFYqDgs7N1UE5V+dJfWuv+cQLVo/A0Saw1eH0P3Ni36/P9iO2IYXLI9xHGoIaliK+cOwohsa9f+ClVXT` &&
- `GPWWKLNLzX1fOr/ASGxcYNAdg7tj0S0vUoFkqXUslVLnMZLzmYMTClepxPrusQKJXgK8MYD8mhfevlEv8ABv8AHe8CjhB7y8LTz3leiNR8x775xB3Dh+nv7hqnHDfpyg54jXAN1+pkIQpYji4dou+9XTn+5b1r4RfdwH3wIhnfJp5u/lAygBMHfzKfgu0FuiWQLx/sA/v/AHENHLFleV/kWcwyDwEFG6Pnrxg45R1t+OHvFZnNlYmCNO` &&
- `jVXMRXnAdq0YM/1jNI8NXz4vVmAVc/0fuWPDQDTXXBy485YQbQX09ZoTKys1s66VLyA4xc1jYy+hKRbxyY68POPDM0xT1cTgnnUOpGvS+PkaHrmyKi+CtNNM6Y9JndoVq2nfFS7Es2hkqKZjW4tjmWa9w0YUDrvvf3Kayt9O84hKdDL3xi9CvPPzAaoUYDGM+7Mq71fADWGMm3PLbw266DZRm7Gn4fbpxtmAqBbN16RUzPOteZSHTaIU` &&
- `AcLWn1iGH38Rbd31jNyV3UQLhI07w4ECYzylTVlU9eP09I3cRWxNqYhQYl2nMDWjQcId7u/SGsBKW8Vx9fAlpRrgq+fU0/sqVAYsExMkZO2H6PBAF0iY2rfXp075uLX7/3vE7NqHIFW+JmjS33ho2JpQU4v6YsCW8va4QfUTDVa6QzRLyd/uG9KuFOj3rBTcYfPeUodYWg1c8tLg4hb8RHoGY+pRbR1+3dly4ZiEi8p0MJ9xSGj32+BE` &&
- `6jB8/eIhpC4GsVC8vfMp0aypqWeUoYJsk7eUEu54CwMQLBqH3q6QGjrEWzR7P6gHQz8Yq/7AxGBtqs3aBQ6ptH6Wu/gBcwuEkdedbOefQ4xB1HwRDj9f2KOssRX1O8d6xQnOIc/wAe/iHjpiKbVxJpl6eZp/sXheAoe9noRyWj0f1L9I3wsaAvV38tjzhp4tf3129ZX9TGOp9jH3FcetY4aabw8GLe/WMEFIgMmd105ge3huOmGgvqvp` &&
- `EikNImeEe7NlHQxr884QjFB0gER6d33wgVGp7/ANxXnKzQ6J8S2AZibDD4hvt997RHE5SmbHfesLLqXRpRuw2Nlf58SwS6zcYxMCUGYoVM6DHlnzeUDDoUX3rzh4jWAuiPQV8m694mNCbJs949oIwnx3w/sQvaKAc7Qvl1gPQ3F5/ao7e29yoNTlEOdYBtZgDSEdHONtJUNpAqy1jPMwxCaCvBKT5YGjwCnOaNVhx7YZSX3sKJnHKuEX` &&
- `o7XStHz1F5nnBpR4uXJYpt/IITAXKOXbpAVlGceesv2pcySEFLfTzmKBbXvnDYWrE4Ot9KrznBl3WXZKAOSsb06Uaryrcb4HS1R33x8VWLXb26zYhqPfDRjvmUxEaEQusJWuv+TYeNbLr03iSlPgNShu4OiiXVNdnT1gjYr/NJsTV8U+utf7LwNewSqvemUkVxH3xloqGruztjUKxv8rBt5vV6ae0RQLdWsv8Aw7UW9fsc5WUJ6nls8d` &&
- `ma8g0e+EZYOnt1OUFHJ6ezn0lVFqGiR2JwPiBB4WRKYljCiJBQV6b97Q7iGzYaAviG/wB34I1fhorKYeENFQdbM8+MsVBOIqWossZYlQLgUzJMG5YzLJsy6v6Q2VB+QChc1NuG3fn5S2KaNOKJWJR1mCU1mo8AoWrxTqF/qAQOu2d9PzkUWSnq+lVZ5NfMTNDv085VLA5LgKxKlmJpUeBuBwFGTngc6z0+/wDxOFLiFdLPJHZ/lVBOAv` &&
- `U8jF+cSoRxKvo5H1GBbVmpWYQpxzH2z6PnNeQuuIae+a0gNB/5l1TKVe/rrCuIf/L/AP/EACsQAQEAAwACAgECBgMBAQEAAAERACExQVFhcYEQkSAwUKGx8EDB0eHxgP/aAAgBAQABPxD/AJH4/R/U5+jn1/R1hXEfwF45oSvnq+riwAdXAZFIBs1rKy3y+fOHTxUdr/bBfUQikBpE4ncsinSeP9MKk/SNmWKevmT/APTCvsQvUhgmhc` &&
- `f6K4wSsDuRSYKufTg6nekytMdZbUQMUk93lIiGkT1msU6featvqO56+stDMCKzWeINzwTeLuKME2AeL6InqTBzqhZmwWxvVIDxjinVABTaKg8/TyythmQXlV0GJZo1lUSAKKoNCIojmkwi8CCfS79nvJQQUzFBPNwdX+hjde5GWHpEbTWOiBXOQtVkZoUWIYAKybiFhNCdP23hKyir6JFY9t/AFBnO29HAGbaeXBoUE9UT6bmiwUlpCn` &&
- `uKA3s1G6KQGgSTDzoNjcl4JGUNhRgFVa25O0cFPAONOfWcTCoLYdkNhPTpLiCY2jJqjZgKHBPBnv8ASHeRzHJKFd52HnpXs0kfvK/w8gAKz/fOGneoeP8AnT9NYNrpgBVroA2rrWRIrGommNodAo7ozXtSqnBWFhFQNGwX+6G5xVrIpFaJ3kCFHu8H134cK/vcq6dyVHU3M2u7jrk4iqD8b0TwT++aNgb+MA4RChRKhHYP2Y11hGt4R4` &&
- `xGIlbQEuBNurpwmS/bmnTUChNpfJhLLQG1p4xCLuxjPDn4x/lACVIQodf7n7n/AAUYJ8QuX5weqBsTT/u8bbVb0E2tahqaEddhcAAZYolBRGCxwUL0hlcLvBq0/wAYty7xsnmJ84bxn25jNxrv1iSUjrJGypCMXG6UWp4wAoH/AEwE/L1wjOk/tnsDhmzy8NifIAXgG6qAirTQwklzxyFXrV9VJfbiJNFlw/kut+sawcd0pXQEUugrr+` &&
- `fNYrSAq4EUpB2T9+5NuAlsylL0UrKPWA9MLy0IcMZa9BcH4O3i+UD4L64I28AvxR1+8jKjEJO4BaZI6ZJ10zb5GdIUzYG+JhqeHWJLUlHBGgenH2/gYA3rHhp7ca3dzxyCev8As9jpNImVi4EMqSSnV2lZ2ShECjYEriSOeNfxv1jB0lxny/484bXHb37OFjpWpHgPU24dOFtZBQ7Agfz1aRbLy4PZ69ppUApEgKwDEdoe6qhdEeBFKS` &&
- `9JtMJoW166kMV9tvbiFtLmnmA6T+cS/wB2QFL5MUjH4zcinl8YLwnUzQhq7Mra1/jFTrfgxSR63gRIC8+XHXA6zlvHcLdk3XnGkIb1W37yVAlixRNZiLTTzAjDVCoOtFmUhBGwSAmyMMvmWfY/xo5wneRuRdOWhEDAacie2WTbwR8YhkVyNo6T+eodcesDgA6GfVq3ruAS+pRLRp1UXmrkQE8XSiAKKWFTTWIMRzeVe/I9wj8YHrFrYM` &&
- `/9M1g9WvB/1kxbzZhmwxN9mNAtXZ794IGhtfLjkSZsXmKjV/OCok8vnHAYO/vAlOg5hiPF0HnAp6c5jsc+nMVegdVhizKay77GUoC3CTDU+gFaCxDnlt9E84fH8KXgsJNpLIABuvgY4lDFXzQSCQwTBaT2eMhML5ZSt/nmccGeIJWpFJRfePA6qhZUpAQRHaEDEwjXRAAEvtNhh4ZS4zpPxlxu5DH2TEM1O4UNJuHkxEdmkxjSq49ZKb` &&
- `qbmKOKPJ/vcuk+9f73GU6u8gg7Z+2O+g2+8frPjJ21vCIEDrN+UsyaT3HnIFUcHlwcoKV+MTWTvr6wr5JLUFAIUcFDZBbNAk9GKqsikqVVVzYlBR28fwc6pvJI+AFx2HQQX0CCwupSc1On1UgwFXrVWvVs6BIBZp3jUXNQpQaCnfmfjx3mLeCgPg/n8wArkQm4a2QBQtBwKLchpBcaoTwMRKNPTQAjZUuXUX2Dl8BIhTiacip/+oMkFt` &&
- `pJjoSXjwnvNSdM6wgHu4RS0tEH57MWFgD0o07CoJvDV89Np0iZLw2LrL1GpKcWSrvlducNq/3/APmQ5YjZZC4MoVOjGcNIE03RpTms6tAZl3WuHy5OlfM/xjPMF6dYzAOPrVbTy/GAgQcBtzduzSgej/fGdEAQIRdlCyWh4KskkAVJvoeHX3MWlx5y5eXwMwvsbhUClFzRX6WSGniShOPOxNGol9KXlRbF1KYvlqKvAMKhHcIAzSNxx1` &&
- `XadzoAEAMjoDP7ZCCw/nKAqwMVxGtDhRu4iLeS/wBKAQ7hKIqq2iiyKX+zDwDQfa1JXVepMTKqaTrC0s2r8YWOg0Md+vOGctjciIeUs+zNi/wh7V8SbU5gVw0s+y4NKQeOpeQcqw2WPmihGjFT+sFOhFaDmKHu514PuqMUoOhsQstHOhKoYlWYKjO2meYZQVEGjSgIjaFMn61Ra1IE2UXETSQSQouol1FDNY1lZoJsxbV3+gVBtQ/7yI` &&
- `Ww18sYsV8DkSh5nuVb791wLIpoV2uAah43MHb5GSoAEmwKeEilbtoSiQCeygojC5GmwbDy76yO2JEm0OmNCECjaCNIiHibSaBLKJHAQgUiahhjpqhdEXH8Md0ll6pUUoMxqQQbtiwYMgchEabK4I6mj0S2iWAkBUAkqb/GBFF/nPMLVSs3sruRQmUY1vjgmGmNkqMayqIFFQ1rVKtbVxSs2SwI8Hyy8ccAv8TL5lU+wywj4SW3UtiHkV` &&
- `aMbcjECALxR+XlC2EnefT2aN66eT4+MM6aIt0KNR+TfzlEGQOmgXVNwXVZm3UCIoeUdZp/S3SYYUlLVeH3hs4jtL4pSnUWXDmqV4BUBkIKlfNdoB+7I50PrBQRb7SlQxdmrKuFtnqiiPaugcfdPz2Be1QUEQiF+MTxeY7E0HhJQ6Ku0VrSykniwtk8sDTCZAyHyNpqTBqntFmUjvILZjYNcqI8I7hA83g5Wn2360dYeHSezJ/XE7ognQ` &&
- `qtn9sOhhvlKABIyaWzggdCGwUBHFEJg2uP+y6qK75VW2FYGPWRUlCmg0HEYUeHBiEAQvRpsmXCKZGCGg05rmna4xLe4IN7dVUaIBYKOvPMAFjyuj+cIk3WJsKCWLCyNFEMQU3mjTSIUAmxCqIUkgDQAABzDAK6wiUeXernMS2KQW3dBS1Bi4BoCrdgNgCqeAV5jEpWqIIQVDaSHTrmOdk4xg00AaPO+NFGPxlMv9xX5ucMG1cFxI2thH` &&
- `QVAwnGjqg6bhAEdCbIbNjjecWP4wPFxW5vCuI8TCPC4x8zoCrm0tETbJ31MaIvo/FkT558/jCDjO8FKbdYJA0ZYvIQI9uAAXbBoYKKk0awc1j1wzZgfEIg+wKF4XCSuMAro9A6ZMA1V4bFFkEa4aAIQ4XG45gYkSpJVm14StALAW84Wwf2hu1UKtiak68DO+8RtyJm+qBgENjUUoVAU5ECpjN6UIkjrL5IqCgsNCgsFrb7/wB+sfVFW5` &&
- `45nj9d4TL4z2s/Q+MWbUDC7y4jTBbhCjNXaTlF14rh8nCjiiti2bZNNw28iEWIKdDQVfGaWCjcUNPkjhWAKttREQDTaAkGbY1NEqkTcBtpalIVuARI2IKhzVIIXWHAgxnSiij5M0WDFJ0J6mzFAgXOFFsBp48nvIyUFrD0AXQuEoFk2xSJAlGjYN0oCgxA8tAeNqgx2WNKASvP0uhwXG4UPGDY/bOt6wmhRFSp/wCYWz8F5N6X/fObMb` &&
- `Utnwue5uVmWBew/YxxCpsoBIIFERRTwYxbUCyS99mFpXaCOEFZjGlKX1pHfvDuxzte4k+02gbQZC46YBhm6qwUDGHAsGrsUPdGqrTHvWzpgTtUc1oAADDOjDCfMg/D6yepA2bsleNx3AhPJjeJSUVtLhC6RwIBNQ1NZrATcJACABwDx+uvLiw7TrXQ7rHguCnXwLp9jXpzjjRmUEIaUIgWG2CoET2OQ6Z9U0G9aTe+4xhNX6chOVR3qM` &&
- `9iCJABE+F8fOrkjYVePTr9/SYobbD0SUQC9ukY6raKBLRN5ND5cWOd8eQhfsGxAMxcFsa010IocdvXZGsuW61i0TdNDpDn5FaqCDcBiIhwPcZAFYAjEINF5gi0rpuSTcsVHW3piGkWCW2foLs8wFUqljumgaFJF1RbxokBD4DuQQlAtdMIbKoU2W+MN4kgskIkGWr7843hZ0kwGUy7Pyy9UhqktWhLoKb3tzSiQgCaTZA61b6KglEGw0` &&
- `CYb0tBU8Z7GFY4bkz/AFG8vnEemz5cE1r095LFjJ2nNQvBOpBSc8N6oiHYfAi1xkrFwzsaTISimLhRHeq0IQ2uiCjgihUojTFAaVTE24FQrHrLhT2RNAbsixx3cbcOwzb0PFPnw4HIywSczXAOoUU3et+snCbOU7CJ5fnHBcXUKw5RFPHKBKmDz6N0SoPuqagbDlho5DziYNJG/vjzAVmPoJBW4UkU/QQ7MqVi4wSPANt5RaggiopbTB` &&
- `2vZO4VXqnYSReqhAFDQrOBGL0aiEltOmMm3Uz2a36lQa6MUoDDIKbDfATBYXT4XYGo7Fg9TKvnA3njY7Q21Tmk4ZSKPEiNtNCQkDmEViSh9v3C5zACWoAZEWBfD0wtcw1moFc+N0jvAwOJAmQJCBKoRWtr3JU1EN2IjgFB3EXUCxCF6qoAKIRovzfyBNDQLBQLVVJWHeoRRbwum0pudbenGqMSkrFLDyHkx4oA2kDoDQfO3lXC4o4mzc` &&
- `/uv9cqD90JNLNSUCu24+XiiOgCIJAjsJhjCe5OgDj00EqkCRG8PBjaCsL4rPbgPHKOAU9mbYJ4yS/s4RDXHBsr59YiqQgSjZdkfCmazLXqFgnbujmzCopAfTMJuIyLiExWqkkJaPbRJAwZPxJIEgdIjvD72VIn3hTCzbKmBTOw0AkaK8HLDxgklo3J1QDINRXRTxeE/Ls2GmXYHyv0eYo3ziiEIeOHArZEwweAKATEE/OOB+2fMBDGpi` &&
- `rrDm0bm8knZQoghjdAveNBEADgHjKZshlWsDRty3znQc9XLh4yZMTGmrwblaO90QAotZmWKgWDiexwSAXziCXfgxztxSsDRh+4un0Q8eFrABVAUAxRWQD4QNdpUKCAAMyGC4SlFtlsBGDshmUqooj5ExBmimzaziLp101emQoORo0bsgrQotARimgDEHTHLJORkOLqpdjPk7cq+djr+2+ksPfrBxRgHqK6MI6C+QKJCChgravTQCvge8` &&
- `yiSvZxxAeXLPg49sJSl3cmIAo9YdV6M8JGCHWWvg6/BoXWBDTgbha8Mk6pWu8CXh0nneHNhiMCZjuYCNihKbPcWiXTaK+fJpzYaFCg+EKwEjerHKDSI+THWIuqgD7FSqXgfFv7yalCBYgUDBC76EK4FFTcA40O03JoFNQAgEUVi8Rf0ssJdiiOo1Ca0GC/PnfX3kSI+DANnXEBfdwGeecHWWJgi2JlIrIMLCzW9YOJAZ4oLBPZ2shAln` &&
- `k/RcH++KraUAFR5+sT7KJ4NIci+FOsEXgKqAHVcQRkHW4iaT5xXQ7jwr3FFXphCAnylrvwCJk5ZpdwPs1Q8opqKoWMj4p9/b9sWrl81bsh8DxZuXLg7EZmDsVTdGDrHCLJTHVL3aXX0HVBDLtevGPuFDgfyaHzcHVSXDodov8AJHH5Pxk2XA61qB8ZZGsRuko6Ztq63FPlxYxbCHBigKgpYau5l+AB/kIqUTohASCJUsgQMegYD0azZE` &&
- `iuADQpk4rW2nfN8Z3KD+4BQ+XXzhFJFNmbdgarncsQLl8ESCFKbaTAAARRIog2dKBvtpS4AQa07PzzHzGNN2UE7VehLOmJ4YiFMfiujIoCzYHRMvpiq5hPm+sCSEh2GB+vL8Y4tfR2IIu4APDBtukIMTcdQgKEjdWScKL2+f0W4YgEVVdAG7hDLzLI2HSC6VVogHS+W8OwxUp4csfL3ATutZfqb3gzs64CInkRmCIZcUAWULsK8AsHG9` &&
- `TcCavUW/Pxg0uKWRRGI+8po1e4LMSKVaghWJU8sh5mPEQ2VU8BWFBIKFbDsIiADYOhCFC6O8D/AOSIvELvzWunWk4HjdyrAsCV2QzAoiTVaa/Bd8I7MhoLSyCD3x/vhF5OKycVVZZX1hF6BKQk0ER+RMbm+cM0cmxPZ7xeZ7k2wKJ0jWdoLM2XMArUNIUqyuj8YNt7eDwWJpggaCxmfnz6dGvJILNaHBRy74QgWoAWqoAK8x0lEEq06U` &&
- `RBUOwhUD+BjUKzFNPhV9e/8Oh6GDXVIc+LvXl3hoGIt5PPk+c6CQ7HgVh3gKqbXEPEdFTpOwSgXps2oCA0jVK6qLPtwx1ckTkrYEaIIfJippYKSISaS+HWvgwWCtb2Fi7DnDvujg1vqMyDfkBP7q/sZfJGuEFDwcA9HS2hjPSm1tiEavVmu5crjZg0VldpQgQtGDv4aCNAGgDxnCYwYp3KPdZ4PWMLtiNCfeSNO3hFnoPycLAcDsbTUN` &&
- `O7oTeApEtUFEfInnD9RLJGrdPsQvsPTGcJJlAonwmMoLDFK0BQHSI4w2ZsB127QWbqDwxgw+O4IILKWERVFCaQAbMBvAzbPPcYlgvLbsN4tkC0EHgHMBFSrWZi8CgzQxoIoQV3BoTjNawYQXd94YHcmA/u7hE3QnUGlKb5T7M83kzxEvnY4mXUU8T3P4GTDhARFJbS8EMtYOxqiY6lKVCslLpF2mjOCGlGyUH7PeHnqOa1dHgXzfvJU1` &&
- `6SX5UfpJlOneg3Pj4PR4MQWCDh3JWqQG2x84oxNZGZjyQL4H5yVwbm12NBG0JNpkP0hACKqLpUBCgKSYkhkoPxooQ2AJE+E/TdML7A4kKgUVVgi1CFCJth9s8DgNB8qtTFU/TTFri4UaUN5syhS9MJ2E7mII70+MtpiWh7dPhPCcTwiYj1+xULfIImhsBBM8mH6MWCPJdjZNx4+cMGwkEIAGgPWJGfNH/mOPl6wJ17RTVJS+BfOBPkcw` &&
- `IhIXB/kFiEqVddtBZbV1dejFLkG140+n9zDCMwnhJT8mb/AA1/AVdNNLLMTVDzDQw+H5y4GuPx84UOhcQLoXfAiqFcBv2nAe/+e0CKru1rSIFIoOv4l4/oUEHvb8HzkRkzc+fgx2dvYKaRTi26TrZmnP4Nhb+h/D1hpQSzIRvAUIGbAJciHUMNi6e4Lr04LRrztMNpxPqWDy+jKj0GFVTwF6cToxeuKhGRT7YFfAHjEMI0FKMntHy184` &&
- `EmPaiuR1fB+cV2mxkF1/vR/BD+4BaPhVrwOjCMqIwr8sh+xjl1o/tj+jqgSkqSH2dwU2GtuH1iYSvE6ZcgKVB0/Dr98BMiKCwO8wAD5LyZbUo6Umw0B9ZBdr85c3grhgQQggItEeugXOgqbQ+cJ3G+jBaa+0nwOgnSKRIcb7HeSqQVR0is/tP2x/DdBhrSFDSb8PmEzOg4kSkRilEcYafgCC3REDaszj5ZyeKBRSIiJTmEnZQUeYpQgH` &&
- `KoyyPDhcWdkDxu8UiheLKjBpCZpbRV4t87EUJr1qjWsjLM/eRtQfbz0Zmm7AEA21BuTyFTVEhQwg/Iof7ZvIQCD49cUx4CEnhQB9sMODKzybQ0UOWCyu7hAU75qiGCJNujyxDg45AmxPJmsOcqRAhqIUfDO4xaIG76mqgfESEIYpW8oRX0AFWmIufPRKh0igUh1DpGQ/s5AQkFRwelp7EwehkO0GsVcFSUBguVFoNdvbmn4qZa9GWBUo` &&
- `XpJBBsTBd4gH9G7F+Ty+mV1kbp9hiztshXhWtP0B+jsPj9POSUeYHeKIBQ/wAZvlQ2qmmefrNfVBShQJu4aVttyAQACML1zZqtFGVRs1P0hNsyz7ViJNArBVA+UyJ6DvbmyxThgbej1kJ3JoSiE6CfYdQTmqtC8kV84+t2Q0sUGukEVFDDDNplorRzSn2wDwRCQoeGi+smityiiWbgpEUlLcgIpxSGEFFIRKlGBr6D2AvSJKLX78qUJK` &&
- `kU6bADgVUeAFDB+nFIUsRooiIoWEHRgmBxAmcIgECrniCDxH14xSJgwS/ebWtLR/KZxg0s/IQr8Z5RGUT4DGNibsiunZGz2J8ORF7vDjoJIRTiNi72AfC17nnEgMgAwGqAW7BQBEcxHVNZ+4aV4DiBY2AEAGGtilEbDm2rmoKI1XhIhSG77AwTalSEB24ADr8t5f5mAmJN6ROPnEdgpkMHEKEFWvGMxr1McQAResbtjf1Y6TXqeWiiAM` &&
- `azgS1LtR0WBKG74em9mu+dEKrNuBl/SGoQqTRuvGnCeLsPEguP0BQogGk3Y4X0RJQXsVpDb43gpVJmigPxxxDpen4wagxPgEpag34wbCwBahgoYJRYOPQvX60N0gl3b+Xp8XCIfQGWxj7cIa0GArfPM9pqQQ8XYjHyMrScKbTWfLaU+gjO5o0INy1srYRE2vca8QtddFoEkEkOY3a7FLlEvNN3jQilqjLVhLSUV4AalifbNAH3miSRBt` &&
- `SMEqCCxg418slIl1mQEHUMD5TAAABoKqCmqDhytkKGBKLWaJuAXHiNDFfKaqvpThZhxCiXvR0moeTxfHDcF0FBKPKI79nvCfNsVvQalUACqgZ5cELgFGQW5EC4IdCgQFGICFSg2PQ+Qe4CGgCCLwEEMDJdwwWrRQEFPBUGjzjRKHjCOjWUH8DOxMAGsHlS4BGqmrjgXEm+0FYKTgaQoHniHaJ2DTN3n6MRZXfKz5+cAJdt1goKh84Aim` &&
- `McoEH6aSfUNYO7VlAD6C5p3ToAqVoD0BgQNBhfQFS3oImZqV6FwFlEEtahnBcBu6waWo3hIaDjDYp67kWl1EEVeHesouTFAig02gfSCVgCmzxcf0ABBbQIa/OgfbkwwV/e2MVPpMuI+i5vXlHDKhePHBXXE8QRXYjRgYhEKaGLiE0KkRFIgb1JkKnJEiCao2G4vBAVRTBAIE1QBYzeHsxahBFQ2gi7HDBP0FkPI6T5MpqD7DjCarVyHS` &&
- `wwnhG15qHOmMm8QLeNgaIu5hkgswKBNIiI4BsbsAOkTIkZUwYLFiAXZ8jFmiCkLNoCJyQ8jwSABbRMDwAQEBh7FWrG8oKKhUF0aIGCAh5zyjwsw4cwCi0Ljjp5bFVOuh5hKxmoAVapZisA8THf2VlTd86Pxk3XITjcJQ2FWvz/AHx3UJoXCOx2GF8DxlmzNu5DpqQMmD2xJ6H1gtHe7ZARUSuzN0RQbQPAVKznv9Hm8B0YfPjCNEF3XN` &&
- `gIEd/okTwVtdUEALqqlRsTi9GAK1Vm3DYJgiUbmzp6TPagU/A7n2NWmYpAWIkRDErvD3r+GQDxJrJQvGMAq9JHlfOO+tFODFlAZpfOsTe+v4wCSJe5qyieYvjXj434ehh9BE9jlXyft5NTCaBSlS1UCatftXq5USC4RzRfY2/+4pHAUm8uETFAWALg5oWO7PHmSHDLhwBfYBGlEQKhdMh0g9ydEXSy8cDCQJMoNjaXBbLcU0Ngb4vzk8` &&
- `gsjbgGhSBAs8tkiNfjBjrHcdBmlQQAKqsM0lBKwp8MU/ZchyB58ZFqp7c0BYGjsOzEoZK3eUmwJsEbCDXvYwwdheH10i4XOx4J6fdxKUKXbd+8L1nRDZgsVdxxo/EOO0z0txesd4wul2SCI0Cqkg2GGAHBsC5DQQypL8fqUBOhQUSKuk+fTGCdSjaf+nMVVvc+DFyqqw1BkCdNdzlBdYLal99yfaziFfeUzZI7tgbdu33gEtNFAQPYtD` &&
- `4esWgFG1+yEsU5S0RiPD2j0C3eENLTxTChqIFEfCOx9jE85YTncepxP3xGxcKyesdQOr7N8p3x3EA9ieYPK10EZ5iCINhvRGR6T2qeqzWsaE/CZUPRbdHlYjnXtHsG7zyeV1A84AgIE+xroYLsIoKEpspgPaFGOqLQxcVfh4ICCg1a1ABbDNK2qKGIW0ehS2PTAuaAbtw0J9naw0OdTqwewM3FDW26wuks9vtrVEhaDw3NkbCuL4vWj8` &&
- `wAioy2jGmoFw8iaHYygR8gcTEWUJjhUobmjmngjgPa4wENA5THgScoD0Mh1yV3JX370ZRR0ut/8zVViHjByoHeCEXnXtwEZTAGqYXD+MWOXGh8YqyvDx88KXuS8hMCEuxCoO57ueP12GJmXYu3Qi1MmjHyNm6YZssE3Y0jmus4drGxoq7utXWSmU5dAdNBnSgaMBAvUfQAhvErA19YI2DeQzKPMULMeBgW9PS4aJDlNGI+YcmGiFx8CB` &&
- `KMF+RYTPhQxQe30HV4G3KqOh/Bc7n1NuNgdk6iHkT8nyKNFMrJa1KGgYEfspfExIQBBJ09P75RjdQob0U0QykDXAyEi5sIiCfOzZvR4MOCy99wfrEYssonlnrf752gNrBigIpNydA1KntgzpRllUSTZCx6u4rDFBFISjGpWFlixm8KUoIfJQbPr6e8q8VULUqktqTwUN8ixwohI7UKYFLQqQylAZPXnRWUOLUfeDAjtqIpKZBEgZjhgu` &&
- `uni34xEDbey4NAF06c8GwnvJQFZEI8he5pfYVkHQX1htwAUgG74MNXrbdmYmq4NmUcPedUQeVIEAroCB/AZsfSuhkI4CxgXWoO0lATFpsoRslIopesBskfOnHYWQzHJZ2Ka06XEHRbGkRPhJ3uQey5LCgZvso68QSVU6I4vofeb+h8OdF+2StWHALjBYyEFjUYJoMnAilCV1dlpoBANVhuYwbNOMqRrcCSLq4sXneHpWKH4fpyYYD5ZE` &&
- `I4tUDxUwYwFkAHgDRhBQJKEt05RXWmt8ON32L5UFEElIjFpRJ+zw1sD5Ix+EYAOTBKAVjRH5E3N4A8hAFnoaNSTSIlEcbSoQonA6Ud7w6aZhGSwFicduS2LmoAYsWCMCGwQYjyiCCipI7NGnAEBdCoxfdcVFK6rCcbiwgz5UDY0nwY5q7w2ABEd1PMPFEMMUqCeGSzLM0pTWnneFDB8mGmEPPnD6BPOblVMQmaXHtXcBYbKF6marT6hA` &&
- `EhBp4mCxK0aRpAsOGgDwAeM3/C40DjJppDYgqgB3cSI3ZErodWIC1qGHleR0FBFgElKdm8kwSpCUAlW3WbxQxb6MZxBZCqb1pdZUWuo0FCsB2BdUrsBUgeac/OSITfMJIAeDHcVH5wYJ/nOL+LDDVfXn/3BlJfWIVpwpirLhbrjWIdZfukaA3m9H4wNKrcHd8ZV9tuae+JguAeHIwLIeseGHl977Jdz3hLEiIi02KJ0GIjCiaxlC8+QC` &&
- `hqV9gRfAjWfCmxsnN8YzftEGgGEhAU/DFDxSEFC0abmuU81ahbDkEUUpugAZ3s7HnBogXFKoB3TwFYRxYo7XUzwm9R5IlTA49A1OU4CkR01CUBx7c6hmsaH7mV5w1ugoqTVpsuBa6wBBQkVaDVdnuUG0BBhtfIadqogxoWWWti3QeK9x0xYG7OX47/AITuQeQqQSFEE6oz8ZJg1Xr0oKgp1SYOz6Xp1pQbNakADnAYJfg1/GUi4nSjIB` &&
- `jVWU03M5JAIA/ZB+kcA78TfFF4FTdXQ/oVYgYTRYe9mjUX45WFHhB0fIYDQP4htVVRRCTrcOs0ODRNC0CGlqxBbFzWCGLrznwWNb2uVJhxheneVbjopBNr0g+veUYpUWitq3tJbAgPC4N4kVzcMypvUz5OsuC4gnjNBujGVB7gBPlmkgp8frEijXHI6fVxYwoEgpYwuM1o6lS1Vdoqq7VVw0XnnLB3gxpAAUCwXzK/u4qNpA8pt1sWE9` &&
- `Lg1fXyO6nABcnHXfYkCfgp9ndx/bAKEchEg2bjVTQhkPWa1myCiMV0nG6XUzvY30Zw0aAws1ehIOjhAKLpSql+KCMNykahA1qe1uP3/HaLWI4jgFEYRooLArqJmqbfh7ngKaDHI7glh8IK/Yo6Uw4PY1lgjgob9BrAa49Chbl2IBY3BySwM0pUp4TiOxEcEMwnwcS8cEafGDT1Zqm3kDG6nb4yW4GiSoLOD5PTiHiZr9e8RdCYyKEzlI` &&
- `jFwR8nC/UfX2W+b+zcOSI8h3HnCrsyxhkJ89yicUT1h0n3nkMWSgyUrcYi9O5VVpM9cMKEX1hKiJdayCXXwYvWrg2QDe1TR5p7yzpAmMondTyoIDaMF+FBsF4nH2+dfo8yBrESliccCE/lLocinwvVXqgnEAJWuRWw2KCrpUCzMDWFbqyHwcyCUcr0/wBQNTjLpsCERGUnPJdZAhJttFQmAxr1Jyn5g/Tt/wAn4AKIgWtoIhBCWul0it` &&
- `ENkG7hR6pomg9iilLBWMVC/DLTD1zAqxplIMiOOAgr++Xh6Aocj69HzfOR+IaYNL0mIImGjNTKHznWYKQwg03hIYxJ5H+cWrgHCO6o+MBSlM3IC5ZecxUCwvn1ghaPLszFgQgke8IOBLD4IWG0XzrCLJTNUvl+XpZ7/nhB4maiGkRRHpkkIDAQmgv4wCM+AYBEKgCcNsqrLyU0HopH2n5w2kUDhCtYbnAoAq4TMkR3A2J4w5sIAy2BeF` &&
- `Z8q7rd2cRyw1RsTFVPMODebg8YUVQfWn4yigJaVUCs0e2OrB4wgtWm3zO7+DwQNBkGPTuUHmbG+M1oeMRhX0wUMIjObwt/O8CL4zU+n+c1PxgAutt4J1UubD7ueNG/Eu/2H98nuQiRiH0U8/HnGSisCg3qp9ut63yfH/FpgQFM8rZEkJLQ2j484U7KlmiF7JvSUAmYROn8YwIH4wj/AFD3j0thk65AYNpo5uaesPdK/LjkRo4aTFRG/O` &&
- `SW6ExMPxif3YzaG8kp5cHRrIYojAn0Y60YYiOJrFkVvX1klkcgCcv5/vxbst8agdhBCvDyXCZAIBwM8f8AH8YJBIUPWFlBuInkopn0Nk6cKjabwEBrK/HiTMYGOxPxinRe/GaTPBRc2NK2uv4yKA5cTeIF5M9Dvxl0cOvG81h8ayyDy4ts0Z23zmQN+cNFG+Y9NoONy6wD7ZyBu4QMExGIAlB2JPaYZLdGlTBtUMQIrP8Ak+P0D6+5lR` &&
- `E/bDMypppEhE07DWMEoVVAs7VsMngBgCMuxWk+Jkca9TmMA5kRGjH0ObPrJJ+cYhJMQrgFMb4yPWGFFCuEj35jXcXRjIq2Y5Lm4F4ZQHowSOBY2Yu5ZnDDKbcafkmHnK0BlB9nXf8AndMK2ptcvjPMbbd0Ij9XkaNQRGY4SxCwNI6sgQKcFgmgqTeWLPSZsDS+caNeyZR8C37zShvIoZCtzFEc8TPbENSVnb0Bphp086wgE2fGM7bBJ7` &&
- `wkdDJ2IOG2Ca1iMEiEBQIpyCmT+gyz4BEB8NXrY6x82/sSdFUjIJppRbXQBiuwaICo2DQudzgWwBQ6FKtnkM1QVGEYVLJNKLT2Yo2HPjGmLTWsO1KccEuy1PH3ir9GdtDG3tr3/nLNsimH7OtPM8SJ9Du3K8WW6y03lYVAear6GuhcA4PSJsPLbXf9DZiQiJpwl7IcpuBLGHC6zxQ43Io708Ajlz5aHJv3y+waaA4CvQ4CUROkwLSzBl` &&
- `ASyTIPIuBFAvMG2PYaP/uVCA6esFvIe3ajSevOulGVZeLCANDWlAEREcMm/ZcGlNRo1IeUpoARwkfk8iD5OZ+P6G4CAIkR84viu+H1ss+mHHzSUnnSb++AKOdct2+Csm+Soh6D4IE1AHSEXAl2JWMNCzy5dbywRSFE3xMD1TA2q6V7VSJs1xBkeJj1SSDUu+Q84TuRykbe1ZtxRwABQqD7hSKosgCpBzm4aeEfADxGo0cAmv0/P9KmTp` &&
- `hQiAUN5gggIGT3KHnvRQVoIReBgABKJYTpV03o3zVwkAwoGokR161hoQCAGg/qHj/+RP/Z`.
-
- ENDMETHOD.
-
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_17.clas.xml b/src/00/z2ui5_cl_app_demo_17.clas.xml
deleted file mode 100644
index 414747f7..00000000
--- a/src/00/z2ui5_cl_app_demo_17.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_17
- E
- layout - object page
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_18.clas.abap b/src/00/z2ui5_cl_app_demo_18.clas.abap
deleted file mode 100644
index 3e50ed29..00000000
--- a/src/00/z2ui5_cl_app_demo_18.clas.abap
+++ /dev/null
@@ -1,220 +0,0 @@
-CLASS z2ui5_cl_app_demo_18 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA quantity TYPE string.
- DATA mv_textarea TYPE string.
-
- PROTECTED SECTION.
-
- DATA client TYPE REF TO z2ui5_if_client.
- DATA:
- BEGIN OF app,
- check_initialized TYPE abap_bool,
- view_main TYPE string,
- view_popup TYPE string,
- get TYPE z2ui5_if_client=>ty_s_get,
- next TYPE z2ui5_if_client=>ty_s_next,
- END OF app.
-
- METHODS z2ui5_on_init.
- METHODS z2ui5_on_event.
-
- METHODS z2ui5_render_view_main
- RETURNING
- VALUE(result) TYPE string.
-
- METHODS z2ui5_render_view_second
- RETURNING
- VALUE(result) TYPE string.
-
- METHODS z2ui5_render_popup_input
- RETURNING
- VALUE(result) TYPE string.
-
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_18 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- " there are no restrictions how you structure your app
- " you can use this class as a template or find a better way
-
- me->client = client.
- "we collect all app infos in the structure app
- app-get = client->get( ).
- "we display popups only once so clear it after every roundtrip
- app-view_popup = ``.
-
- "do this only at the first start of the app, set init values
- IF app-check_initialized = abap_false.
- app-check_initialized = abap_true.
- z2ui5_on_init( ).
- ENDIF.
-
- "user commands are handler here
- IF app-get-event IS NOT INITIAL.
- z2ui5_on_event( ).
- ENDIF.
-
- "view rendering
- CASE app-view_main.
- WHEN 'VIEW_MAIN'.
- app-next-xml_main = z2ui5_render_view_main( ).
- WHEN 'VIEW_SECOND'.
- app-next-xml_main = z2ui5_render_view_second( ).
- ENDCASE.
-
- "popup rendering
- CASE app-view_popup.
- WHEN 'POPUP_INPUT'.
- app-next-xml_popup = z2ui5_render_popup_input( ).
- ENDCASE.
-
- "set the data for the frontend
- client->set_next( app-next ).
-
- "the app will be serialized and persisted, we delete all data which is not needed in the future before
- CLEAR app-get.
- CLEAR app-next.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_event.
-
- CASE app-get-event.
-
- WHEN 'SHOW_POPUP'.
- app-view_popup = 'POPUP_INPUT'.
-
- WHEN 'POPUP_CONFIRM'.
- client->popup_message_toast( |confirm| ).
-
- WHEN 'POPUP_CANCEL'.
- CLEAR mv_textarea.
- client->popup_message_toast( |cancel| ).
-
- WHEN 'SHOW_VIEW_MAIN'.
- app-view_main = 'VIEW_MAIN'.
- WHEN 'SHOW_VIEW_SECOND'.
- app-view_main = 'VIEW_SECOND'.
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( app-get-id_prev_app_stack ) ).
-
- ENDCASE.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_init.
-
- quantity = '500'.
- app-view_main = 'VIEW_MAIN'.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_render_popup_input.
-
- result = z2ui5_cl_xml_view=>factory_popup( )->dialog(
- title = 'Title'
- icon = 'sap-icon://edit'
- )->content(
- )->text_area(
- height = '100%'
- width = '100%'
- value = client->_bind( mv_textarea )
- )->get_parent(
- )->footer( )->overflow_toolbar(
- )->toolbar_spacer(
- )->button(
- text = 'Cancel'
- press = client->_event( 'POPUP_CANCEL' )
- )->button(
- text = 'Confirm'
- press = client->_event( 'POPUP_CONFIRM' )
- type = 'Emphasized' )->get_root( )->xml_get( ).
-
-
- ENDMETHOD.
-
-
- METHOD z2ui5_render_view_main.
-
- result = z2ui5_cl_xml_view=>factory( )->shell(
- )->page(
- title = 'abap2UI5 - Template'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link(
- text = 'Source_Code' target = '_blank'
- href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent(
- )->simple_form( title = 'VIEW_MAIN' editable = abap_true
- )->content( 'form'
- )->title( 'Input'
- )->label( 'quantity'
- )->input( client->_bind( quantity )
- )->label( 'text'
- )->input(
- value = client->_bind( mv_textarea )
- enabled = abap_false
- )->button(
- text = 'show popup input'
- press = client->_event( 'SHOW_POPUP' )
- )->get_parent( )->get_parent( )->footer(
- )->overflow_toolbar(
- )->toolbar_spacer(
- )->overflow_toolbar_button(
- text = 'Clear'
- press = client->_event( 'BUTTON_CLEAR' )
- type = 'Reject'
- icon = 'sap-icon://delete'
- )->button(
- text = 'Go to View Second'
- press = client->_event( 'SHOW_VIEW_SECOND' )
- )->get_root( )->xml_get( ).
-
- ENDMETHOD.
-
-
- METHOD z2ui5_render_view_second.
-
- result = z2ui5_cl_xml_view=>factory( )->shell(
- )->page(
- title = 'abap2UI5 - Template'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link(
- text = 'Source_Code'
- href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent(
- )->simple_form( 'VIEW_SECOND'
- )->content( 'form'
-
- )->get_parent( )->get_parent( )->footer(
- )->overflow_toolbar(
- )->toolbar_spacer(
- )->overflow_toolbar_button(
- text = 'Clear'
- press = client->_event( 'BUTTON_CLEAR' )
- type = 'Reject'
- icon = 'sap-icon://delete'
- )->button(
- text = 'Go to View Main'
- press = client->_event( 'SHOW_VIEW_MAIN' )
- )->get_root( )->xml_get( ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_18.clas.xml b/src/00/z2ui5_cl_app_demo_18.clas.xml
deleted file mode 100644
index 64d0c18e..00000000
--- a/src/00/z2ui5_cl_app_demo_18.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_18
- E
- demo - template
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_19.clas.abap b/src/00/z2ui5_cl_app_demo_19.clas.abap
deleted file mode 100644
index 0b8889a3..00000000
--- a/src/00/z2ui5_cl_app_demo_19.clas.abap
+++ /dev/null
@@ -1,129 +0,0 @@
-CLASS z2ui5_cl_app_demo_19 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- TYPES:
- BEGIN OF ty_row,
- selkz TYPE abap_bool,
- title TYPE string,
- value TYPE string,
- descr TYPE string,
- END OF ty_row.
-
- DATA t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
- DATA t_tab_sel TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
- DATA mv_sel_mode TYPE string.
- DATA check_initialized TYPE abap_bool.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_19 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- IF check_initialized = abap_false.
- check_initialized = abap_true.
-
- mv_sel_mode = 'None'.
- t_tab = VALUE #( descr = 'this is a description'
- ( title = 'title_01' value = 'value_01' )
- ( title = 'title_02' value = 'value_02' )
- ( title = 'title_03' value = 'value_03' )
- ( title = 'title_04' value = 'value_04' )
- ( title = 'title_05' value = 'value_05' ) ).
-
- ENDIF.
-
- CASE client->get( )-event.
- WHEN 'BUTTON_SEGMENT_CHANGE'.
- client->popup_message_toast( `Selection Mode changed` ).
-
- WHEN 'BUTTON_READ_SEL'.
- t_tab_sel = t_tab.
- DELETE t_tab_sel WHERE selkz <> abap_true.
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
-
- ENDCASE.
-
- DATA(page) = Z2UI5_CL_XML_VIEW=>factory( )->shell(
- )->page(
- title = 'abap2UI5 - Table with different Selection Modes'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link(
- text = 'Demo' target = '_blank'
- href = 'https://twitter.com/OblomovDev/status/1637852441671528448'
- )->link(
- text = 'Source_Code' target = '_blank'
- href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent( ).
-
- page->segmented_button(
- selected_key = client->_bind( mv_sel_mode )
- selection_change = client->_event( 'BUTTON_SEGMENT_CHANGE' ) )->get(
- )->items( )->get(
- )->segmented_button_item(
- key = 'None'
- text = 'None'
- )->segmented_button_item(
- key = 'SingleSelect'
- text = 'SingleSelect'
- )->segmented_button_item(
- key = 'SingleSelectLeft'
- text = 'SingleSelectLeft'
- )->segmented_button_item(
- key = 'SingleSelectMaster'
- text = 'SingleSelectMaster'
- )->segmented_button_item(
- key = 'MultiSelect'
- text = 'MultiSelect' ).
-
- page->table(
- headertext = 'Table'
- mode = mv_sel_mode
- items = client->_bind( t_tab )
- )->columns(
- )->column( )->text( 'Title' )->get_parent(
- )->column( )->text( 'Value' )->get_parent(
- )->column( )->text( 'Description'
- )->get_parent( )->get_parent(
- )->items(
- )->column_list_item( selected = '{SELKZ}'
- )->cells(
- )->text( '{TITLE}'
- )->text( '{VALUE}'
- )->text( '{DESCR}' ).
-
- page->table( client->_bind_one( t_tab_sel )
- )->header_toolbar(
- )->overflow_toolbar(
- )->title( 'Selected Entries'
- )->button(
- icon = 'sap-icon://pull-down'
- text = 'copy selected entries'
- press = client->_event( 'BUTTON_READ_SEL' )
- )->get_parent( )->get_parent(
- )->columns(
- )->column( )->text( 'Title' )->get_parent(
- )->column( )->text( 'Value' )->get_parent(
- )->column( )->text( 'Description'
- )->get_parent( )->get_parent(
- )->items( )->column_list_item( )->cells(
- )->text( '{TITLE}'
- )->text( '{VALUE}'
- )->text( '{DESCR}' ).
-
- client->set_next( value #( xml_main = page->get_root( )->xml_get( ) ) ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_19.clas.xml b/src/00/z2ui5_cl_app_demo_19.clas.xml
deleted file mode 100644
index 313cc61c..00000000
--- a/src/00/z2ui5_cl_app_demo_19.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_19
- E
- tab - selection modes
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_20.clas.abap b/src/00/z2ui5_cl_app_demo_20.clas.abap
deleted file mode 100644
index 605cbe93..00000000
--- a/src/00/z2ui5_cl_app_demo_20.clas.abap
+++ /dev/null
@@ -1,79 +0,0 @@
-CLASS z2ui5_cl_app_demo_20 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- CLASS-METHODS factory
- IMPORTING
- i_text TYPE string
- i_cancel_text TYPE string
- i_cancel_event TYPE string
- i_confirm_text TYPE string
- i_confirm_event TYPE string
- RETURNING
- VALUE(result) TYPE REF TO z2ui5_cl_app_demo_20.
-
- DATA check_initialized TYPE abap_bool.
-
- DATA mv_text TYPE string.
- DATA mv_cancel_text TYPE string.
- DATA mv_cancel_event TYPE string.
- DATA mv_confirm_text TYPE string.
- DATA mv_confirm_event TYPE string.
- data mv_event type string.
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_20 IMPLEMENTATION.
-
-
- METHOD factory.
-
- result = NEW #( ).
-
- result->mv_text = i_text.
- result->mv_cancel_text = i_cancel_text.
- result->mv_cancel_event = i_cancel_event.
- result->mv_confirm_text = i_confirm_text.
- result->mv_confirm_event = i_confirm_event.
- " result->mv_check_show_previous_view = i_check_show_previous_view.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_if_app~main.
-
- IF check_initialized = abap_false.
- check_initialized = abap_true.
- ENDIF.
-
- CASE client->get( )-event.
-
- WHEN mv_cancel_event OR mv_confirm_event.
- mv_event = client->get( )-event.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
- ENDCASE.
-
- client->set_next( VALUE #(
- xml_popup = Z2UI5_CL_XML_VIEW=>factory_popup(
- )->dialog( 'abap2UI5 - Popup to decide'
- )->vbox(
- )->text( mv_text )->get_parent(
- )->footer(
- )->overflow_toolbar(
- )->toolbar_spacer(
- )->button(
- text = mv_cancel_text
- press = client->_event( mv_cancel_event )
- )->button(
- text = mv_confirm_text
- press = client->_event( mv_confirm_event )
- type = 'Emphasized'
- )->get_root( )->xml_get( ) ) ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_20.clas.xml b/src/00/z2ui5_cl_app_demo_20.clas.xml
deleted file mode 100644
index 6a32a5dd..00000000
--- a/src/00/z2ui5_cl_app_demo_20.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_20
- E
- popup - decide
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_21.clas.abap b/src/00/z2ui5_cl_app_demo_21.clas.abap
deleted file mode 100644
index cfbe651e..00000000
--- a/src/00/z2ui5_cl_app_demo_21.clas.abap
+++ /dev/null
@@ -1,361 +0,0 @@
-CLASS z2ui5_cl_app_demo_21 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- TYPES:
- BEGIN OF ty_row,
- selkz TYPE abap_bool,
- title TYPE string,
- value TYPE string,
- descr TYPE string,
- icon TYPE string,
- info TYPE string,
- checkbox TYPE abap_bool,
- END OF ty_row.
-
- DATA t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
-
- DATA mv_textarea TYPE string.
- DATA mv_stretch_active TYPE abap_bool.
-
- DATA:
- BEGIN OF ms_popup_input,
- value1 TYPE string,
- value2 TYPE string,
- check_is_active TYPE abap_bool,
- combo_key TYPE string,
- END OF ms_popup_input.
-
- DATA t_bapiret TYPE bapirettab.
-
- DATA check_initialized TYPE abap_bool.
- DATA mv_popup_name TYPE string.
- DATA mv_main_xml TYPE string.
- DATA mv_popup_xml TYPE string.
- METHODS view_main
- IMPORTING
- client TYPE REF TO z2ui5_if_client.
-
- METHODS view_popup_decide
- IMPORTING
- client TYPE REF TO z2ui5_if_client.
-
- METHODS view_popup_textarea_size
- IMPORTING
- client TYPE REF TO z2ui5_if_client.
-
- METHODS view_popup_textarea
- IMPORTING
- client TYPE REF TO z2ui5_if_client.
-
- METHODS view_popup_input
- IMPORTING
- client TYPE REF TO z2ui5_if_client.
-
- METHODS view_popup_table
- IMPORTING
- client TYPE REF TO z2ui5_if_client.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_21 IMPLEMENTATION.
-
-
- METHOD view_main.
-
- DATA(page) = Z2UI5_CL_XML_VIEW=>factory( )->shell(
- )->page(
- title = 'abap2UI5 - Popups'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link(
- text = 'Demo' target = '_blank'
- href = 'https://twitter.com/OblomovDev/status/1637163852264624139'
- )->link(
- text = 'Source_Code' target = '_blank' href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent( ).
-
- DATA(grid) = page->grid( 'L8 M12 S12' )->content( 'layout' ).
-
- grid->simple_form( 'Decide' )->content( 'form'
- )->label( '01'
- )->button(
- text = 'Popup to decide'
- press = client->_event( 'POPUP_TO_DECIDE' ) ).
-
- grid->simple_form( 'TextArea' )->content( 'form'
- )->label( '01'
- )->button(
- text = 'Popup with textarea input'
- press = client->_event( 'POPUP_TO_TEXTAREA' )
- )->label( '02'
- )->button(
- text = 'Popup with textarea input (size)'
- press = client->_event( 'POPUP_TO_TEXTAREA_SIZE' )
- )->label( '03'
- )->button(
- text = 'Popup with textarea input (stretched)'
- press = client->_event( 'POPUP_TO_TEXTAREA_STRETCH' ) ).
-
- grid->simple_form( 'Inputs' )->content( 'form'
- )->label( '01'
- )->button(
- text = 'Popup Get Input Values'
- press = client->_event( 'POPUP_TO_INPUT' ) ).
-
- grid->simple_form( 'Tables' )->content( 'form'
- )->label( '02'
- )->button(
- text = 'Popup to select'
- press = client->_event( 'POPUP_TABLE' ) ).
-
- mv_main_xml = page->get_root( )->xml_get( ).
-
- ENDMETHOD.
-
-
- METHOD view_popup_decide.
-
- DATA(popup) = Z2UI5_CL_XML_VIEW=>factory_popup(
- )->dialog(
- title = 'Title'
- icon = 'sap-icon://question-mark'
- )->content(
- )->vbox( 'sapUiMediumMargin'
- )->text( 'This is a question, you have to make a decision now, cancel or confirm?'
- )->get_parent( )->get_parent(
- )->footer( )->overflow_toolbar(
- )->toolbar_spacer(
- )->button(
- text = 'Cancel'
- press = client->_event( 'BUTTON_CANCEL' )
- )->button(
- text = 'Confirm'
- press = client->_event( 'BUTTON_CONFIRM' )
- type = 'Emphasized' ).
-
- mv_popup_xml = popup->get_root( )->xml_get( ).
-
- ENDMETHOD.
-
-
- METHOD view_popup_input.
-
- DATA(popup) = Z2UI5_CL_XML_VIEW=>factory_popup(
- )->dialog(
- contentheight = '500px'
- contentwidth = '500px'
- title = 'Title'
- )->content(
- )->simple_form(
- )->label( 'Input1'
- )->input( client->_bind( ms_popup_input-value1 )
- )->label( 'Input2'
- )->input( client->_bind( ms_popup_input-value2 )
- )->label( 'Checkbox'
- )->checkbox(
- selected = client->_bind( ms_popup_input-check_is_active )
- text = 'this is a checkbox'
- enabled = abap_true
- )->get_parent( )->get_parent(
- )->footer( )->overflow_toolbar(
- )->toolbar_spacer(
- )->button(
- text = 'Cancel'
- press = client->_event( 'BUTTON_TEXTAREA_CANCEL' )
- )->button(
- text = 'Confirm'
- press = client->_event( 'BUTTON_TEXTAREA_CONFIRM' )
- type = 'Emphasized' ).
-
- mv_popup_xml = popup->get_root( )->xml_get( ).
-
- ENDMETHOD.
-
-
- METHOD view_popup_table.
-
- DATA(popup) = Z2UI5_CL_XML_VIEW=>factory_popup(
- )->dialog( 'abap2UI5 - Popup to select entry'
- )->table(
- mode = 'SingleSelectLeft'
- items = client->_bind( t_tab )
- )->columns(
- )->column( )->text( 'Title' )->get_parent(
- )->column( )->text( 'Color' )->get_parent(
- )->column( )->text( 'Info' )->get_parent(
- )->column( )->text( 'Description' )->get_parent(
- )->get_parent(
- )->items( )->column_list_item( selected = '{SELKZ}'
- )->cells(
- )->text( '{TITLE}'
- )->text( '{VALUE}'
- )->text( '{INFO}'
- )->text( '{DESCR}'
- )->get_parent( )->get_parent( )->get_parent( )->get_parent(
- )->footer( )->overflow_toolbar(
- )->toolbar_spacer(
- )->button(
- text = 'continue'
- press = client->_event( 'POPUP_TABLE_CONTINUE' )
- type = 'Emphasized' ).
-
- mv_popup_xml = popup->get_root( )->xml_get( ).
-
- ENDMETHOD.
-
-
- METHOD view_popup_textarea.
-
- DATA(popup) = Z2UI5_CL_XML_VIEW=>factory_popup(
- )->dialog(
- stretch = mv_stretch_active
- title = 'Title'
- icon = 'sap-icon://edit'
- )->content(
- )->text_area(
- height = '100%'
- width = '100%'
- value = client->_bind( mv_textarea )
- )->get_parent(
- )->footer( )->overflow_toolbar(
- )->toolbar_spacer(
- )->button(
- text = 'Cancel'
- press = client->_event( 'BUTTON_TEXTAREA_CANCEL' )
- )->button(
- text = 'Confirm'
- press = client->_event( 'BUTTON_TEXTAREA_CONFIRM' )
- type = 'Emphasized' ).
-
- mv_popup_xml = popup->get_root( )->xml_get( ).
-
- ENDMETHOD.
-
-
- METHOD view_popup_textarea_size.
-
- DATA(popup) = Z2UI5_CL_XML_VIEW=>factory_popup(
- )->dialog(
- contentheight = '100px'
- contentwidth = '1200px'
- title = 'Title'
- icon = 'sap-icon://edit'
- )->content(
- )->text_area(
- height = '95%'
- width = '99%'
- value = client->_bind( mv_textarea )
- )->get_parent(
- )->footer( )->overflow_toolbar(
- )->toolbar_spacer(
- )->button(
- text = 'Cancel'
- press = client->_event( 'BUTTON_TEXTAREA_CANCEL' )
- )->button(
- text = 'Confirm'
- press = client->_event( 'BUTTON_TEXTAREA_CONFIRM' )
- type = 'Emphasized' ).
-
- mv_popup_xml = popup->get_root( )->xml_get( ).
-
- ENDMETHOD.
-
-
- METHOD z2ui5_if_app~main.
-
- IF check_initialized = abap_false.
- check_initialized = abap_true.
-
- t_bapiret = VALUE #(
- ( message = 'An empty Report field causes an empty XML Message to be sent' type = 'E' id = 'MSG1' number = '001' )
- ( message = 'Check was executed for wrong Scenario' type = 'E' id = 'MSG1' number = '002' )
- ( message = 'Request was handled without errors' type = 'S' id = 'MSG1' number = '003' )
- ( message = 'product activated' type = 'S' id = 'MSG4' number = '375' )
- ( message = 'check the input values' type = 'W' id = 'MSG2' number = '375' )
- ( message = 'product already in use' type = 'I' id = 'MSG2' number = '375' )
- ).
-
- ENDIF.
-
- mv_popup_name = ''.
-
-
- CASE client->get( )-event.
-
- WHEN 'POPUP_TO_DECIDE'.
- mv_popup_name = 'POPUP_TO_DECIDE'.
-
- WHEN 'BUTTON_CONFIRM'.
- client->popup_message_toast( 'confirm pressed' ).
-
- WHEN 'BUTTON_CANCEL'.
- client->popup_message_toast( 'cancel pressed' ).
-
- WHEN 'POPUP_TO_TEXTAREA'.
- mv_popup_name = 'POPUP_TO_TEXTAREA'.
- mv_stretch_active = abap_false.
-
- WHEN 'POPUP_TO_TEXTAREA_STRETCH'.
- mv_popup_name = 'POPUP_TO_TEXTAREA'.
- mv_stretch_active = abap_true.
-
- WHEN 'POPUP_TO_TEXTAREA_SIZE'.
- mv_popup_name = 'POPUP_TO_TEXTAREA_SIZE'.
-
- WHEN 'BUTTON_TEXTAREA_CANCEL'.
- client->popup_message_toast( 'textarea deleted' ).
- CLEAR mv_textarea.
-
- WHEN 'POPUP_TO_INPUT'.
- ms_popup_input-value1 = 'value1'.
- mv_popup_name = 'POPUP_TO_INPUT'.
-
- WHEN 'POPUP_BAL'.
- mv_popup_name = 'POPUP_BAL'.
-
- WHEN 'POPUP_TABLE'.
- CLEAR t_tab.
- DO 10 TIMES.
- DATA(ls_row) = VALUE ty_row( title = 'entry_' && sy-index value = 'red' info = 'completed' descr = 'this is a description' ).
- INSERT ls_row INTO TABLE t_tab.
- ENDDO.
- mv_popup_name = 'POPUP_TABLE'.
-
- WHEN 'POPUP_TABLE_CONTINUE'.
- DELETE t_tab WHERE selkz = abap_false.
- client->popup_message_toast( `Entry selected: ` && VALUE #( t_tab[ 1 ]-title DEFAULT `no entry selected` ) ).
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
-
- ENDCASE.
-
- view_main( client ).
-
- CASE mv_popup_name.
-
- WHEN 'POPUP_TO_DECIDE'.
- view_popup_decide( client ).
- WHEN 'POPUP_TO_TEXTAREA'.
- view_popup_textarea( client ).
- WHEN 'POPUP_TO_TEXTAREA_SIZE'.
- view_popup_textarea_size( client ).
- WHEN 'POPUP_TO_INPUT'.
- view_popup_input( client ).
- WHEN 'POPUP_TABLE'.
- view_popup_table( client ).
-
- ENDCASE.
-
- client->set_next( VALUE #( xml_main = mv_main_xml xml_popup = mv_popup_xml ) ).
- CLEAR: mv_main_xml, mv_popup_xml.
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_21.clas.xml b/src/00/z2ui5_cl_app_demo_21.clas.xml
deleted file mode 100644
index 674ed11f..00000000
--- a/src/00/z2ui5_cl_app_demo_21.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_21
- E
- basic - popups
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_22.clas.abap b/src/00/z2ui5_cl_app_demo_22.clas.abap
deleted file mode 100644
index b92f286b..00000000
--- a/src/00/z2ui5_cl_app_demo_22.clas.abap
+++ /dev/null
@@ -1,170 +0,0 @@
-CLASS z2ui5_cl_app_demo_22 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- TYPES:
- BEGIN OF ty_row,
- title TYPE string,
- value TYPE string,
- descr TYPE string,
- info TYPE string,
- END OF ty_row.
- DATA t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
-
- DATA mv_value1 TYPE string.
- DATA mv_value2 TYPE string.
- DATA mv_value3 TYPE string.
-
- DATA:
- BEGIN OF app,
- client TYPE REF TO z2ui5_if_client,
- check_initialized TYPE abap_bool,
- view_main TYPE string,
- view_popup TYPE string,
- s_get TYPE z2ui5_if_client=>ty_s_get,
- s_next TYPE z2ui5_if_client=>ty_s_next,
- END OF app.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_22 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- app-client = client.
- app-s_get = client->get( ).
-
- IF app-check_initialized = abap_false.
- app-check_initialized = abap_true.
-
- mv_value1 = 'value1'.
- mv_value2 = 'this is a long text this is a long text this is a long text tis is a long text.'.
- DO 4 TIMES.
- mv_value2 = mv_value2 && mv_value2.
- ENDDO.
- mv_value3 = mv_value2.
-
- DATA(ls_row) = VALUE ty_row( title = 'Hans' value = 'red' info = 'completed' descr = 'this is a description' ).
- DO 100 TIMES.
- INSERT ls_row INTO TABLE t_tab.
- ENDDO.
-
- ENDIF.
-
- app-s_next-t_scroll = VALUE #(
- ( name = 'id_page' )
- ( name = 'id_text3' )
- ).
-
- CASE client->get( )-event.
-
- WHEN 'BUTTON_SCROLL_TOP'.
- "nothing to do, default mode
-
- WHEN 'BUTTON_SCROLL_BOTTOM'.
- app-s_next-t_scroll = VALUE #( ( name = 'id_page' value = '99999' ) ).
-
- WHEN 'BUTTON_SCROLL_UP'.
- DATA(lv_pos) = CONV i( app-s_get-t_scroll_pos[ name = `id_page` ]-value ) - 500.
- app-s_next-t_scroll = VALUE #( ( name = 'id_page' value = lv_pos ) ).
-
- WHEN 'BUTTON_SCROLL_DOWN'.
- lv_pos = CONV i( value #( app-s_get-t_scroll_pos[ name = `id_page` ]-value optional ) ) + 500.
- app-s_next-t_scroll = VALUE #( ( name = 'id_page' value = lv_pos ) ).
-
- WHEN 'BUTTON_SCROLL_HOLD'.
- app-s_next-t_scroll = app-s_get-t_scroll_pos.
-
- WHEN 'BUTTON_FOCUS_FIRST'.
- app-s_next-s_cursor = VALUE #( id = 'id_text1' cursorpos = '3' selectionstart = '3' selectionend = '3' ).
-
- WHEN 'BUTTON_FOCUS_SECOND'.
- app-s_next-s_cursor = VALUE #( id = 'id_text2' cursorpos = '5' selectionstart = '5' selectionend = '10' ).
-
- WHEN 'BUTTON_FOCUS_END'.
- app-s_next-s_cursor = VALUE #( id = 'id_text3' cursorpos = '99999' selectionstart = '99999' selectionend = '999999' ).
-
- app-s_next-t_scroll = VALUE #(
- ( name = 'id_page' value = '99999' )
- ( name = 'id_text3' value = '99999' )
- ).
-
-
-
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
-
- ENDCASE.
-
-
- DATA(view) = z2ui5_cl_xml_view=>factory( )->shell( ).
- DATA(page) = view->page(
- id = 'id_page'
- title = 'abap2ui5 - Scrolling and Cursor (use the browser Chrome to avoid incompatibilities)'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- ).
-
- page->header_content( )->link( text = 'Source_Code' target = '_blank' href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) ) ).
-
-
- page->input(
- id = 'id_text1'
- value = client->_bind( mv_value1 )
- ).
- page->text_area(
- width = '100%'
- height = '10%'
- id = 'id_text2'
- value = client->_bind( mv_value2 ) ).
-
- page->button( text = 'cursor input pos 3' press = client->_event( 'BUTTON_FOCUS_FIRST' ) ).
- page->button( text = 'cursor text area pos 5 to 10' press = client->_event( 'BUTTON_FOCUS_SECOND' ) ).
- page->button( text = 'scroll end + focus end' press = client->_event( 'BUTTON_FOCUS_END' ) ).
-
- DATA(tab) = page->table( sticky = 'ColumnHeaders,HeaderToolbar' headertext = 'Table with some entries' items = client->_bind_one( t_tab ) ).
-
- tab->columns(
- )->column( )->text( 'Title' )->get_parent(
- )->column( )->text( 'Color' )->get_parent(
- )->column( )->text( 'Info' )->get_parent(
- )->column( )->text( 'Description' ).
-
- tab->items( )->column_list_item( )->cells(
- )->text( '{TITLE}'
- )->text( '{VALUE}'
- )->text( '{INFO}'
- )->text( '{DESCR}' ).
-
- page->text_area(
- id = 'id_text3'
- width = '100%'
- height = '10%'
- value = client->_bind( mv_value3 ) ).
-
- page->footer( )->overflow_toolbar(
- )->button( text = 'Scroll Top' press = client->_event( 'BUTTON_SCROLL_TOP' )
- )->button( text = 'Scroll 500 up' press = client->_event( 'BUTTON_SCROLL_UP' )
- )->button( text = 'Scroll 500 down' press = client->_event( 'BUTTON_SCROLL_DOWN' )
- )->button( text = 'Scroll Bottom' press = client->_event( 'BUTTON_SCROLL_BOTTOM' )
- )->toolbar_spacer(
- )->button( text = 'Server Event and hold position' press = client->_event( 'BUTTON_SCROLL_HOLD' )
- ).
-
- app-s_next-xml_main = page->get_root( )->xml_get( ).
- client->set_next( app-s_next ).
-
- app-view_popup = ``.
- CLEAR app-s_next.
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_22.clas.xml b/src/00/z2ui5_cl_app_demo_22.clas.xml
deleted file mode 100644
index e0b8f2f4..00000000
--- a/src/00/z2ui5_cl_app_demo_22.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_22
- E
- basic - scrolling and focus
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_23.clas.abap b/src/00/z2ui5_cl_app_demo_23.clas.abap
deleted file mode 100644
index a2fa4f53..00000000
--- a/src/00/z2ui5_cl_app_demo_23.clas.abap
+++ /dev/null
@@ -1,199 +0,0 @@
-CLASS z2ui5_cl_app_demo_23 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA product TYPE string.
- DATA quantity TYPE string.
-
- DATA client TYPE REF TO z2ui5_if_client.
- DATA:
- BEGIN OF app,
- check_initialized TYPE abap_bool,
- view_main TYPE string,
- view_popup TYPE string,
- s_get TYPE z2ui5_if_client=>ty_s_get,
- s_next TYPE z2ui5_if_client=>ty_s_next,
- END OF app.
-
- METHODS z2ui5_on_init.
- METHODS z2ui5_on_event.
- METHODS z2ui5_on_render_main.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_23 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- me->client = client.
- app-s_get = client->get( ).
-
- IF app-check_initialized = abap_false.
- app-check_initialized = abap_true.
- z2ui5_on_init( ).
- ENDIF.
-
- IF app-s_get-event IS NOT INITIAL.
- z2ui5_on_event( ).
- ENDIF.
-
- z2ui5_on_render_main( ).
-
- client->set_next( app-s_next ).
- CLEAR app-s_get.
- CLEAR app-s_next.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_event.
-
- CASE app-s_get-event.
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( app-s_get-id_prev_app_stack ) ).
-
- WHEN OTHERS.
- app-view_main = app-s_get-event.
-
- ENDCASE.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_init.
-
- product = 'tomato'.
- quantity = '500'.
- app-view_main = 'NORMAL'.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render_main.
-
- DATA(lo_view) = z2ui5_cl_xml_view=>factory( ).
-
- CASE app-view_main.
-
- WHEN 'XML'.
-
- DATA(lv_xml) = ` `.
-
- app-s_next-xml_main = z2ui5_cl_xml_view=>hlp_replace_controller_name( lv_xml ).
-
- WHEN 'NORMAL'.
-
- lo_view->shell(
- )->page(
- title = 'abap2UI5 - NORMAL NORMAL NORMAL'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link(
- text = 'Source_Code'
- href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
- target = '_blank'
- )->get_parent(
- )->simple_form( 'Form Title'
- )->content( 'form'
- )->title( 'Input'
- )->label( 'quantity'
- )->input( client->_bind( quantity )
- )->button(
- text = 'NORMAL'
- press = client->_event( 'NORMAL' )
- )->button(
- text = 'GENERIC'
- press = client->_event( 'GENERIC' )
- )->button(
- text = 'XML'
- press = client->_event( 'XML' ) ).
-
- app-s_next-xml_main = lo_view->get_root( )->xml_get( ).
-
- WHEN 'GENERIC'.
-
- lo_view->_generic( 'Shell' )->_generic(
- name = `Page`
- t_prop = VALUE #(
- ( n = `title` v = 'abap2UI5 - GENERIC GENERIC GENERIC' )
- ( n = `showNavButton` v = `true` )
- ( n = `navButtonPress` v = client->_event( 'BACK' ) ) )
- )->_generic(
- name = `SimpleForm`
- ns = `form`
- t_prop = VALUE #(
- ( n = `title` v = 'title' )
- ) )->_generic(
- name = `content`
- ns = `form`
- )->_generic(
- name = `Label`
- t_prop = VALUE #(
- ( n = `text` v = 'quantity' )
- ) )->get_parent( )->_generic(
- name = `Input`
- t_prop = VALUE #(
- ( n = `value` v = client->_bind( quantity ) )
- ) )->get_parent(
- )->_generic(
- name = `Button`
- t_prop = VALUE #(
- ( n = `text` v = `NORMAL` )
- ( n = `press` v = client->_event( 'NORMAL' ) ) )
- )->get_parent(
- )->_generic(
- name = `Button`
- t_prop = VALUE #(
- ( n = `text` v = `GENERIC` )
- ( n = `press` v = client->_event( 'GENERIC' ) ) )
- )->get_parent(
- )->_generic(
- name = `Button`
- t_prop = VALUE #(
- ( n = `text` v = `XML` )
- ( n = `press` v = client->_event( 'XML' ) ) ) ).
-
- app-s_next-xml_main = lo_view->get_root( )->xml_get( ).
-
- ENDCASE.
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_23.clas.xml b/src/00/z2ui5_cl_app_demo_23.clas.xml
deleted file mode 100644
index 18316adc..00000000
--- a/src/00/z2ui5_cl_app_demo_23.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_23
- E
- extension - normal gen xml
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_24.clas.abap b/src/00/z2ui5_cl_app_demo_24.clas.abap
deleted file mode 100644
index 57e9bcc8..00000000
--- a/src/00/z2ui5_cl_app_demo_24.clas.abap
+++ /dev/null
@@ -1,87 +0,0 @@
-CLASS z2ui5_cl_app_demo_24 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA mv_input TYPE string.
- DATA mv_input2 TYPE string.
- DATA mv_backend_event TYPE string.
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_24 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- CASE client->get( )-event.
-
- WHEN 'CALL_NEW_APP'.
- client->nav_app_call( NEW z2ui5_cl_app_demo_25( ) ).
-
- WHEN 'CALL_NEW_APP_VIEW'.
- DATA(lo_app) = NEW z2ui5_cl_app_demo_25( ).
- lo_app->mv_show_view = 'SECOND'.
- client->nav_app_call( lo_app ).
-
- WHEN 'CALL_NEW_APP_READ'.
- DATA(lo_app_next) = NEW z2ui5_cl_app_demo_25( ).
- lo_app_next->mv_input_previous_set = mv_input.
- client->nav_app_call( lo_app_next ).
-
- WHEN 'CALL_NEW_APP_EVENT'.
- lo_app_next = NEW z2ui5_cl_app_demo_25( ).
- lo_app_next->mv_event_backend = 'NEW_APP_EVENT'.
- client->nav_app_call( lo_app_next ).
-
- WHEN 'BACK'.
- data(lo_prev_stack_app) = client->get_app( client->get( )-id_prev_app_stack ).
- client->nav_app_leave( lo_prev_stack_app ).
-
- WHEN OTHERS.
- CASE mv_backend_event.
-
- WHEN 'CALL_PREVIOUS_APP_INPUT_RETURN'.
- DATA(lo_called_app) = CAST z2ui5_cl_app_demo_25( client->get_app( client->get( )-id_prev_app ) ).
- client->popup_message_box( `Input made in the previous app:` && lo_called_app->mv_input ).
-
- ENDCASE.
-
- ENDCASE.
-
-
- DATA(view) = Z2UI5_CL_XML_VIEW=>factory( )->shell(
- )->page( title = 'abap2UI5 - flow logic - APP 01' navbuttonpress = client->_event( 'BACK' ) shownavbutton = abap_true
- )->header_content(
- )->link( text = 'Demo' target = '_blank' href = `https://twitter.com/OblomovDev/status/1640743794206228480`
- )->link( text = 'Source_Code' target = '_blank' href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent(
-
- )->grid( 'L6 M12 S12' )->content( 'layout'
-
- )->simple_form( 'Controller' )->content( 'form'
-
- )->label( 'Demo'
- )->button( text = 'call new app (first View)' press = client->_event( 'CALL_NEW_APP' )
- )->label( 'Demo'
- )->button( text = 'call new app (second View)' press = client->_event( 'CALL_NEW_APP_VIEW' )
- )->label( 'Demo'
- )->button( text = 'call new app (set Event)' press = client->_event( 'CALL_NEW_APP_EVENT' )
- )->label( 'Demo'
- )->input( client->_bind( mv_input )
- )->button( text = 'call new app (set data)' press = client->_event( 'CALL_NEW_APP_READ' )
- )->label( 'some data, you can read it in the next app'
- )->input( client->_bind( mv_input2 )
- ).
-
- client->set_next( VALUE #(
- xml_main = view->get_root( )->xml_get( )
- " event = mv_event
- ) ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_24.clas.xml b/src/00/z2ui5_cl_app_demo_24.clas.xml
deleted file mode 100644
index 5ce00f01..00000000
--- a/src/00/z2ui5_cl_app_demo_24.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_24
- E
- basic - flow logic
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_25.clas.abap b/src/00/z2ui5_cl_app_demo_25.clas.abap
deleted file mode 100644
index 99d3f12c..00000000
--- a/src/00/z2ui5_cl_app_demo_25.clas.abap
+++ /dev/null
@@ -1,117 +0,0 @@
-CLASS z2ui5_cl_app_demo_25 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA mv_input TYPE string.
- DATA mv_input_previous TYPE string.
- DATA mv_input_previous_set TYPE string.
- DATA mv_show_view TYPE string.
-
- DATA mv_event_backend TYPE string.
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_25 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- CASE client->get( )-event.
-
- WHEN 'BUTTON_ROUNDTRIP'.
- client->popup_message_box( 'server-client roundtrip, method on_event of the abap controller was called' ).
-
- WHEN 'BUTTON_RESTART'.
- client->nav_app_call( NEW z2ui5_cl_app_demo_25( ) ).
-
- WHEN 'BUTTON_CHANGE_APP'.
- client->nav_app_call( NEW z2ui5_cl_app_demo_01( ) ).
-
- WHEN 'BUTTON_READ_PREVIOUS'.
- DATA(lo_previous_app) = CAST z2ui5_cl_app_demo_24( client->get_app( client->get( )-id_prev_app ) ).
- mv_input_previous = lo_previous_app->mv_input2.
- client->popup_message_toast( `data of previous app read` ).
-
- WHEN 'SHOW_VIEW_MAIN'.
- mv_show_view = 'MAIN'.
-
- WHEN 'BACK_WITH_EVENT'.
- lo_previous_app = CAST z2ui5_cl_app_demo_24( client->get_app( client->get( )-id_prev_app_stack ) ).
- lo_previous_app->mv_backend_event = 'CALL_PREVIOUS_APP_INPUT_RETURN'.
- client->nav_app_leave( lo_previous_app ).
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
-
- WHEN OTHERS.
-
- CASE mv_event_backend.
-
- WHEN 'NEW_APP_EVENT'.
- client->popup_message_box( 'new app called and event NEW_APP_EVENT raised' ).
-
- ENDCASE.
-
- ENDCASE.
-
-
- CASE mv_show_view.
-
- WHEN 'MAIN' OR ''.
-
- DATA(page) = Z2UI5_CL_XML_VIEW=>factory( )->shell(
- )->page(
- title = 'abap2UI5 - flow logic - APP 02'
- navbuttonpress = client->_event( 'BACK' ) shownavbutton = abap_true
- )->header_content(
- )->link( text = 'Demo' target = '_blank' href = `https://twitter.com/OblomovDev/status/1640743794206228480`
- )->link( text = 'Source_Code' target = '_blank' href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent( ).
-
- page->grid( 'L6 M12 S12' )->content( 'layout'
-
- )->simple_form( 'View: FIRST' )->content( 'form'
-
- )->label( 'Input set by previous app'
- )->input( mv_input_previous_set
-
- )->label( 'Data of previous app'
- )->input( mv_input_previous
- )->button( text = 'read' press = client->_event( 'BUTTON_READ_PREVIOUS' )
-
- )->label( 'Call previous app and show data of this app'
- )->input( client->_bind( mv_input )
- )->button( text = 'back' press = client->_event( 'BACK_WITH_EVENT' ) ).
-
- WHEN 'SECOND'.
-
- page = Z2UI5_CL_XML_VIEW=>factory( )->shell(
- )->page(
- title = 'abap2UI5 - flow logic - APP 02'
- navbuttonpress = client->_event( 'BACK' ) shownavbutton = abap_true
- )->header_content(
- )->link( text = 'Demo' href = `https://twitter.com/OblomovDev/status/1640743794206228480`
- )->link( text = 'Source_Code' href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent( ).
-
- page->grid( 'L6 M12 S12' )->content( 'layout'
- )->simple_form( 'View: SECOND' )->content( 'form'
- )->label( 'Demo'
- )->button( text = 'leave to previous app' press = client->_event( 'BACK' )
- )->label( 'Demo'
- )->button( text = 'show view main' press = client->_event( 'SHOW_VIEW_MAIN' ) ).
-
- ENDCASE.
-
- client->set_next( VALUE #(
- xml_main = page->get_root( )->xml_get( )
- " event = mv_next_event
- ) ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_25.clas.xml b/src/00/z2ui5_cl_app_demo_25.clas.xml
deleted file mode 100644
index 95cc2e34..00000000
--- a/src/00/z2ui5_cl_app_demo_25.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_25
- E
- basic - flow logic (called)
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_26.clas.abap b/src/00/z2ui5_cl_app_demo_26.clas.abap
deleted file mode 100644
index 0ce48dcc..00000000
--- a/src/00/z2ui5_cl_app_demo_26.clas.abap
+++ /dev/null
@@ -1,186 +0,0 @@
-CLASS z2ui5_cl_app_demo_26 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA product TYPE string.
- DATA quantity TYPE string.
- data mv_placement type string.
-
- PROTECTED SECTION.
-
- data client TYPE REF TO z2ui5_if_client.
- DATA:
- BEGIN OF app,
- check_initialized TYPE abap_bool,
- view_main TYPE string,
- view_popup TYPE string,
- s_get TYPE z2ui5_if_client=>ty_s_get,
- s_next TYPE z2ui5_if_client=>ty_s_next,
- END OF app.
-
- METHODS z2ui5_on_init.
- METHODS z2ui5_on_event.
- METHODS z2ui5_on_render_main.
- METHODS z2ui5_on_render_popup.
-
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_26 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- me->client = client.
- app-s_get = client->get( ).
- app-view_popup = ``.
-
- IF app-check_initialized = abap_false.
- app-check_initialized = abap_true.
- z2ui5_on_init( ).
- ENDIF.
-
- IF app-s_get-event IS NOT INITIAL.
- z2ui5_on_event( ).
- ENDIF.
-
- z2ui5_on_render_main( ).
- z2ui5_on_render_popup( ).
-
- client->set_next( app-s_next ).
- CLEAR app-s_get.
- CLEAR app-s_next.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_event.
-
- CASE app-s_get-event.
-
- WHEN 'POPOVER'.
- app-view_popup = 'POPOVER'.
- app-s_next-popover_open_by_id = 'TEST'.
-
- WHEN 'BUTTON_CONFIRM'.
- client->popup_message_toast( |confirm| ).
- app-view_popup = ''.
-
- WHEN 'BUTTON_CANCEL'.
- client->popup_message_toast( |cancel| ).
- app-view_popup = ''.
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( app-s_get-id_prev_app_stack ) ).
-
- ENDCASE.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_init.
-
- mv_placement = 'Left'.
- product = 'tomato'.
- quantity = '500'.
- app-view_main = 'VIEW_MAIN'.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render_main.
-
- CASE app-view_main.
-
- WHEN 'VIEW_MAIN'.
-
- app-s_next-xml_main = Z2UI5_CL_XML_VIEW=>factory( )->shell(
- )->page(
- title = 'abap2UI5 - Popover Examples'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link( text = 'Demo' target = '_blank' href = `https://twitter.com/OblomovDev/status/1643899059839672321`
- )->link(
- text = 'Source_Code' target = '_blank'
- href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent(
- )->simple_form( 'Popover'
- )->content( 'form'
- )->title( 'Input'
- )->label( 'Link'
- )->link( text = 'Documentation UI5 Popover Control' href = 'https://openui5.hana.ondemand.com/entity/sap.m.Popover'
- )->label( 'placement'
- )->segmented_button( client->_bind( mv_placement )
- )->items(
- )->segmented_button_item(
- key = 'Left'
- icon = 'sap-icon://add-favorite'
- text = 'Left'
- )->segmented_button_item(
- key = 'Top'
- icon = 'sap-icon://accept'
- text = 'Top'
- )->segmented_button_item(
- key = 'Bottom'
- icon = 'sap-icon://accept'
- text = 'Bottom'
- )->segmented_button_item(
- key = 'Right'
- icon = 'sap-icon://attachment'
- text = 'Right'
- )->get_parent( )->get_parent(
- )->label( 'popover'
- )->button(
- text = 'show'
- press = client->_event( 'POPOVER' )
- id = 'TEST'
- )->button(
- text = 'cancel'
- press = client->_event( 'POPOVER' )
- )->button(
- text = 'post'
- press = client->_event( 'POPOVER' )
- )->get_root( )->xml_get( ).
-
-
- WHEN 'VIEW_SECOND'.
-
-
-
- ENDCASE.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render_popup.
-
- CASE app-view_popup.
-
- WHEN 'POPOVER'.
-
- app-s_next-xml_popup = Z2UI5_CL_XML_VIEW=>factory_popup( )->popover(
- title = 'Popover Title'
- placement = mv_placement
- )->footer( )->overflow_toolbar(
- )->toolbar_spacer(
- )->button(
- text = 'Cancel'
- press = client->_event( 'BUTTON_CANCEL' )
- )->button(
- text = 'Confirm'
- press = client->_event( 'BUTTON_CONFIRM' )
- type = 'Emphasized'
- )->get_parent( )->get_parent(
- )->text( 'make an input here:'
- )->input( value = 'abcd'
- )->get_root( )->xml_get( ).
-
- ENDCASE.
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_26.clas.xml b/src/00/z2ui5_cl_app_demo_26.clas.xml
deleted file mode 100644
index ba12742d..00000000
--- a/src/00/z2ui5_cl_app_demo_26.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_26
- E
- popups - popover
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_27.clas.abap b/src/00/z2ui5_cl_app_demo_27.clas.abap
deleted file mode 100644
index 382fdbf8..00000000
--- a/src/00/z2ui5_cl_app_demo_27.clas.abap
+++ /dev/null
@@ -1,151 +0,0 @@
-CLASS z2ui5_cl_app_demo_27 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA product TYPE string.
- DATA quantity TYPE i.
- DATA input2 TYPE string.
- DATA input31 TYPE i.
- DATA input32 TYPE i.
- DATA input41 TYPE string.
- DATA input51 TYPE string.
- DATA input52 TYPE string.
-
- PROTECTED SECTION.
-
- data client TYPE REF TO z2ui5_if_client.
- DATA:
- BEGIN OF app,
- check_initialized TYPE abap_bool,
- view_main TYPE string,
- view_popup TYPE string,
- s_get TYPE z2ui5_if_client=>ty_s_get,
- s_next TYPE z2ui5_if_client=>ty_s_next,
- END OF app.
-
- METHODS z2ui5_on_init.
- METHODS z2ui5_on_event.
- METHODS z2ui5_on_render.
-
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_27 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- me->client = client.
- app-s_get = client->get( ).
- app-view_popup = ``.
-
- IF app-check_initialized = abap_false.
- app-check_initialized = abap_true.
- z2ui5_on_init( ).
- ENDIF.
-
- IF app-s_get-event IS NOT INITIAL.
- z2ui5_on_event( ).
- ENDIF.
-
- z2ui5_on_render( ).
-
- client->set_next( app-s_next ).
- CLEAR app-s_get.
- CLEAR app-s_next.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_event.
-
- CASE app-s_get-event.
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( app-s_get-id_prev_app_stack ) ).
-
- ENDCASE.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_init.
-
- product = 'tomato'.
- quantity = '500'.
- app-view_main = 'VIEW_MAIN'.
- input41 = 'faasdfdfsaVIp'.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render.
-
- app-s_next-xml_main = Z2UI5_CL_XML_VIEW=>factory( )->shell(
- )->page(
- title = 'abap2UI5 - Binding Syntax'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link( text = `Demo` target = `_blank` href = `https://twitter.com/OblomovDev/status/1647889242545111043`
- )->link(
- text = 'Source_Code' target = '_blank'
- href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent(
- )->simple_form( title = 'Binding Syntax' editable = abap_true
- )->content( 'form'
- )->title( 'Expression Binding'
-
- )->label( 'Documentation'
- )->link(
- text = 'Expression Binding'
- href = 'https://sapui5.hana.ondemand.com/sdk/#/topic/daf6852a04b44d118963968a1239d2c0'
- )->label( 'input in uppercase'
- )->input( client->_bind( input2 )
- )->input(
- value = '{= $' && client->_bind( input2 ) && '.toUpperCase() }'
- enabled = abap_false
-
-
- )->label( 'max value of the first two inputs'
- )->input( '{ type : "sap.ui.model.type.Integer",' &&
- ' path:"' && client->_bind( val = input31 path = abap_true ) && '" }'
- )->input( '{ type : "sap.ui.model.type.Integer",' && |\n| &&
- ' path:"' && client->_bind( val = input32 path = abap_true ) && '" }'
- )->input(
- value = '{= Math.max($' && client->_bind( input31 ) &&', $' && client->_bind( input32 ) && ') }'
- enabled = abap_false
-
-
- )->label( 'only enabled when the quantity equals 500'
- )->input( '{ type : "sap.ui.model.type.Integer",' &&
- ' path:"' && client->_bind( val = quantity path = abap_true ) && `" }`
- )->input(
- value = product
- enabled = '{= 500===$' && client->_bind( quantity ) && ' }'
-
- )->label( 'RegExp Set to enabled if the input contains VIP, ignoring the case.'
- )->input( client->_bind( val = input41 )
- )->button(
- text = 'VIP'
- enabled = '{= RegExp(''vip'', ''i'').test($' && client->_bind( input41 ) && ') }'
-
-
- )->label( 'concatenate both inputs'
- )->input( client->_bind( val = input51 )
- )->input( client->_bind( val = input52 )
- )->input(
- value = '{ parts: [' && |\n| &&
- ' "' && client->_bind( val = input51 path = abap_true ) && '",' && |\n| &&
- ' "' && client->_bind( val = input52 path = abap_true ) && '"' && |\n| &&
- ' ] }'
- enabled = abap_false
-
- )->get_root( )->xml_get( ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_27.clas.xml b/src/00/z2ui5_cl_app_demo_27.clas.xml
deleted file mode 100644
index 1fa396b7..00000000
--- a/src/00/z2ui5_cl_app_demo_27.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_27
- E
- more - side effects
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_28.clas.abap b/src/00/z2ui5_cl_app_demo_28.clas.abap
deleted file mode 100644
index 46d2da70..00000000
--- a/src/00/z2ui5_cl_app_demo_28.clas.abap
+++ /dev/null
@@ -1,126 +0,0 @@
-CLASS z2ui5_cl_app_demo_28 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- TYPES:
- BEGIN OF ty_row,
- title TYPE string,
- value TYPE string,
- descr TYPE string,
- icon TYPE string,
- info TYPE string,
- checkbox TYPE abap_bool,
- END OF ty_row.
- DATA t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
- DATA mv_Counter TYPE i.
-
- PROTECTED SECTION.
-
- DATA client TYPE REF TO z2ui5_if_client.
- DATA:
- BEGIN OF app,
- check_initialized TYPE abap_bool,
- view_main TYPE string,
- view_popup TYPE string,
- get TYPE z2ui5_if_client=>ty_s_get,
- next TYPE z2ui5_if_client=>ty_s_next,
- END OF app.
-
- METHODS z2ui5_on_init.
- METHODS z2ui5_on_event.
- METHODS z2ui5_on_render.
-
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_28 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- me->client = client.
- app-get = client->get( ).
- app-view_popup = ``.
-
- IF app-check_initialized = abap_false.
- app-check_initialized = abap_true.
- z2ui5_on_init( ).
- ENDIF.
-
- IF app-get-event IS NOT INITIAL.
- z2ui5_on_event( ).
- ENDIF.
-
- z2ui5_on_render( ).
-
- client->set_next( app-next ).
- CLEAR app-get.
- CLEAR app-next.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_event.
-
- CASE app-get-event.
-
- WHEN 'TIMER_FINISHED'.
- mv_counter = mv_counter + 1.
- INSERT VALUE #( title = 'entry' && mv_counter info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- INTO TABLE t_tab.
-
- app-next-s_timer-interval_ms = '2000'.
- app-next-s_timer-event_finished = 'TIMER_FINISHED'.
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( app-get-id_prev_app_stack ) ).
-
- ENDCASE.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_init.
-
- mv_counter = 1.
-
- t_tab = VALUE #(
- ( title = 'entry' && mv_counter info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' ) ).
-
- app-next-s_timer-interval_ms = '2000'.
- app-next-s_timer-event_finished = 'TIMER_FINISHED'.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render.
-
- DATA(lo_view) = z2ui5_cl_xml_view=>factory( )->shell( )->page(
- title = 'abap2UI5 - CL_GUI_TIMER - Monitor'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link( text = 'Demo' target = '_blank' href = `https://twitter.com/OblomovDev/status/1645816100813152256`
- )->link(
- text = 'Source_Code' target = '_blank'
- href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent(
- ).
-
- lo_view->list(
- headertext = 'Data auto refresh (2 sec)'
- items = client->_bind_one( t_tab )
- )->standard_list_item(
- title = '{TITLE}'
- description = '{DESCR}'
- icon = '{ICON}'
- info = '{INFO}' ).
-
- app-next-xml_main = lo_view->get_root( )->xml_get( ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_28.clas.xml b/src/00/z2ui5_cl_app_demo_28.clas.xml
deleted file mode 100644
index 140053c6..00000000
--- a/src/00/z2ui5_cl_app_demo_28.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_28
- E
- basic- cl_gui_timer
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_30.clas.abap b/src/00/z2ui5_cl_app_demo_30.clas.abap
deleted file mode 100644
index 4bb98fcb..00000000
--- a/src/00/z2ui5_cl_app_demo_30.clas.abap
+++ /dev/null
@@ -1,153 +0,0 @@
-CLASS z2ui5_cl_app_demo_30 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- TYPES:
- BEGIN OF ty_row,
- title TYPE string,
- value TYPE string,
- descr TYPE string,
- icon TYPE string,
- info TYPE string,
- checkbox TYPE abap_bool,
- END OF ty_row.
-
- DATA check_initialized TYPE abap_bool.
- DATA t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_30 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- IF check_initialized = abap_false.
- check_initialized = abap_true.
-
- t_tab = VALUE #(
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'incompleted' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'working' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'working' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ).
-
- ENDIF.
-
-
- CASE client->get( )-event.
-
- WHEN 'BUTTON_ROUNDTRIP'.
- DATA(lv_dummy) = 'user pressed a button, your custom implementation can be called here'.
-
- WHEN 'BUTTON_MSG_BOX'.
- client->popup_message_box(
- text = 'this is a message box with a custom text'
- type = 'success' ).
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
-
- ENDCASE.
-
- DATA(view) = Z2UI5_CL_XML_VIEW=>factory( ).
-
-
- DATA(page) = view->dynamic_page(
- " headerExpanded = abap_true
- " toggleHeaderOnTitleClick = client->_event( 'ON_TITLE' )
- ).
-
-
- DATA(header_title) = page->title( ns = 'f' )->get( )->dynamic_page_title( ).
-
- header_title->heading( ns = 'f' )->title( 'Header Title' ).
-
- header_title->expanded_content( 'f'
- )->label( text = 'this is a subheading' ).
-
- header_title->snapped_content( ns = 'f'
- )->label( text = 'this is a subheading' ).
-
- header_title->actions( ns = 'f' )->overflow_toolbar(
- )->overflow_toolbar_button(
- icon = `sap-icon://edit`
- text = 'edit header'
- type = 'Emphasized'
- tooltip = 'edit'
- )->overflow_toolbar_button(
- icon = `sap-icon://pull-down`
- text = 'show section'
- type = 'Emphasized'
- tooltip = 'pull-down'
- )->overflow_toolbar_button(
- icon = `sap-icon://show`
- text = 'show state'
- tooltip = 'show'
- )->button(
- " icon = `sap-icon://edit`
- text = 'Go Back'
- press = client->_event( 'BACK' )
- ).
-
- header_title->navigation_actions(
- )->button( icon = 'sap-icon://full-screen' type = 'Transparent'
- )->button( icon = 'sap-icon://exit-full-screen' type = 'Transparent'
- )->button( icon = 'sap-icon://decline' type = 'Transparent'
- ).
-
- page->header( )->dynamic_page_header( pinnable = abap_true
- )->horizontal_layout(
- )->vertical_layout(
- )->object_attribute( title = 'Location' text = 'Warehouse A'
- )->object_attribute( title = 'Halway' text = '23L'
- )->object_attribute( title = 'Rack' text = '34'
- )->get_parent(
- )->vertical_layout(
- )->object_attribute( title = 'Location' text = 'Warehouse A'
- )->object_attribute( title = 'Halway' text = '23L'
- )->object_attribute( title = 'Rack' text = '34'
- )->get_parent(
- )->vertical_layout(
- )->object_attribute( title = 'Location' text = 'Warehouse A'
- )->object_attribute( title = 'Halway' text = '23L'
- )->object_attribute( title = 'Rack' text = '34'
- ).
-
-
- DATA(cont) = page->content( ns = 'f' ).
-
- cont->list(
- headertext = 'List Ouput'
- items = client->_bind_one( t_tab )
- )->standard_list_item(
- title = '{TITLE}'
- description = '{DESCR}'
- icon = '{ICON}'
- info = '{INFO}' ).
-
- client->set_next( VALUE #( xml_main = page->get_root( )->xml_get( ) ) ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_30.clas.locals_imp.abap b/src/00/z2ui5_cl_app_demo_30.clas.locals_imp.abap
deleted file mode 100644
index b0f14e79..00000000
--- a/src/00/z2ui5_cl_app_demo_30.clas.locals_imp.abap
+++ /dev/null
@@ -1,207 +0,0 @@
-CLASS lcl_help DEFINITION.
-
- PUBLIC SECTION.
-
- class-METHODS get_avatar
- RETURNING
- VALUE(result) TYPE string.
-ENDCLASS.
-
-CLASS lcl_help IMPLEMENTATION.
-
- METHOD get_avatar.
-
- result = `data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA` &&
- `AAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB+AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQ` &&
- `BsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAAC` &&
- `SdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBw` &&
- `cHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIAZABkAMBIgACEQEDEQH/xAAcAAEAAgMBAQEAAAAAAAAAAAAAAwQCBQYBBwj/xAAaAQEAAwEBAQAAAAAAAAAAAAAAAQ` &&
- `IDBAUG/9oADAMBAAIQAxAAAAH7KAAAAAAAAAAAh9pMrGnC8gxLKqhaUMqzdVLV49GkAAAAAAAAAAAAAAAAAPPdbSYqcNfyerdabSYcu3R5czFlfc2ebnlurvP0bO1t8Rntn3trmLvZhvWGfpcwSAAAAAAAAAAAAAMM4K0eu5tNfE1vi980FPDj0yj8xytIjzJfPYLxgVehsElmsZ+SR3bzoOO2vbz9Or2PZ4AuAAARScpjbrBtUAAAAA` &&
- `B57FVqdLY0Hid+z91Dn0nrV/ODaeHzCEiWWZqxzpmKK1nrFKTH3Jbs1F624/ICxH7BeO+3PE9d73nWB34gAK3Bcxx62tHu8/B9D7CPqvKAAAAAAUZtLlbU6qnJ816dijlBy6ye1/azP5h5MJ447Tc8reSueU1mGeGFJt2tZetEvtf1W3Jh7ZR63m9hvn9AazZ/R+YGtXFdh+eKTJ2dL35n1dlRvR8G/wBTH3HhAAAAAAY8hd5vyurRyy` &&
- `YeF3+4yyVVlvV9lbdvXrryhBpS/jprWldn5TgxvssNLZynYYWIuTVNBEi5nBPaJovdVpX6R0PzzvPb4Z9HyXO9mO4rS7/z+vl8Ot0vJpnJQx8nr+tD7fwgAAAABWNNxvY814vZQ11uTi6KM/VY2c9a2dKWdG9elQuzZZ2p1dz5aNXcnzrPP6ft/dI+eU/o9fSnD3Nro4bCbCzxbR+PYiTmuv5D1+Ta9Xy6bbfU9Bscr8hFuufovySa/w` &&
- `ATr+xtVovr/H7JpNz0Z+udg5tOoy+WfRqWu+cfR3p3ul4mrxb9V1HxW6bfUe7ettL1kN3i3rayzyFdL3nL4d0d7d4jd8c9XZ1myxiT3DOSSPyJ9jeZ3z5nfc70Z7v3UbFEEfQULRrItbsazsPiX2nqvW4vmu2+rurL4/yH2LivI7Ndeml8frqjGd7y2F/vxpWM/YXuX3fhBjZrpqbpbTQi3HktdBt9VaNpHhrN6drnPFS3O8T3HE630W` &&
- `p38HrccvT6q5wdHZ7fR7jztJZIJZrDPTix0v049LtXDTU4exsN5xW1i3eXud6vDLk61yLWnvS8/wBRpn1o9zh4Pn9nV+Z9OKKxW83pxymyMNfcytGvz5m/3ZbvF75uoWiLZa2z0Vnx9hi3mo3FA22Me17MZNlrN9tTT8j3XP8ALtxljfXbW5ybfV6sNVyUfrc24l0Tqz7ff/Kuw8fo6rltzz7Tk69jD2eLa2oZOTr6D6B83+i8cc6wmr` &&
- `S39A0299fhRyfN9q83egk+S9aaBjz6zZw+F+v7alo4po+nObPW7DNI8957VtnQ2fTWeLKpW1OGbyYz6fk9x2Uw67ien6MtXtaewpMbyHm0wp+3aW+Ow9Fy30vHYMNYzv6nocZ6Sj1ev8Ls5Kj2cOluT22yu6xPsr2hrhFvIOp2x3vp7PF58u+o/F+XWrf8fKer6eZz74xlZsQZzMHD97y3o87b6+5nrdHBZnDf2iSJ5FqcFmprWG/pLP` &&
- `bHYVfK+uXa6mXYMtdVzpcm9XX7CjM6vlur86o4qx01Psz1H0LjM8XV7rm+l8veDX7HYXrr5b9u9cefvQ9GfO7TWaHen2roPh212y+j/HMbnFtZHh9npSvF1rJda9Bhfp5a16GxoTXVbCpf3rI8clvNhR2W0Rxz1kx4zZROns7eG8avY0ZOim16/wCc7joy7LVT2dcdDq+112WvznTd5pNdtBPPY0vX30+9xyoS7u5XLU3L+N60Mdhps9` &&
- `Kmgv67orUgylx0bbS7Xg6LdaSDmiHz3GIo7jSfbvb4vkPa9l57HH85r+VfkPbVfY84193TX+7O3nq9xy6RRX8L1t1868xJ7VnytZu66WLWef2GOjTbjXw9FNphD50Z9jtOC28U6rnsq3Tlhv8AR+0t1cuh3SMlWG9dhHrb2do+P8qxenYqZZaSwRXOXbK0wwnPCTyiHn91vvS5er6I+m8wJfnbcdBxPi93R8v12rl7B9O+U47WthrveP` &&
- `p3GVSbjT51/YeeT+zEC5qJWpq9qFGls8rofJsbRW9wq3jaT6yakbDV2o9Ir2ZKu1bF3UY613NShZq10/mFLLXsvFqvUs85u1ocjBrJOvGx9ayv/T+YG9APn+gw7PxfQg1nNfQ6zlrtP9G9fg+JQdXzfzvrSbHGfi1zmr+5xNHH4WdVnV6WxlxmxV5sPaT7Yj8R5NhOVa1+OYizmwu8pzwWQZZQ2UJ7WOlfes4H6Z6nLzGi+7aXs5fk1n` &&
- `caDxe3XXfqe07sNTv5XqcoaQAB8o0v0/5zxdHU8po+q59cfqX5+7zu5vpny76tpqPm3ul3Hz3pZy2IOLbGPHGEUE1Ppm5s9LuJqg9x55m8wyqzkhxlJhjnLCT2K0z1LtG0V/fZU4UL3FdePV9hwf1b0OfqR7HAxyQCQAAACKUcjF2Y+bdhuQ1ezZz8mg7T598z6m5i1t3i6GM0UK1K1F2MdvWzwjzLGzkwZRyPJDLySOzOKxHZLrNtq7` &&
- `R7DYp1mpn59Z9blqdT577PnhpUAAAAAAAAABzvRKz8kqfY+Y8nq4irutN5Pdrc85NdLtnzziiKaH2izhHJePJI5peeY+Js4QSWjyPH2Jg1l2Pam8+qVrP1HkhtQAAAAAAAAAAAABqdsrPzLR/VdV4nfxvtuj5nTPDHLnaOK3jSayWOqXDDKU+FddlHc0+ij23NfT/W4uiHt8AAAAAAAAAAAAAAAAHnJdd5nb41qvpdDwO7msukmlzGG6` &&
- `53O932jd8/eOhdw6I0fV9L2PucGi3x6PKEgAAAAAAAAAAAAAAAAAAAOUo9ypPPbqdSfPTaoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//xAAwEAACAgEDAwMDBAICAwEAAAABAgMEAAUREhATIQYiMRQgMBUjMkFAUCQzBzRggP/aAAgBAQABBQL/AOIEik815E` &&
- `7CWbYQtyRJOTM6tDC3tEx3eX2xv7R5/wBOfDNOFaWcGrPIdorXbxrsUciT9qb611bkeZsIuLMjCKwi5C7MxYD/AEk9qKOJ7QaF7TdqIwFecgl5eJCzytEjIQOfc82P+w2XVh9TKy2yhhkM0oI3/wBBO4jiM0vOZmZZGVkd9wzHpv0/oHH9rO27cUdYqtYMEXnBqamzDOUlgmWb8jMq/wCDyG+TOQ07M0bSxvkjYxzl9gOb5v7n8sm+6D` &&
- `x/S+Mn5SLC1ZVrzxwy90b/AIrMiyWvznJ/cWuBJHuTugcNj8FY4cObdTn9HfB8rifAOb5y2wszLVT6eao6zL+CeaKCKW/aOpXktWo/zyDdb8ipHZ7xDRyYzYzed85YTkZ3wqMPgkZthTww2O+Jm/n+unafuU5oUWBw8f3ep9eNKcwq7Yw2H51swvlt4GeNRG7EYW3+zxnlT3MDA5yGK45SyhRy3KnOWKMkPgMNgvT+B0m6WP2+otfTSH` &&
- `gqW7EyRjOIGEcm/M0cbPrUwSqqnYsc84VzcjNzgPIec23GxGbHouOubdY29r+SrbZv0kZRlJzEK5LfZK6xR9yXVdbeCxFPBaEq/EcKbfnPgao8Bd+TMvnCM85tixtm2xC4hj71vaFIZgZbHKO9GuXGWCsiMRxzbouclXEYnNzvtuK8pSbTnCjpqup09NhNrVtZwWtN0tZ4NZuRpHHGE/iPzyG1PjRhW4cW2GecVdsbY4qXIMhuwyOLgF` &&
- `qftWEne0a4r9qJ7H1GnQ2y0HNXe+0l5xaginOwXbNs+MUk5vxC8jl32PptgFI/Ed/XZ7U6wVNPnapqGoZUqVqiWTKEb3VmkIxZD+ezZiSabeRpO0mSTESmeUH96XIqzoIlkYzU45h+mRQiOojJ9PHstZRkmn13apWCQNGrY2mDuT6RxSW7HBkNi5CrXZmyt3zEPGKyjJJG4x7yYWmU6prKai2nC5chqVK9RbOs6bXz9Xu3M/S9RtiMwB` &&
- `FUvioB+aeITJZijUS8VEvGVdOeGdpOOJtkpULJIZBAeGI/L7Dg6+MfYZskmTVpt5I5pZGWlVdos2zf3WohYg0+tQkw6tbuv+jWreVdNo1clljiSxqcfb09u5QMqJH+PfNTuTVY6uvVrBlmjjr6hqUggBsyzpp9iSSvEteuXbjPOVw2lV/1FWyOyDjMpSvIZI/tY9FC5KX7tMSLHPWr2MkpKK9ebuY3tMs6RrHEl7TJl7kunnWIqwq+q7` &&
- `Iv6VqMIp6Xsy1YxGAAOmpTtXr1NWO7XuwoII1S7LVl1K/tAbM/KpMJ4LOuLBbteoavCXUbCkak0jypHLPJekk03TUMVeqO0tDuu8/8ZmLPdlOGZBO86bUZA2CVxlUA/Z8Zv0OSS7LuWaNYFyNjHEMuV6thI4IKGpN7cjtj6PQipq9PUJZ68AVkC7koAvSC0ZIDYeZe+e3pl2TTkt6oLNQz6kSJvadYv0ZK917WRhmJoQb/AECM8lFXX6` &&
- `AZDwVmnHerR9uM+TqBKJZX2S/+1YmmY0NzOCA1ItwHRfgndtsLAY7ZbtIJZboZorQfKs2UXSNZduOowrJHDyReRhT0/Mtmbp6ktJiqwRcPksu2KufRKcAChQFH2GJchcMgYYXGKwySQKJpxtpvLaWQ1dRQqyv82w0j213MsbSKIpCa9E4xBer4A6DHfge4zYx2yzORg/cTtgmeFlytIdqs6CJwNrDSMxAORycF0CuE6+oQsOrowZW+B/` &&
- `I4vgL4N0vHVRHWIH7GcJHGTFFt4GzLknwxMktCUSrqiiKh6fl72jWPa7qvdtQbSGBkf9zi6WNq0DAtZSul3WSMbU7UuR6paRotXVxFMr43xb5MZ7vFIH7iVCWWIf8AGpuFLYg9z7Sw6T3ZrKqFXGIVdQnGr3IzthbpvjHPdngibTVL1qvBMHjD0klWLKhKQmIMeTKW840cTGGWOJbsPeTQuK0m85OVGScp8jjbII2lEsBDWX7MMhdpOo` &&
- `+dNk/aaQkSv7rVcDIgu1U9kJuTUQyVz8RbfVceNnS67Rr09WTtNYAAH2E4Vw/N0BM5e5CCvWXkrxbMvxjlWUboZAcqI6zFv2dP71eMEY8kImX/AKv6PjJPcbNfmkoZZNxv1rWRHKOJaxHs8gZcPMhVytEDlCJkuz3qql+5XWrStPYHx09YRxF6VZKsP2q5xkHG6haFCsizuI2HWX/qi2CNjHJv4OcqN7q7ho527KJKHFqKSK0cPwG2M0` &&
- `0cMjuM1qDt2JU5dGYKsTlxpUMk06xIuWIC2SRAEx7Yw4oqFo40VM0w86FkJ2dMjjjPX1CbMuv/AGsOSo2w32xxm/bnqx9nIz9lRdovGFcn8ZIMDlRSkLp2YJ404VraqstcM8chGS7ZX3ZZoe1kkth45+KZ3ot+BICnfSwtara1WrFKSNmYrKieYoQFpQuJW+KBP6dYkkLaLqcl2LR9Ug1Kpl65FVWxNJJr/wB3Bh0cbpPFKIySzxDrJ/` &&
- `ADx4zlhV/qLhdWIJOnxyfStMEhuDuNpk/PJIuUzwyxksj4u0KzuJF5EZzxoYmMtKu2GnJxFGc5ptatVCjcHj9QI/PZ3YZqjt9P3U+mDcLmnqDIaoeDu360bnULUkFZKw6zySxtYtxJUrzFqvkBvOKdstxCaKM96xGNj08cuPgr42w5aj7qtA+5T3HkM9vANwkgbnGVByairtbhsqLdEvk8bQgd9yJHRlkDKjxbwRExIqAdt5hXqurcPC` &&
- `rv0MIDF1xuTGuu2JvvEcY4V3w9GtIskNSxwm9K25pqmgww2eI228zLtki80UtHi9QGJ2bCG23Occj6e04++RO4DSK8dG1ImRS8o45Q2P5yWJmW3GUyeFcaLK1KOQR0bPOPT25JWC4EAzbxtn8VtyiGGtcLSVi8mE7tHyXPPOJ1wsMLdN80erNqWsV07UHSTwTk536Ozzug4Jy6MWAq2ZpGLq+c9pGPmP8Ak5xG2ycLJkvKNmHEV3R1Mk` &&
- `aYthomq3BNGrjjH8NocDW49IfKkNeNQV6Myqu+E5vvjyZavHt3e3OzlTntUdxsXNxh2w9NU+oNnQNPGm6b1lsQDJG2bGOwoN7CTi78lXPGIiIfbvPEtiLyrRHfJP5E+xmOSDupscQCM9/bDDs/1EmLqMG0mrVIIV1STc6nu0traux5FW3yWQCQluctjkxZY4bWoYZHmwqBm+FeeRrnHYYHyQ75JKiN6Zi7+qfZrtUzw1p0kr3eVTNOjF` &&
- `xUiCqcXYFH3weegAwuNs24tIds38YnxKu+cX34lMVuEcrIX2jbIo66YGj37cThYJfp5Z27kN2QYl/6ZX1NXr92btSzSSL7e9yO4PIquIo3ATbYZKNuhzT9Os6pNp9SKjT+yvo8Ea1tOKapZr3reRJ+k6/f0arZS5Un013AXIzitgJ6hc3GMAUQgOMXGGxCjkxJXtOymPgFj4ZuSVbfGH7KkbGDuKI1xj73i/bhfGbi+tR/8epMtrOPXk` &&
- `dt8Zick2sWKFG5bWjWSrX+3Srf1tP1JBLG1OxHbq6/T+t0v0ve/UNG9ThpCzxSn4xB4iB2AwADDnLOfiYBZcXP7TEHvObbkRqceFebx75CrMJ4jyh/jttkLMJ3yPl9VZf9hrEdjTadClrFK16YtVhBZPftWoqxkHOIR6lXVINUmFHSKVaBEVF+67y0nVAUliqN+h6rnptxQ1+1CLEGpadCqmFYrSoM22Azlm/RyQflot9/ktiYvQYpxz` &&
- `gxXAzcg2AJMUBVJzlg2yQK6inG170o2+m5qmm09Sik9NTo5qTR5WoqYoa8UR/BVss8gab0/atwVtTpULk2k2PUivWkqzx2a7KrZPBIJ99sjlEgzjmwxskG422yFt25+1vjB8YM3zfP7YYDhHg/P9qmcfHfTt1OfP0XIWqdSAfx65pNbVa1ie3pyV7n6Szaho2rVdN1C1Uq/wDju13NNzWIzLp89WVJqCTBmTyTh6SfxL5AT3mXN+m/3H` &&
- `p/TEHF+cncRxdt2kSvaYena7VqP53VXSf03oszr6Y0UQt6M0ovpmm09NjzUp3r1bM8liVH4FZd8Yqehxjk65CvHOftwfaB0Of2w9oHlVx/B1BlMMarNe03S0rS/wCPe0oyyuWWRG6AKcchQZUAB5FFGEdFGHDgxeg+WwD3N8EeVOwk+WhabKWnQwf5Wp6TWvZd0+1QxGVl3GOw3lILJkfwfIxW2zflm2AYBhxcbBjPh+GyYuZtH0y3LY` &&
- `/y2UMtjQ6MmWdNuV8Oxx/mIe5V8Hx1U7ZzGKw3LjiMLYCSPgA+WOWG4QNGfrIIkhT/ADpqFaWTUoYDLGnHEbYJ7maIKWGbYevL2jydxjHOWM+XGsCv6cgsWbP+gtUYLBn0iKTLNGaqIQJFlu1o5kIzkoxvdgDYegGH5Q+9osszwRSsjSJolZq8P+j1jShYL0xAm70sBBG+cm6ADGI2PxZjkdIrlmNNB0uSzXqaTp9WT/S3NJeSUaNZ3X` &&
- `Qmq42lpap6h6YqcXq6tUEE0cyMWijgtO4cO+aJE8h/1uqaJVuSSaLZsQ6dpwrHtx//AJ1//8QAKREAAgIBAwMDBAMBAAAAAAAAAAECEQMSITEQIEEEMFETMkBhFCJxYP/aAAgBAwEBPwH26ZGLlwaWVtZoY1X4aViiY4aSWNMWOPB9NcDwpk8DW/j8GON8mPGluutdkkZowkrXJVdsY6vZhxRHGihIvq0V00ozRad9mLC8hHAkq9iMdT` &&
- `ohjUe6l1aEZIa1RKOl10irZhUI7L2cEKdsRY5mtDma35Hk+BZdyxj2JSo9RCnq+SONyIQrghGpl+xgWobfg3KP9KKsqhwRUvkUmuRS1DRmbk1Ei/jcqT5ZBLWq6RxSkrXRYpOjJheMWOTZ/G+WTwqtiEWtkRVbiNUT+r60KkNWbeRqt0KVozKX3M+pIw41JLUKCXHT6b/weO+RYv2Tx6lQov5NK+DQiWzvpHcy422YoNLca6bsoXTjYS` &&
- `M7Th09LWnqyLlxXX9Iv5GiW6FwQZsfsnkci2YsjezORqWrcxp1uPk8GSepkVqdGKGldnkvp5EIcdjHG9iD8dOdiacekN3sb9JMkyb0x6YuRKlS7M6sgklt089Wfa7RLaVohKxUSxavJ9CRCMoPghKXkctx7j5Gm9vkfpZmLD8dG6Nauhj4IcdnJQ1ZONKjdEXa3E09jdE8h9QUxSsZjXZP1Gkc2yxkN9yhoqu1414HEdtlPySjRFWaaV` &&
- `lfBHH89nqJVHrqlGWquTJkfNbEPURfY+5UOCY8ZpYoXyJqMqfY8lE5anfX7lpYv7KmVUqZDJa7GuxdKKNJo2M7encx5pQIZdY8yWyHJvsjlvnk1p7+TK1J2jHkcHZDLr9zJNx4M/2+2nTMWSD49pdMuVQJScnb9xNrgxeqa+4hkjLj2cjpGSep376bXBj9StNMjNS4L7Xtyeoez3/CjJxYssK5H6tEPUprc1I1J7GbI09Kf4+pkpuTt/` &&
- `8AL//EADURAAICAQMDAgQDBwQDAAAAAAECAAMRBBIhEBMxIkEFMDJRIGGRFCNAQnGBoRUzYLHB0fD/2gAIAQIBAT8B+XvWPYqeZ3F4/OFwG2zvpiK4b+DdgoyYzgTUXb/eJqSowTDqG85neY8xNQynMq1q/SPMBz8/Mt1AXIl+oY8NN/tM9dwKwMRwDK255mltsqbax4gYN4/Dbb2wPkHxLGOcy3UGM+ZmbYBPaZmeiMfGZo7ARt9/wa` &&
- `rWLpxzH+IOz7sfIts7aFpbqmsP2h5m2bZzMkTuQGDoRKbTW4fMqs7i56O20Zmsa6z1P4+TrLsjaI5yZiVUBhP2ZsxdOMifs6+0TTYPqj6QgceYVIgbMJlI3HbPh9uRs+0e0Lx7y24N9X6TUuWpMz8jWN2v7yupT6mmUHgTvcQWH2M3mdxl5ELk8wXvN6eNsamtxheI6duK4M0QRFLxwf5jiBqx9IzNSz9k7ulmrrrfYxgYGPq60zn2mm` &&
- `1q6gkAYj3qFyOZ/qBIyFleqYNzyP8AqXWBuTLW3cSpd5nZ+wltZV4fPQECHJlb7BNxzlTNwcbXj0BCPtNG9eNg8zspnJE1mosrLds8Sy2yz6j0a5Bg/VBqgowBDqxnO3P9Zp70R8kR7F9lxBe494NQ/gSob/QYRKm28Sq1dvMvtV39MzBAwB5iA2TZWP7S2pWGVhU+YWO3BmkDC7IHT4kW7uOtbAMCZfTV9W//AB0XzPI3mFR/LKWAbm` &&
- `Veh/ylmNxj7hyJ3HP1CG0n0CUaFE5bkzsp9prtKtfrWU8CIU25EbBY4lnEb6hNNVsXMscIu4zUXm18/gH+2CZZXgbugOU5jGZz6pk7pqGxhpao4MMAK+oyhxYgPTUbdh3TuLmLqlHmDVBvEQBjuMqUWPg9NV9Mscu25ug6aB9uRNSS3LdEOF6BPGIAoXMr/eJgxeV2mWrt8Qbs5HiU3dvwINYv2mpZbVxuxLq1H0QV+nmIAg4ir6Jwo3` &&
- `H2xB8RqJmq1Z5Dfp0rrLnAh07hdxH5dEOGBl5/ToviGKxQ5m9m8SqxhEbcd04PmMNrZWI20ciFkxmbc8zt5hSbIuRndLm9paoHQDMr+HB+PH/uLSBj3xGUjzPMuXB7Y8COm2V2KoORA6scGMpEErYTdBccYMBPtEyohsOeBEfMZsTcWMU45eW6jIwszt5MZs9PhtLNcDjiAY6dmu2vYW8TT6ZFUqp5M/Y7F+qOm4ZhGOgOIFyIOYlm3z` &&
- `E++YPyMbf5Jiah1WLqhjOIbUOCRLLyDtUQq1lYsEdpnoml3e/MoTtoB1PoYOvj/wC4jjtuGWE5TKwgKdsd93WsY5hXH4Nxm6ZUDidw+07wLgkTSIgcbP6zU6Ou8c+ZdpBSQPf/ABK9K78kD9ItajnH4Hox9Pj7TtlPSRlZQpRdpmo063JtMu0nZXk9a8kS0YhOeoHTEJxNLpxaCzTRt+846Yz8mxSykAy7SXglmjDExK/QJY5aAfgIjQ` &&
- `HM0VHcA+3P/iIioML8xlDeZqvhgc5TiGlqWw4juNsMHEzBiZgbMJzKF5/WU17Ex88qG4M1GhsJOBxLaHr+oRqyvkQ9MwGJWzHiaHJZfT9/4J0DjEbT6jeQVyIPhNhPniW/DWU4Q5hrbOMREao7jNLUtibyuMzGP4YoDK6ErGFH/F//xABGEAACAQIDBAUJBwIFAwMFAAABAhEAAxIhMQQiQVEQEzJhcQUgQoGRobHB8BQjMDNS0eFAYi` &&
- `RQU3LxgpKyFTRDYGOAwvL/2gAIAQEABj8C/wDoiKiak0INTURWNGDBhkQdaM1nQit4/wCUZV94rJrvEZZcZ4eupDAzp39ArDMNhxaZctawoGKXjiMnsN+x+PjRRVnKrTMReuZjEMlUE1LnCAMyayPGNKKznrUGsz/knWF0wnjOVddYw3l/tarZwA4+KPIA512MGIySsozRz40Zus68jGXsFZ60r4hC6CM/bWDNVOoGlSZ5ZmhnSNk2Hg` &&
- `aWQsTGpn2RX5vUriywgY45cRW4FPjQDVH+Qs7MFAEyeFOOt2hwVOsIAfUMVBt2eKzkKwOAycjWfn5dBV1VlOoIkViGz2QRxwClaAxTsltR66Fm0tw3PThOx4zUnMUY/EzMf0MSOjKssJOoxaVxVxqp1HTn581nr0R0YVYgTvDLeHEZ0lpQbWiqr5cNBz9VKhbt1H4bq90W1WTJMRA/ocs66tTcYgwcPCvzFLYTK2xJB/3HL2ikduu6wL` &&
- `Ha+IGVGAATrA/oIJpWGQyG7p4Rw9VC4Du8+f4LXbzqiLqTW1bXsDP9mv4d05Yt2MQ5Vd1APosRLd8/0EUyszjhudr1Rn7KVbFnq1R9CYBXuisK31S3wC2sx7491a+dPRPm9w812V3340PZ8JyqVuOwMDDGh+RzoEeeNj2e4qPH3jkYsHKBzoPeZ77j0rrYj79Ojv8A6BerfrA2QKDEPaNKxLsyC5mfvGxdW/AwMvfTObl1y36nJA8BXH` &&
- `8Pd87IVn0ODkWOTTr3d1LszLEDXzrdoWOvuuMRXHhgULm2MBvF2UemxM58OXsrn0H8dXZFLIZUkaeFNa35fSBQxxzjo1rWs6y6J/Cz6R0BWQMj5GdPCgpbHHE0COz5jXLhwqoknkKubXcd3Ut91bjew+iI4DTXKsTq+HBuIilpPfGh0/etzI8QdRUnebhUnj+PNKxA6z0cpPD+KxsoEZgcRWvTmakZipFTRt4hjGq/OusKyg7UcBzrDk` &&
- `bbibbjjzHj9cKSfyrqwO5h/Hw6Lu0NoqzUlYJ4eZn5hBzFG1cgDMqT6Q+UVxhu7p6zarsfpQdpvAVKk+TthPL824Pl9a19k2O2b1//AE7QxMTnqaNx7v2X/Ts2ng66s1fdtbMsSSvHvP17NB/Qb7Cxb/SmbHxPy99FbYkyMRn4njlTSZY6nzIOQoGy67UnJjDe3Q1hMo/FGyamtC3cOEYpGYj40cEu6+iuVxP2pkg3Z7FxWwsDwn+Ku9` &&
- `W2LenDp4eB93CriNubRaGPCRmGHyrHZtFyRIxbopLu07TbbC26vZVT4c/GjsqFrdpfzWKkE9wq1sCAzgy7ujPo0no760q0VFovilS1yI/fjWL2jlWs99NsfkJBddTFzaG7CeH1w411u1vc8o+UnzC9pvZ8zyo/br32Wwf/AILJ3jr2mrBs1lbY7uNAWhqYLZbo50k2jbYN2SMx486gf0Bt9q5+hBJ/jxOVFOsu2rZJxYIkZzqNDMjLFQ` &&
- `CaUEtqjEic2j5V/wC1uHww/vX5eBY55msSq57i5PxqCMPjQF63buj+5dK/wy4Txzr70T3GtIo4s6DMqsR+pZBFBbqJj4xnUUzptN23iaSFC/MVOzE9erYsdwyW7iaw3LF1No06oqZPgdK/xOzPcnjaEx3RWGz5P2jF/wDc3K+/6sPOidGZodWuLxMUcaoOEq0++iRbuRzMQPfTbMt97Hk+1qE/Mv8A8UF2W2PJmw8IH3jj640epSCe05` &&
- `zZvE1vbUrGJhN74UP/AEzyc5U59beyX69dR5R8ptgzm3YEAjxpbWyB1s7OWtZzm2RP13mian8bAzOB/Y5U+0UNj2VFtCMT9Xu4V/n96gAKq5ADQUyMMiI1pCtkHLM/o7vGsRXTuo7mHP21hZ29Rj4Vhlo/3UBifLm0/GsJyaJ7vwc6zEU2AW49Fjn7q6r7RctxBuFcvZx99JZQb9wiY3jnxY+J6QBaZjzBim2a5cuhbgzwfCYyFPtlwL` &&
- `Z8m2m+6R//AJSPSbn4ePrNvyRsmNQYN+7kv1oflU+VfKNy6P8ATtZL9eqh1Oy21IMhok+01ju3FRebGKf7Ev2y4nBOz/3aUhN1Hxsz7qwEk5r35zWBRJ/FW5Z2VtqGL7xUbeC8wONYkB6o6Nx9dNfZvu1XESM8q+x7PP23at+4wbKyP4yHfrR8n7AEVNnRQ925n4QKuLeu9fhIEO+FTxnCB9RSoSNxczoK31wzw5VCtR6y4MS+iMzW6f` &&
- `aI6MzhjMN+nvoElSea6Hv/AAMxTJbJr73Oh1tm25GmJQaaxaVUU/oUCDzr7PewrtS9pOfeO7o3vZI+dbRbt7UEZhh3fvSoPcKTZtnuXtpC5Ll/4ihY8neQWsga9edTzzisWLY9ij0dZ/8AKlvbR5avsx1W1ufXspbz3pbiCgOfrmrdt2uXlt9kXHLAerSgAIA0HTjQZzFYb4/6v3pW2xUtK3ppcxKPHQ+6KkGRVvCowGk6g/mCZqLlx2` &&
- `E6E0tz21csnY7zqujIy5+qaQWy1t2EkXlKRQu2la5bjMK1FrFzrXB3kJhvYaN3ZG+z7Qc3tsO14j5iruxFXW4sXMHHIzlzEisd5XXEROf3l5vkO7+ZDQOtYKHfXEQOPOr1+8hQu0KCR2Rp86gYczGYkd9HgBRwmM+dFG0Czl8K/LaKCgyDkD8qIOHD30LhSLkYSTr+BCLib3Vj61G4HATr4g/KgAkrixQd7P8AVnWKSyYdJxMv7/HxrK` &&
- `o2m2jDQYu+msomBL9uUz4rqPYake7jUJblTkhttMcJHL1USLaBiZZ1t4cfee/p6q2DMgzRCoyYDhhv36D03Nn2m7lhlGPA0UsYQon74jTuHOlxYzCjGUXER4CiiNdKnQdU5HwqHtbQ91WnKydKlLUqOyGgeqpvHC0DETkJ8aazZwXlIkW1BxeNMtzYb4fU/wDJiirpukan4ViRMB/sJX4UjXXe7g4OF/aagXHjWG3s/XnS9Zfe5hbFDR` &&
- `88/fTFQDdYZE7x/wCKxYTmYUDUnkK3u22beNTThIxsMgTRDGZq53wRQtvccrbJwKTkvhVtTO/kw9U0MTb3OhiM/gdSExGN/wAKO+s8c6yYHwNa0NmkZDcz17vdUMJU5GuquMcJO43FG4Z1DtjGQYxxqLnZHpnl399XHV8QtoFEaGf/AOR0jY7M/aHObDLCvH676CgBVUZDzcCO6Wz2kByI+XqqAIA4VCgAch5pKBVfWY+NBsxI0PDzZP` &&
- `8AzRuXNTw5Ck2u5ae5YW2RuLOA8T7KDKZBzFRUBwuUxh19dMp8KDLk61+VveIrrLjDTdwns0Ms8VDzO/pOETRZjixNiPI1hAHgKBAzoNRl5ZnAXFwb0Rlnr0NYtwAmTPy4wO+s5GPLLhRTaWVYGbcI591XLwaQclOLUa9KXrmQvWgiGOIJke8ee9xJxDumgxu9cGzDxHmsx0Aml6zxduR/ap0oMpDA6EdIt8NT30YG7oG/VV4TJNp/hW` &&
- `yvEQmH2ZfKkMNnu65D6j31J1iBREViQa6ihhtEk8zpQAdFnhE1jYbxrez7hXV2Lbf7q32NfmMR3mpu24aeGdZUaZAwTnzintrbyZdyDGHPXv4+2sxTWsQgCRi4UTm2eId9NcxG2wGHF+mePRfB7XWmfl7oprY3T9Z0pe0VQAq/JmkacY1qB0FmIAGpNPeVn+yAwnDrI4+HnlXEqciKNtdpuSpkYt6QeNRcvXbmeuMj5+aMRzOgAkmgrC` &&
- `MzA5CchWISjHUrx8edYbgg/qGh6PvLaMP7hNW2A/NcQO9jUESujeFG0ghLd11Ud2KuPqrNoMSBRNu2Y4M2Qamx2d4cFz95ApisKvotrPfWJgJ4d1FiCY5UWu9vj5mpFfmBiuta1nbIJ1YGR9eqsxucG+VYbefhTnFvERA4UFGlXVtziNtkC98cejaR6XWgx3YFHypAGRce7BWcXHXhxp7ly2iO7Tuti9ED5dNryWpZVKdbeM9pZiKgCA` &&
- `OHn50l0cGA9Ry+vCtDUjMeYt1RMAgjuoODIIkdBDCQawHNT2SdfDotktz0XLDy+H/bRo3LlwYTejAB+pvjLeys6utcbAouYQh3iWgH2+3KNKEggxx6MuhkPpLFMriGBg1E5+YoLLyg6/WlFZhgJjurC3Ec86hT7ahj7KgCsR7hNOZbCLa5cNT+1dX1ouPPYt7zewVtG1Om/m2A8IGQ91W3W+rIhneXM+P/AAPMXrLK3br7toHU/wAVgX` &&
- `M+kefnZ1OtMiZk8zx4e+g66GlwkYmYDD+rzGzIy4a0FUAAcK16NSIzy7ui6xEaKDzH0TRz1yrXJXVz4Ag0HRgwPI0m2LhuIxFuDl1YMaZ8+6emGpcb4QxyPD29Bcdls/XxoMphh0SanDApcEYR2zROESdT9eFFlJnUDvoAjWsgvspmImM8hWAai4uviDRga5mtlRMgEiIjMa++aKu3bGGfGrhVjv8ADl5hW08Mq4WJzFtZ+PnESRI1FR` &&
- `HR3ULU3jIgqHbtHjw1nnRm0inmNfr1+bphBzA/SOVa9AVe02n79EUDhhSAw76i8JBGE+FdSgw2rglB3jX5e+jbbQiNaNq+cWcLcyz5SOHKeY8OiGq4XOJXbKc8tPfr66/w102h+jVfZw9VdVtGzdYp9K0+ntqSr2wT6Sn6+NRjn1VmjEf7DUYXnlhpVYy8ZmhbxF3JjCgmoImaTsC22Q8avPilMZjOfH3zRe6cKgTJqbjq2C2qkaw/H3` &&
- `H31NW9oKFQ7M4HczEj41fukqTbshk5Kc8vhRSwyWdsKygfst/HCuvT7tkyuo2ts9G8ZfgtXHVvzlxXl5RkPPnoyNbOtxVCpcWWRs555jnTIwh117+/zD5mMBWUrGbRH18qAVR7a7XsyopcLWid2Z0yjKgcxMe+reAw4O6e+iCMJBwkcjWLDbKMmG5Izbl8Wp8LKV1UnXwP7/RlZkag6ijCtgAGEATzqVxetY6ZNq2x71FEm2Ae7Kgtva` &&
- `7ygc2mobyheK8Rn+9PgXNRm5/epiktsgvelhy3e/4+ysOFQmvfNSzuwmQp0H139H2a1+be3RHoji3q/ajYtrCWSLcf9I/er1thlhHr1q/s1wnFbfHbad4d45V1Y2i8HgqXntKTJB56msGx7S/VRAXIlPCco7qW3dW5YOHFcua4u4HhRCatmzHMnzAVt9YkZga/XdRvrcUysp30Lt1cLZ4h3jpzp7R9Ieyrl1exART+qJ/fzBMd1a+YuH` &&
- `gc6yEZ0DP80QuGdVnn/wA0t1TlrVu8NG3GPw+f/dQPRjQ4XiPGslDNM5cO7w1z8Mqm05t5NppiPH65197AH6sWtEjCqzlK5mouHwIFYsQivzFnlOdY7n3KasSc4+VAQEXtAHXxpcPWWxj17s8/CusvOrvEDCuEAUem68sSdSfhW02tHu3N2NYwAT7j7KxGYPZkaUzRnz8+5ag41AgH0poRZutOeLCc6S51qInW4mttw5mhdN53QN1nVx` &&
- `lj5/OOdZdE0yEkSIypbd0AcAwG6f28wYYmeNadEeZgOFbnLn4VGHC65waykpqeP8/XhRSRhbNW1g8DRLIcPHCZ9fOhcQhlOhBkGstejcfBHdRu3tnZgNXUyo4TB09VYk0OhHGoOdG4AN3KQOVfdi2qxq2fu/mgz3ccZiV7Phw90561p5rXTook1cs3yugIjlH7zTHGGGZU8xOXupqJPHzMugSddKuOyr1SSqP4f8mktzOFQPMmhHQ9u1` &&
- `gCDddmE59woKCYAjPp3BJ8YoAlbciVnexDnWAnC4E7prC3Hsnn0iprMb3A1lWLhrUDXjWFbNxBxwXXSfGDXW2Gxc0dyZ9Z0qc+8HVTyNTXdT30vXLRuahVWPhQ666IDf7pHqC/A0MCtIGr6/WVQOgs7BVGZJ4Vy6MqiurO7dL9n+2f299B81IEZNFBbZhFUVlUVNdmsunZRsttrl3ewqok6VasHO5G+e/zGxXkXCYOIxnE1APRNXSNGv` &&
- `MZHHzTgRVLZmBrUxnzoowgc6wwSOFAjzOVREHlW5lQnTQnke+sSrINDfCxwI1rCcjy4ipLEngOJorC4weWRFb6xzq5fRlOFCwzoCWjFmVOkZ+zL39ASHnURx+v2rEzaaAfWdAKGcEwWXODRd2AUDMmvuw0N6v5FGch0ZdEHzVVmguYWr21a29nTqhl6ZzPsEe3zftqS2ERqIjWrFxRlcOARwaNKTrFO+wRSM8zV5dpd71y0/ZJgeMe2o` &&
- `CgDkB529WQ6MXPWsR0FEdPgahcJPM1nRVVnkOVawTUMisORFHBaVD3VvJX6vGriswLsCO6KxscJ0+vrhWbtEQQDFFLVswTOKSxnvpurxddoN33511YdVABGIHEx75ojfAxYgrPiilQkYzoJ1o1p0Z9GXmfbLF4WVtHDbLpMggy1W9lsTgQcTme/wA23iLyINxEaLbtzw1tOwpfe1etsL2yydwxz5/80m1bTs4XqWVrezK8ntCSTpoK2T` &&
- `aryhLW2YlvrkQpJ08Bu+yisYARmOFYmxCwDDBs8I0kdGta+e1oRuxpw8yagVDhVH9pmahRAGgFSmQ/TWT+qPb8qI0I1FM+cAZxWQiMo5VrHfyqShU8jwogJigS3P8Amsdth/u4RzoWyN7iRoaTMZmM6+02t27aOJTy50Vw4L6/mWjkQfDzs66mJtW837zwHzpNlK4UXdaD2h8hS2UGnnC6VwXAcNxY7LDWrPlXZRN3Zu0OafXxpNotHc` &&
- `cSKu2gJdd9PEfUVZusZur93cz9IfU+urVq/ab7B2rjomIluC5Zgd/wom0yuO4z52fSLizOIA+vL8DMVigTETXI8COFNbuJiBHDjWJNfjR8YI5GpQ4hLSJ7+FFjZZQVgliPVofGioANt+0p+Iq8iSIgjlJzPxouUIa3J0yBwmr9y3IKo0htQRVu5ttgO5RSGGRGXOsfkzb3bDpZvcfXR2XabZsbSnaRvlSdbO/x5UwD4JHaHCsKNZvqMh` &&
- `iEGsJexbB9JASR7fGkQWcTAbzEziPE1hRQo5Dz/wD1BF/wm0ZbR/a36vrvqRhdHHiCKbZLpjYtoOK0x9E8vru6Ns8lndt3vvrA0HeB9ejRtMSAeVBynWLOHfQUqIoWVLFRlyz/AAADzmjOnA1l+DhHRmM9JBg+2oXTpmsLaSDVwNjC3Fx7pjFzB93tpVk7gC9HV7VamOy4yZfA0Ln2w7UEnAjpBz7+NHZhItnLCw3l8KwXrSiIKsuvrq` &&
- `UEEkn8G55I8sIq7QBH9t0cxWBsVzydcOR16s1gaHtvmrDh3il8neU2+6P5N/h4H6yrZvK9gb+zPvcJX6y9dJfstit3FxKa3lBir9y/ct/aCxLKTDROUf2/Ws9G4yv4Hp1rLpIxZDKO+o/FPS930VkH1V11475EBZyUcqfWCZHt/H6u8MNwfl3QM1NHYvLuznaNlbdXaFEg+Pf78qx7FtVvbdicn7rFDr6taNi9dVJzi5ulfXzp7W27Jt` &&
- `F3YGGHMdn11e2Ukk2XkeDfyD0XEWwL5MbpAPHWDrGtfdWbpCnX7MU//Qx7acPZ6s8SXxHz25Ze36ipH47XDoomjauF1uXLgaA2QGuXsoqu15Hjg3hWArA9HnH9AyOoZWEEHjRdthVSf0MVHsFC0dkxZziLmfbWIXNqUfpDiPhTJsdnqw2bGZJ6GuoASOdG5cOfwrLzshnWsnj+Nl0KhzDOo99JZjenIkV1jEv+nu/qLl1HAnRcNGzdQp` &&
- `cUSR+3TrHRn/RW1H+qn/kBSnCrMOJX+q38SNzSi9z76xwuIMx/uX9vdWJGDDmD0Z6Vuj+hS2hw4pJPcP8AmrT37hFhGFycEF4Mga+HDh/WFToaLWlaxd/Wh+POjK9db/UmvsrSa06Y87LzT0PdicIJrZ8GZYm3Hjn8qCooGX9f1nVgPMkj0vGuqCmzdGu97xzFRikjXKCOnOp87Pzb/wB2jJhOjQRlS7RfwWksHEtsbxLEEZn9v8hxOC` &&
- `G/UDQzzGh4j10S4a6n6lG8PEcfV7Kx2riuvdX2e7fUXeVZ6fgCpmhba6oY8zXUAb149WPXlTFwQzHQ/wCSC9sw6u/Obpukjv51c2e6Q5ZpuA8SawmW2bgeNv8AipBkdEdOVTQ6m4bbgyCKxbXs910/1LQkGnv7VbKddcJKOmfcD3V1lnZLaPM4gP8AJmu27yyx0Iis3tR4mp2bBfWc7NwlB/0kafWlfZLmxG2pO/cuMMX/AE4Sff79KV` &&
- `vJ9s7OwmStxpqb2zNtVoenbXfHqrHacOKF1skMmTTEbE5QrunEsn1TW+mBP08T411ziEHZ7/8ALvtCTs20/wCrb4+I41b2fbNvR7FvMIljDiPNs/dRd2xsRHdXYX2f/jr/AP/EACwQAQACAgIBAwMEAgMBAQAAAAEAESExQVFhcYGREKGxIMHR8DDhQFDxYID/2gAIAQEAAT8h/wDiKjczzKFcUQUbt3KflOOPeCBkb4DyMVs3WbZqFn` &&
- `iItirN/NcQLHH/AEzqZnliNau6aEWoWD2SzYpYcDsjwGOZusnUyJAWUUWnS14u5bo7kDn+4/0HKvyVAP3+zAypMTcDR3gOdcWw+naIoJckq2SNNc+m+YM+EB5uz9paCzcbAC/+kDIFYyI7uJBJvJjxQ36b6tw2CtaXGWas9CIwt8cGdV74d8yyNxqlfxRZ/HNxfb2MRYASByb9GseCUA0WFh1SIe0CkRgWpV43zfO5ncivvLJQGt7tTN` &&
- `+K1q66mc35pegV8/Eur2l9hcryXTZdnBAwhp2g0Gd1qLQcn/QvhEkoHcakshWjVWAfOT7SiGmh+Smv2iVK2dnxHzb8zQuXZCxUOpn6LFPXKMLxHm3Rj2hjXgXH2jafkzbOlk5+Y11lFD7Fr0IJd5IdlE4f8ihXbt/4O0u6v6U/Aj4BkA3YR9vXjdMvNQPPf65LMMtVGJdwwqHMMMcNkG4irmFIYgWZQvumqJzQCorUL0Qn81Vl3PVOKn` &&
- `sqnZlSRVBPLf4wMmhwMntz/wABAW6mashcIvD726x1vxElilSHWqrUjUDlaI4PqLvmpeX22GfWPN3ZMj6LbJuViWJa2J2+0ahuDLHdniHXmNzE6I6ZSVKGoUHrGnDJml84IVR2OHo/wkxa30EtECw2qFb4Fav4rA5YFwXb1cc8Pd/8C3G4dZW+auyhtV9gtxVhFBAiA9WuMY11iXa9Kqj4BVCp4RGLy/U5YYiMIeCWlIa1LIwc6TM6gt` &&
- `wi1jMrpSGrfiA6J+Xhho51e94IcCKUG5VKLNr6IGaFG/T9eR1V6tp4Gc4Ct3CLNQ4s3j9ioDMA/wDAbARTWm7we5l48zWtFkv2DN10j1CHH3fMdkbS79dcRF4YOHFOpyGEgWoi3FTUUvbLHxB6vE0yiGCxlmfjM8QXtYpCuM3S9azjaFxhgBh/VdYnwDFadt16Qtou1tiRpda8H1le3KFlD3j0eP8AOqtAlWlL0xNZmHruX+8wGaBBxH` &&
- `/2Ii0hlsozkKiecpSJOjXM4f0DTZAbllSJfpmOGIXdRWzqchmOqnBLur8TLAgi0sZtIfu0iuc79OSNbduyuPtjOY8tV8foG6u7gLWFFWcpFui0dq0W52wo2thJyIUAbYy8JQCBjabTPuPxMMq+BxKief8AOQi4jB5E4mw+2bcF5iPeHKwZz78fLGaxZ4ZXBuLqkgSrsCHVIP7pX1Behr9nmNe5Xty05rnxfpDlLgeKGT7vS+0RtLtJzl` &&
- `45/JFsudZDdvB7uPeEVELea8TNuPwI45m2/pEFlTfaivMOojMQpO5TjjIqc2t+Bs67mR5o5Vnt8f0+tCTR3F6/c15lZmYX2O/T43wm/fjTb7Km+TqpwV+CGx6Ebo3XDG+Z8ja+DFvR4xaGIXczf86jkGGqXizBZhA1xJekJrOttlYedcZibgzJ+Dx/d3LtYYGqHr3OZuVt5i4HRvGJ0BXqHIerEggyOr259SDsMMPJq8rsoFjUodilzk` &&
- `un3xK0N81gyCrq1HpM6NJARxY4BL1bhVUVx8zK67JV9MBlmKAwNK5zewTzLVXNVT9spznS9EduRehsJ+fj3dV3OoYH2H7dxeZomJfwjfawFVo5i1FEfIgFwhb4+yc87t2FGsUQwFpwu0esxFIq8uJXBBXivtznnQgdidBuOThRXwOp72MQ4fBgw+JcZ90z6nbvmZxHzpZ/73dNVEZdyxSl5W2XN73dNzREBi/84SW41G9KcGuDygG1rK` &&
- `48EABBeSTLXyX8xZARfq50uz5jQDG1I+4l17ep7bGD2fiW2qFq/ux7RmxconQAFmmyWbao2avu5gqt85CZQZuoVQZYTGI6lCwuoR9WnZ6KKuHYTvGXLiUlEDgaJuLbAWg5OAlC4I2CFcikxRBLguzLrAWL0kf2zs2zn4d5jvl1AfL+JfJ0CKB5vncsm8ekY5YXJVptAVvTK9gRu1XJgJKHpTmkb4MeIbRXI91VDnBzeApu3O7SsXVnru` &&
- `m2GA5bLPaZeZjsfNvxeA+sFAUp21PNPGrbxGgDBaR3Qv3GUyiFTchHpf2AqxeAg1m/82SD22D4H4YZBo0Wl0Gl3qtMbC602UFBwEo1VY03FYmR5PK/ge/FgjerxZ+DcDCVGCh7v/Y9yDe16XlH/V4Q/JmVDowzXM7t536cEFUYKN+x5z+3Z9Bh9SsWQFys3iS4yL0TAxyTf1x/MMktAhpWjFGt2PXNasFShajYyBb3KnSTF2ygixVZBd` &&
- `1djxEoKwImtKMDdjd7mMfNjyp9ddkdw7jSg90e/ZH5wFGnVavg53LpfYU33GVZfij5ZY6xa7hVuA2ri7ZeUC2XByZpsfuRKpDfUVdv61Ayh+gCWJUJWAVHOpfH+j1GoLR5pxMu58UF2VuPbStsTQ5N1BShHJpyhFZAh5DWc4w+LteWUHoGKS8U3tKSOinQfY8cSvTWZbI6fP8Ac7m3HiciIcSehmCC2lqrz8wu6LlqDXWldH0v2scXKD` &&
- `23+2/j87hBjDcArM4ItesUKMtLF8MU22wy+WDal+ZmBv7SPOs+CZShf0+V9tMN40psWFk3bRQv3QS8AcVtV2q5uvaFZa59N5TaF2+eiZh1JR5ly4lpoVWbeWh94vgaMj2RqBRmzWfIcDnmo8Kbry1n+yE2BQGA+uWhexhzK4SOiVX9dSwOMUNilIG92AWpAQE0kBFjau2nJOem2yHXrMNhZewiYUw6YTXcpWVeQaL/ANR3t1QTnC+ixV` &&
- `ZsMtVYg7+b9ZfxYrYN6PvXrNn/APg/aX8juU34iicG9JQfxmohAobr7Bzi4vozRSLwErDhWTmMxLWKI4dqveuJamYVLw4fF+8FHZWfPdh7XL03Id1/9RuFHSZv2/3Fn2Kuza5sO4nb54Dz28Ht8Q4rRBrfZ80YhB+im0ymb1DXOYubI0LWBy/Bp3C9lpIJlkwMOLyxLPb7Xa2re96eYKYeRSDeas1nPDtRVLQwxbggLFAU8K0Y8QEIy9` &&
- `p8mhzL93pYhqY3ARrIvWvRxmJl0CttMIGY3Xri6PoEALBsLpr2Vz1zLLc2BuvBb63djcvRajk/XK45C0usF5iPhPNED7t50fJA3vozZNI5c6vBnoVCBfAJnJ5F0brUM5Cxy/qd1MeB6LfC3t5JZhtCIrpY+7NFUE444Jj19oxdDBQHmyj6RKOQUe6D8nnXI9T1dz63LhwpJC94XJu97hyrtHCdruPZJgeL9wG7whrDRagFBZe3VpoT5q` &&
- `KaQoc8I/vbQRdBS81hx4AD2hpzwIZ/b2lgnXj1fSBa+a9d6gSwoHxK/aXeaByOacXiaGD5CIPhE3xmZStMwed/3fBDACrKFZi+iha6hTbNZPPKfmvbQroe7zj198gQeG4prPJFuvdGQCHQM0L5BYzr2LEfDUsp7iksrZ5Y8v8AV5CVhgAKX2rzOeNF1PO3A84caujMFQRZNtm2h8B5+rsb0OjK+XIHm3FSt8QOAgxcvVEi79ojfUX4we` &&
- `p6YxDBAUAoCDSvQUfS2qv67qrCMv5H93mEYoHk8HzBOoI+iUUZgMwvAG1LPHdHxGfnQ/Eo6p7ttr0U3DeDsNJEXA4L1j5jiodgc8sV4MmM5iWGkVHXLxkw9kDmrvF6ZzDq4mB8s51l195sEhVf33l+FHZCxzNah0hcO5j0lK1g9l9DKXd0NJRXqVXiYZa0GohTbnF95lBaYBUw1QuzCmHe84uMpUuWG25sA9AjeizeQEzN5c2y+OOcN1` &&
- `m4SA3W0+HqdPmrC4BpOgiVbHrR4+tDOssu2cKVd09ZelZmGkWEZKWMNlQVUBVYLauvG4fsASpExR95d+gAVVgWlZxMYG7Bpm19y+mPKFUkptZSqVosSai0mg9EL4cen95nNd6HZPHmWCfkGeLM3fn98pR9LNzYzb7gP5TGN24NGL/b4JW2HEUWtr9+TzAv4SoD3b+0CC+R5etl/E05mbDHgrj3ZeXhxW/BM7bstXGPTPd6cNzWMvNNfb` &&
- `+/vMe9RPtCdmpm381WIDfOG2WojFYsOfKuvXzMP2fyFW3kAr9ksUrGnzKLPV1PwV/eyqA0pw5XBUxuuRoMPNdG71FAsqKLvBBiYKN4Xhp07pdJdMzVbFYAPQrNrZCF1Hb9DwtaKAlFBBbX3BfR7talF8y6XmP0DlqUUi2DCMPjYWJVg65HyXiyNd3TBnVH0JQjSTa/plhzd6IMywnNDuaMYKMR7vLCfQ1hjOuJQGQx/THx92mYtQnUtU` &&
- `0+YiShesn4tfaYk10drc+Rn6H95jqwJWVPzCkO1tLW8basgwLF7i65+0sht9iH2CcXlC0euP571uh48AzTq+/9bq4Rb7Fb35xN0Hx37foVBxeT/wAl1L9yLPUmdgmoEFBhNcP/AKjyuBxaCMYJ5pfzOCPfkDnhbDHiLB4RS6nGPqb4i/3zMoNg2ULmg/KFyR5FKkFOhk3vUI2Oqj1QV7Pz9ajSJTSGu0b9u4TMCgFAfS4QfoVanBFjC9` &&
- `5tRHpkfZGiMHDW/wB4aQQsTSfoCZrNu1ZPJWvXxCeikORhjcKGDI5uZUdhfJ36/OctiITawAp2+bVf2ZstnEbxY/JWNvdA8ZYvMqMGm2QEFAu8yjQU2u66QKVv3rEADiOTqlTikdlmSWkIC7pJwDwvP6FcjGA+g6z9kTutJVtzjjfxNftlGHDUs7At4a8YqWHoUVUdYKyylwMZ1nnfHcrJ0XOuX1wm3ZDx+zIk2GacqaUTfLHK+sAAx0` &&
- `XeRjnR6m4KB19XIZyFnOb021RnzBGVzTv/AB4l/W/otDSJ0QYABCwqmX2RmrGyIgsgaWC12DvxmO/rgu1zqxx5iI60AoJr26iu5knKne2GveqgF2xEchttBf5haKS/orH8wrqe+jX7Tn4VcMvSFPamVNKoYyXvAGkypf0goeokN+nQ99y1nmVjBaZ5Z/l89R1wAfoyegjJdBvcOgrLFwdVq9e0ZEGujK0H7PiVprljH2OHn53D18S++p` &&
- `xH6woDS0zNcQENl0KukVe8ZxAEBfRt1+xCoIK8C99ITSyuvZ+WO3KM+n/v6LwT5CAlHcLrkfeBQCrXL+mt7och5nIOdy+Dkl4i2pbGRoywyLoUYQi5hZza2TkbX8pa7+pENtkO79R+ONcQNKk5VjbIMXh37PzRzObiAb8syD2b0fxF2yQ3VqOvwSaCoe5YPDlzKhUh9k1NMVoDLhcsjAUKNmGJ6n1gvJAFkQ6Bo4FfdEd2bY53S8uQSu` &&
- `YCtRXgpT7xUVxFKvXH2GHBeoLP2iGrPP8AtKC2tBl/M4FmirY69qBM1n+N+JjABSJuA7Qa8lXHx+POHdpj0AAPhjB+XxKCuXxDNBhTDVdjRpyKYPpGOkya+1gmzfw5Vx4xZxdcYA7LDLUeO1VqyZ6IlsyGoOx8ef8AYS33RZuX+CC1UaGKcP2x/T9VQpZPWIhQ1hrUzudHsx7wLuXILVdDgeH7ZJXR9UHnKC6t4PoLHMszHyDGVVyYd2` &&
- `daR0u8t1x8QtasbDBz/faDGABW0h933j2qRpM2gL+YmKI8AH8Onwso7ZndHn0pNYTBL60IW5MPTg8zlYAtnBpzjveDDmOdxW89P98mJSQ3p1zYAt68GKjIRmkZj6MdhhZ3G7hyiLq7l4exiN4DFD21KtwxzDqGwM4uQ5t4MZrrM34WaeJlQYtUu6K1g2tehlj2sOSOVslVVPfl9YCnIuAp6Bfy46+hNh33u/JgPyjmYA8ytLj+tQLGsD` &&
- `WLP8ZjfTaq5sNrBx3Lv0qupdOVPDmCoHwpud5Kxp0R1donqOw32lQKFaxt9r+jMGnH+Th+6W4sFd/Te9xuBAp0iNHqQMCUEBVpEswgNXbh9twneAFxYlPGnsy0V+qLt9u649rhfakMxJpcVRk0wbOT2/vHMUFD269oLZFVZRpq8XhzGjlVN45evBvzAViqDyS9GE84tb0XTyjxO2eYXkjW1XpZTppFrZkT3bFlSZSsMpau2Ap7M2ddBK` &&
- `SJLEa3eKbhCszlW6Xor0Ikke2o8l4/MampQqR97fvUr7zVqCQuOFvhuVcAKFUXeTA1m9Xrceygh0qco9U92FGAQhBoDsK/cZUgFfKIuFbcGb4KrNhwS24wRCbC7VmjQ8Fte7tVK5yKoqlZ9RX63WlSKr7794TY3Kwz6QG0xZlmAjq2bfTNVzANBT6oX5icIeCvzLFLYtWqku7rUBzO0W8m6uvceDT2iZrUgCAyVSX1MZhpXAHl4111L1` &&
- `9eAE04vP2uFOIurGFFoulaxORCrBBmlqDrTXaMqfPmHNqlpp8fnMRu3uLU5bPkb5KIsNgagaS77j7R3TF3p7MF794Ii90A8MSyocRAzGw6V3RHw3x6U+SGVWNPewt0q0ccsfTCdowHmIjgOEeYAFbkMjGN5A+0TXQF2X5fCAbWUhlY/YS1UUNPbatr7vrCKCOysSlVxGkolLox+g3LJQSwy8vCWryS9WP2I+BhxKGX1hS14gNiTcGPyj` &&
- `ECAFVbl3+zDKcADS6xz9j4lp75qror6jITHa5Ss+i/W+aaZPBZv4gPgQVa0cyt19LoHDdHzHieCIByGzs45PQuVkdW7L8l3s41NDPgeHh8cnvXWiip9UGqhxTSCzrnf8REpk28Pf8AM3erVdxqmVao+wQvF7o8S2cOnvkK+27OSiaU0Guof3vUtBTDbeXEbVl1Vq6t1dW+ZYtWWLautgPRgCYsqLYB9LpYUXLnIfQkg21A5VhhkfBmDL` &&
- `ghIV9OZRmWii6zWnTUvVq3Kn2qiR9I7XgAKNQweU5IJcIoiFNIgtgkFfQsTOZDyrxuKNVe6y+UPFr+i/VbWgVBnxLu4EWXHSaSQejLcYblhzCrcAxpULTLdscTCRCmQd/g+I/xeAY+ZZbTvuvD/P71YZqnOSo8J3dBMNvU8i7rmO1Q3a/jsmUFX8ePSFGW60uK/ZXMS4dA0wy7jxgDp61x43klbZSK/wCn7QwgUabGuYhTOzbmFe1X/a` &&
- `YRRWjz/EdfuIMGPmDT6ODybeVCCOI4+AMzBa8GNtF0tuok0rWvBjl8r+2LLgUMiAXVSGd4wYpuqlnJSKCH6Avau6v7Fw/AubdjCCgw7igvaPRd/TN4l5uUbICK6gaqG7YmEtFLalL4A/pXOImlHIN/Pye49Q5nFh/GviAKysFOK/iULxCqbejN8uKJSqtUAm9VHdagjH5+lTN6MZLbbDD6wFvs1/5j0gWWtj1M+w/TeQN+wrhlp7hgr2` &&
- `5+08pjcPBfLa6feNcOrhZRUTdoZcmG6Vc0anZuWtIlKMKLz9pewipBZhRxiZUMUEMXx7tfD3WDvDXkdnzKhd5YVtWVfPtiiFZOGoC+kNbq4FlUMDWLOd3hu9zf0EttBz81wrXEugoKmXsjm4zFsefoYDSUmKSCbD4lvj6LlifBziAI71XoQIMcNyLantVf0tJrHB6babBooxriZ2AdXrKplSGDiX6SKWRsQm6jz3GA+sEm2XAjl5wbYF` &&
- `Ra9phEl7Yo261iOUsE0ItaRxPWVbOyBOrjGtzXSquBuj7fFRZ+nAy0OIyIXi+5gV20Xw20UeOfSxoOAhQREDRw0+nT/fQFDGrOSuXPMG0FdJ+fJ/djDvIW2U1URTklfhAtLEQBnymEyF8/gy5qDQ0FQo9DZ8W4g0oWnIcuemrZeh4vXsNPrxxXpdspMd1amPXJrzHCyELyMvFRbgbkJdLKYfTmFNQKPopRghsfoI2XKJj7729oCUY19R` &&
- `teX5dQOQDKFW/qN8SejhM/3MukrEL3X4M34XUaZthk7HyNkBJFhLeoPJfulqpctnsfKVDCGlUZldnVoy67QH45CnrEtEdj5+g2uyeQY6/ZLHBNUuFIK9iKeAw+z2yrcRJiPaZ3LPAihsajFwFT1xmurgd6OxGIgi6X2Vxz48xWBxzodRPIVYb6n7e1JhlL3O7yGzl9qca1Td89gC06Wd/ZAbvb1Gd+pye/djYo5ybPZbY+5hKKGXsGhv` &&
- `k/1plNmgqM0kUrlDetVM1nWosMnnnYpjPoesThfcrz2OfTvcM6RIAspWX5JdvbD7yYp3wmB4x92DvQKSxwNMw0GQJLsvasLBnDR+u6sUkHpUP977ELPbR2X5JSq1dVrs/A+7Gfo5vDGTgemJr33bt3CCA73LOTsgDUyUq6U9/f2lHBBwwiu/ouIC8QTKSnuGycF1/g/vcSwGoIqZgL3Fz9GT6OmY+7HmaNxKtYplq+qZqCioed/wAspI` &&
- `nDHZIC7e5tZ9gR/aJNetxBjvFq42mfRyBqisfH0N2t7ll5/Y1gslE7kQjBu/HuphEd2Uv3eB+eIAy6GkXryx998xXzwO/Hsf4bVNFuX9z+4pAX5fzo/u/W5bca/wBuE7l1TE3Ds6/rFMs2GCOW6Xq35ZRcDwGV+TWWXTMsIHDFS7AgJ71RBQkwBbU1/aYrDG1ncZS48dKUeYueU4NUv8JBcIQFW/o4HMyY1wRsxbpxOQlk2pjRmUJ2xB` &&
- `FLLFs7ySMJl8+X+5wW+MS7yxZ6VXpv9G0B/wAfIYf9hjs/DTCygMuj8HjZnc5aEPVbYetU5wYYIsHL3CLHsXfrE7DupVxRqlcY8Vy+fpujiPc+/wBKXlAaYXqUXTF1Qk19eV1+Bbg7bjdbqaTrLmsuOOsxreIpibfS+UwHEUllTlna/tFnkzOkZpCDRFlwKgmb95p3NRxMlBCrm6kOvEvXa00Ckdii/SIOQaRR9RPmbI8LcAGfj/gOgA` &&
- `NYHYk/3MqsB9pVRC3G+DrxqJURvAvGb/eBUTkE+V/Hl7+ioiApjcuKPFcDoioqoeTuO2YYwYuVV0ysM/Aup84LthWvMW2ZxMxwS7lW/Q5g1Kv3zIgD8wRWHRA4s4fTKxe5KvdS6wAXot47/wCOlmYFXFj4S3ywonquT+tRu4U5mks6Y4vMpqV4KhM/mcCVQ3CrUKMymkBcaqZqDBPvJviQsHcVltrLe/3kD5JmtpsTqABRgP8Akh3UNj` &&
- `U336/yytFTwlX9GxywaXdWh95iziCo44Jdy8wDARNx/KZLqcpwTNNIZTGZW7jLUEKomRUULKNXzY+8IhBoQDnhdu3/ADBA2FJ4hqC5trxRx6GX6m0emd76DV5ZTsmKVUl1EhawOScxM/RibgLsxSjW11KtQAvtLhkJonSBt7ouJ0Du1P6+sGoAMG67/wCfYeOBWler/RKsXxNj+Az+GyUHpx2CZPZ8PEDLCVywLE40bECOZTUJoOpToQ` &&
- `P9p0MpU5qgyJ1KA2UqmACndLXacALjZc6/6H0nCn+IVldsV3UKqFS1V74+6c8lTkAlWtPT0+JjyWVdGLy6ILBuHUhIVjiGvrcUsDzDVFIEXLD8nUztAPm3l7FvtMsrwar/AKNBKSyBBrWDoFwwYbIpIhGXWrRXWvEGHu58D31eISIhYjYwRGizBvcRuoCp9WG6i4DB8q9cJyQiFl+KbejzzxGJLYtDFjgauLa1bA9Ojx/0qWUzLoDGHu` &&
- `fxFULypP2hNzEkjHa34ROoxZSxJd2LDxkBhrYLYra9Ba+YvBGafqc8vHBbPRxvHqbILNaiwhuFG0l7whR734mj27WPVMV4N90pEeqcdry/t7/9dbnqtPXiN1vLVXFILWuvkWbwoYWJRAaX/qbuTDhmABRg/wDzp//aAAwDAQACAAMAAAAQ88888888884ARDDrK8888888888888888880l3isemBc88888888888888YEoHAl0dmE+D` &&
- `8888d8888888PB1yRAXh1lwOj888Z88888888ar7wfQUk2OHdPc8HEK8888884knBHIEl6AFnQYIbS5l8888888bRBVmcz7gIxM0BJYrDAh/kZHim5zdpaN98q/wBvMMOMD+NfBn8fZHBL+BHCY74KX+/A/wCSfhpE/JaV7lpSiMuvrihglLLaLDV0o5LutM4RowRmdqbpx7redMzsyb8KNWDawmdLc4Ae96L14MmXi4iMOgLJZUPBiI` &&
- `9OCrJIWKKUm4x5ZdfAYe4/oL7TN3JpzazTyFNiWYhI5qLuWm8fBJ8PLy/Hzxn5b7qnEafoBe+cpoqTPsOHzzxZJGasV+jjUqgyB+r57yzzzzzzzzxqFIAobBOXJbhGmLzzzzzzzzzzzDf3w4J9lpNrunzzzzzzzzzzzzzxjfSdgwQhb3zzzzzzzzzzzzzzzzwB8VbPPfXzzzzzzzzzzzzzzzzzzzzzHDzzzzzzzzzzzzzzzzzzzzzzzz` &&
- `zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz/8QAKhEBAAICAAQFBAMBAQAAAAAAAQARITEQQVFhMIGR4fBxobHRIEDBYPH/2gAIAQMBAT8Q8PsRChEF7QbDPUVZ/pu6IihDOs3E7DLuVLEDOqF1llsyoSvHqIqB9TKtuoEYDMOswspO3rK24RW38bjejwCrzAZNQfKWNRhjRglSy50JtMxQtJjDH8` &&
- `MgOJTz4DCOcJrb1YATcqb3KJzonSJMEcN661GscKYhvN+8214GUKmJiEscpcbjA/aoUcjv2lh1QHLWr6sAwXByRBdxhTGY0dY4xru79OUAm1fBbN4IfGEq1LLjiIXhAxOEBhEjiN1/H1i9pfQgfVE5RKaM5+coBrbro8vadAfT9somfV395glFsRElyNMMFbuGBKvrKDUVBwfs/Tv2nLS5V6oKMxJykabJqEUyhCcQFD/YkrtyZf5MwU` &&
- `MZhb5zVqjCxDB6f5Fdq+1SkrA7YjZUIF2ixmC20jls1BRjitLfrGLjwqqIGMEx3CpeMwG6ZhMhakpC61wCKPtNcAohH8nzv34OSDTAWouKnnJelyiWDDUE2lsGCAc4lBLUyztByztBLcIcRzgGbeFSuk0z581CynThpVBMGoGkzbamF6GGYuiIJFrMSEAdkolBiIYO8RE3wMkQYm4sMRQJy9oBOCopg5bjSiok7thlGBYdxsvw/wDIiY` &&
- `R9SWTN+pMjHy5ecbSNdsXpiAOo84AuAUjJtceQfm+AC2W0PK/KBIRQz1OfDUGJSI5wcGWvRqDoh9RGMtToOO8EajQqUS8vKUaqWo8OcYuRlt9OsWUxfSJdcBpfbGHUpxLhTLBg1HOZ+JbuAMTU7lxlL2IrolLkcqnNYgBjibg5x+4q5eDRPclkdh8/MBxo+3twzwyi0xiG4nSJ1ItAjURxAhBh5KwirF07+/AZZUzsY6y94gu2HwY79m` &&
- `mHZDKBMnzl78EZUsJfBZS41qU5yy5lKplhAxTrnXo7ju7Okpry6cyX6Prj9zAL/AgDoaf3LNGj6MAc7ZAIlwCM1wM7hKlQOAxigC1+EfOV9ayteGQKWQYHXbjWMSgmpcuEGPEY+3tCvvL82+IrcA1lAbVxcS5ympngGITCfT8xH8craqUy57/uZqAtg3XCuFRBtVCAcsYx1f6VoI0uCfPODMFsCOPnfrzgxY4ifu+pMrFRV3/WAwMshn` &&
- `/l/wD/xAAqEQEAAgECBAYDAQEBAQAAAAABABEhMUFRYXHwEIGRobHBMNHx4SBAYP/aAAgBAgEBPxD8Yhd8obbgwr5IIXCDJHSHiP8A41KYlo7RXmmAzM4AadfSPQ5QTbBK1oOf+RgJbazfzAGPzgdJROsbcxFJliNmGWI4mCIFYqDgs7N1UE5V+dJfWuv+cQLVo/A0Saw1eH0P3Ni36/P9iO2IYXLI9xHGoIaliK+cOwohsa9f+ClVXT` &&
- `GPWWKLNLzX1fOr/ASGxcYNAdg7tj0S0vUoFkqXUslVLnMZLzmYMTClepxPrusQKJXgK8MYD8mhfevlEv8ABv8AHe8CjhB7y8LTz3leiNR8x775xB3Dh+nv7hqnHDfpyg54jXAN1+pkIQpYji4dou+9XTn+5b1r4RfdwH3wIhnfJp5u/lAygBMHfzKfgu0FuiWQLx/sA/v/AHENHLFleV/kWcwyDwEFG6Pnrxg45R1t+OHvFZnNlYmCNO` &&
- `jVXMRXnAdq0YM/1jNI8NXz4vVmAVc/0fuWPDQDTXXBy485YQbQX09ZoTKys1s66VLyA4xc1jYy+hKRbxyY68POPDM0xT1cTgnnUOpGvS+PkaHrmyKi+CtNNM6Y9JndoVq2nfFS7Es2hkqKZjW4tjmWa9w0YUDrvvf3Kayt9O84hKdDL3xi9CvPPzAaoUYDGM+7Mq71fADWGMm3PLbw266DZRm7Gn4fbpxtmAqBbN16RUzPOteZSHTaIU` &&
- `AcLWn1iGH38Rbd31jNyV3UQLhI07w4ECYzylTVlU9eP09I3cRWxNqYhQYl2nMDWjQcId7u/SGsBKW8Vx9fAlpRrgq+fU0/sqVAYsExMkZO2H6PBAF0iY2rfXp075uLX7/3vE7NqHIFW+JmjS33ho2JpQU4v6YsCW8va4QfUTDVa6QzRLyd/uG9KuFOj3rBTcYfPeUodYWg1c8tLg4hb8RHoGY+pRbR1+3dly4ZiEi8p0MJ9xSGj32+BE` &&
- `6jB8/eIhpC4GsVC8vfMp0aypqWeUoYJsk7eUEu54CwMQLBqH3q6QGjrEWzR7P6gHQz8Yq/7AxGBtqs3aBQ6ptH6Wu/gBcwuEkdedbOefQ4xB1HwRDj9f2KOssRX1O8d6xQnOIc/wAe/iHjpiKbVxJpl6eZp/sXheAoe9noRyWj0f1L9I3wsaAvV38tjzhp4tf3129ZX9TGOp9jH3FcetY4aabw8GLe/WMEFIgMmd105ge3huOmGgvqvp` &&
- `EikNImeEe7NlHQxr884QjFB0gER6d33wgVGp7/ANxXnKzQ6J8S2AZibDD4hvt997RHE5SmbHfesLLqXRpRuw2Nlf58SwS6zcYxMCUGYoVM6DHlnzeUDDoUX3rzh4jWAuiPQV8m694mNCbJs949oIwnx3w/sQvaKAc7Qvl1gPQ3F5/ao7e29yoNTlEOdYBtZgDSEdHONtJUNpAqy1jPMwxCaCvBKT5YGjwCnOaNVhx7YZSX3sKJnHKuEX` &&
- `o7XStHz1F5nnBpR4uXJYpt/IITAXKOXbpAVlGceesv2pcySEFLfTzmKBbXvnDYWrE4Ot9KrznBl3WXZKAOSsb06Uaryrcb4HS1R33x8VWLXb26zYhqPfDRjvmUxEaEQusJWuv+TYeNbLr03iSlPgNShu4OiiXVNdnT1gjYr/NJsTV8U+utf7LwNewSqvemUkVxH3xloqGruztjUKxv8rBt5vV6ae0RQLdWsv8Aw7UW9fsc5WUJ6nls8d` &&
- `ma8g0e+EZYOnt1OUFHJ6ezn0lVFqGiR2JwPiBB4WRKYljCiJBQV6b97Q7iGzYaAviG/wB34I1fhorKYeENFQdbM8+MsVBOIqWossZYlQLgUzJMG5YzLJsy6v6Q2VB+QChc1NuG3fn5S2KaNOKJWJR1mCU1mo8AoWrxTqF/qAQOu2d9PzkUWSnq+lVZ5NfMTNDv085VLA5LgKxKlmJpUeBuBwFGTngc6z0+/wDxOFLiFdLPJHZ/lVBOAv` &&
- `U8jF+cSoRxKvo5H1GBbVmpWYQpxzH2z6PnNeQuuIae+a0gNB/5l1TKVe/rrCuIf/L/AP/EACsQAQEAAwACAgECBgMBAQEAAAERACExQVFhcYEQkSAwUKGx8EDB0eHxgP/aAAgBAQABPxD/AJH4/R/U5+jn1/R1hXEfwF45oSvnq+riwAdXAZFIBs1rKy3y+fOHTxUdr/bBfUQikBpE4ncsinSeP9MKk/SNmWKevmT/APTCvsQvUhgmhc` &&
- `f6K4wSsDuRSYKufTg6nekytMdZbUQMUk93lIiGkT1msU6featvqO56+stDMCKzWeINzwTeLuKME2AeL6InqTBzqhZmwWxvVIDxjinVABTaKg8/TyythmQXlV0GJZo1lUSAKKoNCIojmkwi8CCfS79nvJQQUzFBPNwdX+hjde5GWHpEbTWOiBXOQtVkZoUWIYAKybiFhNCdP23hKyir6JFY9t/AFBnO29HAGbaeXBoUE9UT6bmiwUlpCn` &&
- `uKA3s1G6KQGgSTDzoNjcl4JGUNhRgFVa25O0cFPAONOfWcTCoLYdkNhPTpLiCY2jJqjZgKHBPBnv8ASHeRzHJKFd52HnpXs0kfvK/w8gAKz/fOGneoeP8AnT9NYNrpgBVroA2rrWRIrGommNodAo7ozXtSqnBWFhFQNGwX+6G5xVrIpFaJ3kCFHu8H134cK/vcq6dyVHU3M2u7jrk4iqD8b0TwT++aNgb+MA4RChRKhHYP2Y11hGt4R4` &&
- `xGIlbQEuBNurpwmS/bmnTUChNpfJhLLQG1p4xCLuxjPDn4x/lACVIQodf7n7n/AAUYJ8QuX5weqBsTT/u8bbVb0E2tahqaEddhcAAZYolBRGCxwUL0hlcLvBq0/wAYty7xsnmJ84bxn25jNxrv1iSUjrJGypCMXG6UWp4wAoH/AEwE/L1wjOk/tnsDhmzy8NifIAXgG6qAirTQwklzxyFXrV9VJfbiJNFlw/kut+sawcd0pXQEUugrr+` &&
- `fNYrSAq4EUpB2T9+5NuAlsylL0UrKPWA9MLy0IcMZa9BcH4O3i+UD4L64I28AvxR1+8jKjEJO4BaZI6ZJ10zb5GdIUzYG+JhqeHWJLUlHBGgenH2/gYA3rHhp7ca3dzxyCev8As9jpNImVi4EMqSSnV2lZ2ShECjYEriSOeNfxv1jB0lxny/484bXHb37OFjpWpHgPU24dOFtZBQ7Agfz1aRbLy4PZ69ppUApEgKwDEdoe6qhdEeBFKS` &&
- `9JtMJoW166kMV9tvbiFtLmnmA6T+cS/wB2QFL5MUjH4zcinl8YLwnUzQhq7Mra1/jFTrfgxSR63gRIC8+XHXA6zlvHcLdk3XnGkIb1W37yVAlixRNZiLTTzAjDVCoOtFmUhBGwSAmyMMvmWfY/xo5wneRuRdOWhEDAacie2WTbwR8YhkVyNo6T+eodcesDgA6GfVq3ruAS+pRLRp1UXmrkQE8XSiAKKWFTTWIMRzeVe/I9wj8YHrFrYM` &&
- `/9M1g9WvB/1kxbzZhmwxN9mNAtXZ794IGhtfLjkSZsXmKjV/OCok8vnHAYO/vAlOg5hiPF0HnAp6c5jsc+nMVegdVhizKay77GUoC3CTDU+gFaCxDnlt9E84fH8KXgsJNpLIABuvgY4lDFXzQSCQwTBaT2eMhML5ZSt/nmccGeIJWpFJRfePA6qhZUpAQRHaEDEwjXRAAEvtNhh4ZS4zpPxlxu5DH2TEM1O4UNJuHkxEdmkxjSq49ZKb` &&
- `qbmKOKPJ/vcuk+9f73GU6u8gg7Z+2O+g2+8frPjJ21vCIEDrN+UsyaT3HnIFUcHlwcoKV+MTWTvr6wr5JLUFAIUcFDZBbNAk9GKqsikqVVVzYlBR28fwc6pvJI+AFx2HQQX0CCwupSc1On1UgwFXrVWvVs6BIBZp3jUXNQpQaCnfmfjx3mLeCgPg/n8wArkQm4a2QBQtBwKLchpBcaoTwMRKNPTQAjZUuXUX2Dl8BIhTiacip/+oMkFt` &&
- `pJjoSXjwnvNSdM6wgHu4RS0tEH57MWFgD0o07CoJvDV89Np0iZLw2LrL1GpKcWSrvlducNq/3/APmQ5YjZZC4MoVOjGcNIE03RpTms6tAZl3WuHy5OlfM/xjPMF6dYzAOPrVbTy/GAgQcBtzduzSgej/fGdEAQIRdlCyWh4KskkAVJvoeHX3MWlx5y5eXwMwvsbhUClFzRX6WSGniShOPOxNGol9KXlRbF1KYvlqKvAMKhHcIAzSNxx1` &&
- `XadzoAEAMjoDP7ZCCw/nKAqwMVxGtDhRu4iLeS/wBKAQ7hKIqq2iiyKX+zDwDQfa1JXVepMTKqaTrC0s2r8YWOg0Md+vOGctjciIeUs+zNi/wh7V8SbU5gVw0s+y4NKQeOpeQcqw2WPmihGjFT+sFOhFaDmKHu514PuqMUoOhsQstHOhKoYlWYKjO2meYZQVEGjSgIjaFMn61Ra1IE2UXETSQSQouol1FDNY1lZoJsxbV3+gVBtQ/7yI` &&
- `Ww18sYsV8DkSh5nuVb791wLIpoV2uAah43MHb5GSoAEmwKeEilbtoSiQCeygojC5GmwbDy76yO2JEm0OmNCECjaCNIiHibSaBLKJHAQgUiahhjpqhdEXH8Md0ll6pUUoMxqQQbtiwYMgchEabK4I6mj0S2iWAkBUAkqb/GBFF/nPMLVSs3sruRQmUY1vjgmGmNkqMayqIFFQ1rVKtbVxSs2SwI8Hyy8ccAv8TL5lU+wywj4SW3UtiHkV` &&
- `aMbcjECALxR+XlC2EnefT2aN66eT4+MM6aIt0KNR+TfzlEGQOmgXVNwXVZm3UCIoeUdZp/S3SYYUlLVeH3hs4jtL4pSnUWXDmqV4BUBkIKlfNdoB+7I50PrBQRb7SlQxdmrKuFtnqiiPaugcfdPz2Be1QUEQiF+MTxeY7E0HhJQ6Ku0VrSykniwtk8sDTCZAyHyNpqTBqntFmUjvILZjYNcqI8I7hA83g5Wn2360dYeHSezJ/XE7ognQ` &&
- `qtn9sOhhvlKABIyaWzggdCGwUBHFEJg2uP+y6qK75VW2FYGPWRUlCmg0HEYUeHBiEAQvRpsmXCKZGCGg05rmna4xLe4IN7dVUaIBYKOvPMAFjyuj+cIk3WJsKCWLCyNFEMQU3mjTSIUAmxCqIUkgDQAABzDAK6wiUeXernMS2KQW3dBS1Bi4BoCrdgNgCqeAV5jEpWqIIQVDaSHTrmOdk4xg00AaPO+NFGPxlMv9xX5ucMG1cFxI2thH` &&
- `QVAwnGjqg6bhAEdCbIbNjjecWP4wPFxW5vCuI8TCPC4x8zoCrm0tETbJ31MaIvo/FkT558/jCDjO8FKbdYJA0ZYvIQI9uAAXbBoYKKk0awc1j1wzZgfEIg+wKF4XCSuMAro9A6ZMA1V4bFFkEa4aAIQ4XG45gYkSpJVm14StALAW84Wwf2hu1UKtiak68DO+8RtyJm+qBgENjUUoVAU5ECpjN6UIkjrL5IqCgsNCgsFrb7/wB+sfVFW5` &&
- `45nj9d4TL4z2s/Q+MWbUDC7y4jTBbhCjNXaTlF14rh8nCjiiti2bZNNw28iEWIKdDQVfGaWCjcUNPkjhWAKttREQDTaAkGbY1NEqkTcBtpalIVuARI2IKhzVIIXWHAgxnSiij5M0WDFJ0J6mzFAgXOFFsBp48nvIyUFrD0AXQuEoFk2xSJAlGjYN0oCgxA8tAeNqgx2WNKASvP0uhwXG4UPGDY/bOt6wmhRFSp/wCYWz8F5N6X/fObMb` &&
- `Utnwue5uVmWBew/YxxCpsoBIIFERRTwYxbUCyS99mFpXaCOEFZjGlKX1pHfvDuxzte4k+02gbQZC46YBhm6qwUDGHAsGrsUPdGqrTHvWzpgTtUc1oAADDOjDCfMg/D6yepA2bsleNx3AhPJjeJSUVtLhC6RwIBNQ1NZrATcJACABwDx+uvLiw7TrXQ7rHguCnXwLp9jXpzjjRmUEIaUIgWG2CoET2OQ6Z9U0G9aTe+4xhNX6chOVR3qM` &&
- `9iCJABE+F8fOrkjYVePTr9/SYobbD0SUQC9ukY6raKBLRN5ND5cWOd8eQhfsGxAMxcFsa010IocdvXZGsuW61i0TdNDpDn5FaqCDcBiIhwPcZAFYAjEINF5gi0rpuSTcsVHW3piGkWCW2foLs8wFUqljumgaFJF1RbxokBD4DuQQlAtdMIbKoU2W+MN4kgskIkGWr7843hZ0kwGUy7Pyy9UhqktWhLoKb3tzSiQgCaTZA61b6KglEGw0` &&
- `CYb0tBU8Z7GFY4bkz/AFG8vnEemz5cE1r095LFjJ2nNQvBOpBSc8N6oiHYfAi1xkrFwzsaTISimLhRHeq0IQ2uiCjgihUojTFAaVTE24FQrHrLhT2RNAbsixx3cbcOwzb0PFPnw4HIywSczXAOoUU3et+snCbOU7CJ5fnHBcXUKw5RFPHKBKmDz6N0SoPuqagbDlho5DziYNJG/vjzAVmPoJBW4UkU/QQ7MqVi4wSPANt5RaggiopbTB` &&
- `2vZO4VXqnYSReqhAFDQrOBGL0aiEltOmMm3Uz2a36lQa6MUoDDIKbDfATBYXT4XYGo7Fg9TKvnA3njY7Q21Tmk4ZSKPEiNtNCQkDmEViSh9v3C5zACWoAZEWBfD0wtcw1moFc+N0jvAwOJAmQJCBKoRWtr3JU1EN2IjgFB3EXUCxCF6qoAKIRovzfyBNDQLBQLVVJWHeoRRbwum0pudbenGqMSkrFLDyHkx4oA2kDoDQfO3lXC4o4mzc` &&
- `/uv9cqD90JNLNSUCu24+XiiOgCIJAjsJhjCe5OgDj00EqkCRG8PBjaCsL4rPbgPHKOAU9mbYJ4yS/s4RDXHBsr59YiqQgSjZdkfCmazLXqFgnbujmzCopAfTMJuIyLiExWqkkJaPbRJAwZPxJIEgdIjvD72VIn3hTCzbKmBTOw0AkaK8HLDxgklo3J1QDINRXRTxeE/Ls2GmXYHyv0eYo3ziiEIeOHArZEwweAKATEE/OOB+2fMBDGpi` &&
- `rrDm0bm8knZQoghjdAveNBEADgHjKZshlWsDRty3znQc9XLh4yZMTGmrwblaO90QAotZmWKgWDiexwSAXziCXfgxztxSsDRh+4un0Q8eFrABVAUAxRWQD4QNdpUKCAAMyGC4SlFtlsBGDshmUqooj5ExBmimzaziLp101emQoORo0bsgrQotARimgDEHTHLJORkOLqpdjPk7cq+djr+2+ksPfrBxRgHqK6MI6C+QKJCChgravTQCvge8` &&
- `yiSvZxxAeXLPg49sJSl3cmIAo9YdV6M8JGCHWWvg6/BoXWBDTgbha8Mk6pWu8CXh0nneHNhiMCZjuYCNihKbPcWiXTaK+fJpzYaFCg+EKwEjerHKDSI+THWIuqgD7FSqXgfFv7yalCBYgUDBC76EK4FFTcA40O03JoFNQAgEUVi8Rf0ssJdiiOo1Ca0GC/PnfX3kSI+DANnXEBfdwGeecHWWJgi2JlIrIMLCzW9YOJAZ4oLBPZ2shAln` &&
- `k/RcH++KraUAFR5+sT7KJ4NIci+FOsEXgKqAHVcQRkHW4iaT5xXQ7jwr3FFXphCAnylrvwCJk5ZpdwPs1Q8opqKoWMj4p9/b9sWrl81bsh8DxZuXLg7EZmDsVTdGDrHCLJTHVL3aXX0HVBDLtevGPuFDgfyaHzcHVSXDodov8AJHH5Pxk2XA61qB8ZZGsRuko6Ztq63FPlxYxbCHBigKgpYau5l+AB/kIqUTohASCJUsgQMegYD0azZE` &&
- `iuADQpk4rW2nfN8Z3KD+4BQ+XXzhFJFNmbdgarncsQLl8ESCFKbaTAAARRIog2dKBvtpS4AQa07PzzHzGNN2UE7VehLOmJ4YiFMfiujIoCzYHRMvpiq5hPm+sCSEh2GB+vL8Y4tfR2IIu4APDBtukIMTcdQgKEjdWScKL2+f0W4YgEVVdAG7hDLzLI2HSC6VVogHS+W8OwxUp4csfL3ATutZfqb3gzs64CInkRmCIZcUAWULsK8AsHG9` &&
- `TcCavUW/Pxg0uKWRRGI+8po1e4LMSKVaghWJU8sh5mPEQ2VU8BWFBIKFbDsIiADYOhCFC6O8D/AOSIvELvzWunWk4HjdyrAsCV2QzAoiTVaa/Bd8I7MhoLSyCD3x/vhF5OKycVVZZX1hF6BKQk0ER+RMbm+cM0cmxPZ7xeZ7k2wKJ0jWdoLM2XMArUNIUqyuj8YNt7eDwWJpggaCxmfnz6dGvJILNaHBRy74QgWoAWqoAK8x0lEEq06U` &&
- `RBUOwhUD+BjUKzFNPhV9e/8Oh6GDXVIc+LvXl3hoGIt5PPk+c6CQ7HgVh3gKqbXEPEdFTpOwSgXps2oCA0jVK6qLPtwx1ckTkrYEaIIfJippYKSISaS+HWvgwWCtb2Fi7DnDvujg1vqMyDfkBP7q/sZfJGuEFDwcA9HS2hjPSm1tiEavVmu5crjZg0VldpQgQtGDv4aCNAGgDxnCYwYp3KPdZ4PWMLtiNCfeSNO3hFnoPycLAcDsbTUN` &&
- `O7oTeApEtUFEfInnD9RLJGrdPsQvsPTGcJJlAonwmMoLDFK0BQHSI4w2ZsB127QWbqDwxgw+O4IILKWERVFCaQAbMBvAzbPPcYlgvLbsN4tkC0EHgHMBFSrWZi8CgzQxoIoQV3BoTjNawYQXd94YHcmA/u7hE3QnUGlKb5T7M83kzxEvnY4mXUU8T3P4GTDhARFJbS8EMtYOxqiY6lKVCslLpF2mjOCGlGyUH7PeHnqOa1dHgXzfvJU1` &&
- `6SX5UfpJlOneg3Pj4PR4MQWCDh3JWqQG2x84oxNZGZjyQL4H5yVwbm12NBG0JNpkP0hACKqLpUBCgKSYkhkoPxooQ2AJE+E/TdML7A4kKgUVVgi1CFCJth9s8DgNB8qtTFU/TTFri4UaUN5syhS9MJ2E7mII70+MtpiWh7dPhPCcTwiYj1+xULfIImhsBBM8mH6MWCPJdjZNx4+cMGwkEIAGgPWJGfNH/mOPl6wJ17RTVJS+BfOBPkcw` &&
- `IhIXB/kFiEqVddtBZbV1dejFLkG140+n9zDCMwnhJT8mb/AA1/AVdNNLLMTVDzDQw+H5y4GuPx84UOhcQLoXfAiqFcBv2nAe/+e0CKru1rSIFIoOv4l4/oUEHvb8HzkRkzc+fgx2dvYKaRTi26TrZmnP4Nhb+h/D1hpQSzIRvAUIGbAJciHUMNi6e4Lr04LRrztMNpxPqWDy+jKj0GFVTwF6cToxeuKhGRT7YFfAHjEMI0FKMntHy184` &&
- `EmPaiuR1fB+cV2mxkF1/vR/BD+4BaPhVrwOjCMqIwr8sh+xjl1o/tj+jqgSkqSH2dwU2GtuH1iYSvE6ZcgKVB0/Dr98BMiKCwO8wAD5LyZbUo6Umw0B9ZBdr85c3grhgQQggItEeugXOgqbQ+cJ3G+jBaa+0nwOgnSKRIcb7HeSqQVR0is/tP2x/DdBhrSFDSb8PmEzOg4kSkRilEcYafgCC3REDaszj5ZyeKBRSIiJTmEnZQUeYpQgH` &&
- `KoyyPDhcWdkDxu8UiheLKjBpCZpbRV4t87EUJr1qjWsjLM/eRtQfbz0Zmm7AEA21BuTyFTVEhQwg/Iof7ZvIQCD49cUx4CEnhQB9sMODKzybQ0UOWCyu7hAU75qiGCJNujyxDg45AmxPJmsOcqRAhqIUfDO4xaIG76mqgfESEIYpW8oRX0AFWmIufPRKh0igUh1DpGQ/s5AQkFRwelp7EwehkO0GsVcFSUBguVFoNdvbmn4qZa9GWBUo` &&
- `XpJBBsTBd4gH9G7F+Ty+mV1kbp9hiztshXhWtP0B+jsPj9POSUeYHeKIBQ/wAZvlQ2qmmefrNfVBShQJu4aVttyAQACML1zZqtFGVRs1P0hNsyz7ViJNArBVA+UyJ6DvbmyxThgbej1kJ3JoSiE6CfYdQTmqtC8kV84+t2Q0sUGukEVFDDDNplorRzSn2wDwRCQoeGi+smityiiWbgpEUlLcgIpxSGEFFIRKlGBr6D2AvSJKLX78qUJK` &&
- `kU6bADgVUeAFDB+nFIUsRooiIoWEHRgmBxAmcIgECrniCDxH14xSJgwS/ebWtLR/KZxg0s/IQr8Z5RGUT4DGNibsiunZGz2J8ORF7vDjoJIRTiNi72AfC17nnEgMgAwGqAW7BQBEcxHVNZ+4aV4DiBY2AEAGGtilEbDm2rmoKI1XhIhSG77AwTalSEB24ADr8t5f5mAmJN6ROPnEdgpkMHEKEFWvGMxr1McQAResbtjf1Y6TXqeWiiAM` &&
- `azgS1LtR0WBKG74em9mu+dEKrNuBl/SGoQqTRuvGnCeLsPEguP0BQogGk3Y4X0RJQXsVpDb43gpVJmigPxxxDpen4wagxPgEpag34wbCwBahgoYJRYOPQvX60N0gl3b+Xp8XCIfQGWxj7cIa0GArfPM9pqQQ8XYjHyMrScKbTWfLaU+gjO5o0INy1srYRE2vca8QtddFoEkEkOY3a7FLlEvNN3jQilqjLVhLSUV4AalifbNAH3miSRBt` &&
- `SMEqCCxg418slIl1mQEHUMD5TAAABoKqCmqDhytkKGBKLWaJuAXHiNDFfKaqvpThZhxCiXvR0moeTxfHDcF0FBKPKI79nvCfNsVvQalUACqgZ5cELgFGQW5EC4IdCgQFGICFSg2PQ+Qe4CGgCCLwEEMDJdwwWrRQEFPBUGjzjRKHjCOjWUH8DOxMAGsHlS4BGqmrjgXEm+0FYKTgaQoHniHaJ2DTN3n6MRZXfKz5+cAJdt1goKh84Aim` &&
- `McoEH6aSfUNYO7VlAD6C5p3ToAqVoD0BgQNBhfQFS3oImZqV6FwFlEEtahnBcBu6waWo3hIaDjDYp67kWl1EEVeHesouTFAig02gfSCVgCmzxcf0ABBbQIa/OgfbkwwV/e2MVPpMuI+i5vXlHDKhePHBXXE8QRXYjRgYhEKaGLiE0KkRFIgb1JkKnJEiCao2G4vBAVRTBAIE1QBYzeHsxahBFQ2gi7HDBP0FkPI6T5MpqD7DjCarVyHS` &&
- `wwnhG15qHOmMm8QLeNgaIu5hkgswKBNIiI4BsbsAOkTIkZUwYLFiAXZ8jFmiCkLNoCJyQ8jwSABbRMDwAQEBh7FWrG8oKKhUF0aIGCAh5zyjwsw4cwCi0Ljjp5bFVOuh5hKxmoAVapZisA8THf2VlTd86Pxk3XITjcJQ2FWvz/AHx3UJoXCOx2GF8DxlmzNu5DpqQMmD2xJ6H1gtHe7ZARUSuzN0RQbQPAVKznv9Hm8B0YfPjCNEF3XN` &&
- `gIEd/okTwVtdUEALqqlRsTi9GAK1Vm3DYJgiUbmzp6TPagU/A7n2NWmYpAWIkRDErvD3r+GQDxJrJQvGMAq9JHlfOO+tFODFlAZpfOsTe+v4wCSJe5qyieYvjXj434ehh9BE9jlXyft5NTCaBSlS1UCatftXq5USC4RzRfY2/+4pHAUm8uETFAWALg5oWO7PHmSHDLhwBfYBGlEQKhdMh0g9ydEXSy8cDCQJMoNjaXBbLcU0Ngb4vzk8` &&
- `gsjbgGhSBAs8tkiNfjBjrHcdBmlQQAKqsM0lBKwp8MU/ZchyB58ZFqp7c0BYGjsOzEoZK3eUmwJsEbCDXvYwwdheH10i4XOx4J6fdxKUKXbd+8L1nRDZgsVdxxo/EOO0z0txesd4wul2SCI0Cqkg2GGAHBsC5DQQypL8fqUBOhQUSKuk+fTGCdSjaf+nMVVvc+DFyqqw1BkCdNdzlBdYLal99yfaziFfeUzZI7tgbdu33gEtNFAQPYtD` &&
- `4esWgFG1+yEsU5S0RiPD2j0C3eENLTxTChqIFEfCOx9jE85YTncepxP3xGxcKyesdQOr7N8p3x3EA9ieYPK10EZ5iCINhvRGR6T2qeqzWsaE/CZUPRbdHlYjnXtHsG7zyeV1A84AgIE+xroYLsIoKEpspgPaFGOqLQxcVfh4ICCg1a1ABbDNK2qKGIW0ehS2PTAuaAbtw0J9naw0OdTqwewM3FDW26wuks9vtrVEhaDw3NkbCuL4vWj8` &&
- `wAioy2jGmoFw8iaHYygR8gcTEWUJjhUobmjmngjgPa4wENA5THgScoD0Mh1yV3JX370ZRR0ut/8zVViHjByoHeCEXnXtwEZTAGqYXD+MWOXGh8YqyvDx88KXuS8hMCEuxCoO57ueP12GJmXYu3Qi1MmjHyNm6YZssE3Y0jmus4drGxoq7utXWSmU5dAdNBnSgaMBAvUfQAhvErA19YI2DeQzKPMULMeBgW9PS4aJDlNGI+YcmGiFx8CB` &&
- `KMF+RYTPhQxQe30HV4G3KqOh/Bc7n1NuNgdk6iHkT8nyKNFMrJa1KGgYEfspfExIQBBJ09P75RjdQob0U0QykDXAyEi5sIiCfOzZvR4MOCy99wfrEYssonlnrf752gNrBigIpNydA1KntgzpRllUSTZCx6u4rDFBFISjGpWFlixm8KUoIfJQbPr6e8q8VULUqktqTwUN8ixwohI7UKYFLQqQylAZPXnRWUOLUfeDAjtqIpKZBEgZjhgu` &&
- `uni34xEDbey4NAF06c8GwnvJQFZEI8he5pfYVkHQX1htwAUgG74MNXrbdmYmq4NmUcPedUQeVIEAroCB/AZsfSuhkI4CxgXWoO0lATFpsoRslIopesBskfOnHYWQzHJZ2Ka06XEHRbGkRPhJ3uQey5LCgZvso68QSVU6I4vofeb+h8OdF+2StWHALjBYyEFjUYJoMnAilCV1dlpoBANVhuYwbNOMqRrcCSLq4sXneHpWKH4fpyYYD5ZE` &&
- `I4tUDxUwYwFkAHgDRhBQJKEt05RXWmt8ON32L5UFEElIjFpRJ+zw1sD5Ix+EYAOTBKAVjRH5E3N4A8hAFnoaNSTSIlEcbSoQonA6Ud7w6aZhGSwFicduS2LmoAYsWCMCGwQYjyiCCipI7NGnAEBdCoxfdcVFK6rCcbiwgz5UDY0nwY5q7w2ABEd1PMPFEMMUqCeGSzLM0pTWnneFDB8mGmEPPnD6BPOblVMQmaXHtXcBYbKF6marT6hA` &&
- `EhBp4mCxK0aRpAsOGgDwAeM3/C40DjJppDYgqgB3cSI3ZErodWIC1qGHleR0FBFgElKdm8kwSpCUAlW3WbxQxb6MZxBZCqb1pdZUWuo0FCsB2BdUrsBUgeac/OSITfMJIAeDHcVH5wYJ/nOL+LDDVfXn/3BlJfWIVpwpirLhbrjWIdZfukaA3m9H4wNKrcHd8ZV9tuae+JguAeHIwLIeseGHl977Jdz3hLEiIi02KJ0GIjCiaxlC8+QC` &&
- `hqV9gRfAjWfCmxsnN8YzftEGgGEhAU/DFDxSEFC0abmuU81ahbDkEUUpugAZ3s7HnBogXFKoB3TwFYRxYo7XUzwm9R5IlTA49A1OU4CkR01CUBx7c6hmsaH7mV5w1ugoqTVpsuBa6wBBQkVaDVdnuUG0BBhtfIadqogxoWWWti3QeK9x0xYG7OX47/AITuQeQqQSFEE6oz8ZJg1Xr0oKgp1SYOz6Xp1pQbNakADnAYJfg1/GUi4nSjIB` &&
- `jVWU03M5JAIA/ZB+kcA78TfFF4FTdXQ/oVYgYTRYe9mjUX45WFHhB0fIYDQP4htVVRRCTrcOs0ODRNC0CGlqxBbFzWCGLrznwWNb2uVJhxheneVbjopBNr0g+veUYpUWitq3tJbAgPC4N4kVzcMypvUz5OsuC4gnjNBujGVB7gBPlmkgp8frEijXHI6fVxYwoEgpYwuM1o6lS1Vdoqq7VVw0XnnLB3gxpAAUCwXzK/u4qNpA8pt1sWE9` &&
- `Lg1fXyO6nABcnHXfYkCfgp9ndx/bAKEchEg2bjVTQhkPWa1myCiMV0nG6XUzvY30Zw0aAws1ehIOjhAKLpSql+KCMNykahA1qe1uP3/HaLWI4jgFEYRooLArqJmqbfh7ngKaDHI7glh8IK/Yo6Uw4PY1lgjgob9BrAa49Chbl2IBY3BySwM0pUp4TiOxEcEMwnwcS8cEafGDT1Zqm3kDG6nb4yW4GiSoLOD5PTiHiZr9e8RdCYyKEzlI` &&
- `jFwR8nC/UfX2W+b+zcOSI8h3HnCrsyxhkJ89yicUT1h0n3nkMWSgyUrcYi9O5VVpM9cMKEX1hKiJdayCXXwYvWrg2QDe1TR5p7yzpAmMondTyoIDaMF+FBsF4nH2+dfo8yBrESliccCE/lLocinwvVXqgnEAJWuRWw2KCrpUCzMDWFbqyHwcyCUcr0/wBQNTjLpsCERGUnPJdZAhJttFQmAxr1Jyn5g/Tt/wAn4AKIgWtoIhBCWul0it` &&
- `ENkG7hR6pomg9iilLBWMVC/DLTD1zAqxplIMiOOAgr++Xh6Aocj69HzfOR+IaYNL0mIImGjNTKHznWYKQwg03hIYxJ5H+cWrgHCO6o+MBSlM3IC5ZecxUCwvn1ghaPLszFgQgke8IOBLD4IWG0XzrCLJTNUvl+XpZ7/nhB4maiGkRRHpkkIDAQmgv4wCM+AYBEKgCcNsqrLyU0HopH2n5w2kUDhCtYbnAoAq4TMkR3A2J4w5sIAy2BeF` &&
- `Z8q7rd2cRyw1RsTFVPMODebg8YUVQfWn4yigJaVUCs0e2OrB4wgtWm3zO7+DwQNBkGPTuUHmbG+M1oeMRhX0wUMIjObwt/O8CL4zU+n+c1PxgAutt4J1UubD7ueNG/Eu/2H98nuQiRiH0U8/HnGSisCg3qp9ut63yfH/FpgQFM8rZEkJLQ2j484U7KlmiF7JvSUAmYROn8YwIH4wj/AFD3j0thk65AYNpo5uaesPdK/LjkRo4aTFRG/O` &&
- `SW6ExMPxif3YzaG8kp5cHRrIYojAn0Y60YYiOJrFkVvX1klkcgCcv5/vxbst8agdhBCvDyXCZAIBwM8f8AH8YJBIUPWFlBuInkopn0Nk6cKjabwEBrK/HiTMYGOxPxinRe/GaTPBRc2NK2uv4yKA5cTeIF5M9Dvxl0cOvG81h8ayyDy4ts0Z23zmQN+cNFG+Y9NoONy6wD7ZyBu4QMExGIAlB2JPaYZLdGlTBtUMQIrP8Ak+P0D6+5lR` &&
- `E/bDMypppEhE07DWMEoVVAs7VsMngBgCMuxWk+Jkca9TmMA5kRGjH0ObPrJJ+cYhJMQrgFMb4yPWGFFCuEj35jXcXRjIq2Y5Lm4F4ZQHowSOBY2Yu5ZnDDKbcafkmHnK0BlB9nXf8AndMK2ptcvjPMbbd0Ij9XkaNQRGY4SxCwNI6sgQKcFgmgqTeWLPSZsDS+caNeyZR8C37zShvIoZCtzFEc8TPbENSVnb0Bphp086wgE2fGM7bBJ7` &&
- `wkdDJ2IOG2Ca1iMEiEBQIpyCmT+gyz4BEB8NXrY6x82/sSdFUjIJppRbXQBiuwaICo2DQudzgWwBQ6FKtnkM1QVGEYVLJNKLT2Yo2HPjGmLTWsO1KccEuy1PH3ir9GdtDG3tr3/nLNsimH7OtPM8SJ9Du3K8WW6y03lYVAear6GuhcA4PSJsPLbXf9DZiQiJpwl7IcpuBLGHC6zxQ43Io708Ajlz5aHJv3y+waaA4CvQ4CUROkwLSzBl` &&
- `ASyTIPIuBFAvMG2PYaP/uVCA6esFvIe3ajSevOulGVZeLCANDWlAEREcMm/ZcGlNRo1IeUpoARwkfk8iD5OZ+P6G4CAIkR84viu+H1ss+mHHzSUnnSb++AKOdct2+Csm+Soh6D4IE1AHSEXAl2JWMNCzy5dbywRSFE3xMD1TA2q6V7VSJs1xBkeJj1SSDUu+Q84TuRykbe1ZtxRwABQqD7hSKosgCpBzm4aeEfADxGo0cAmv0/P9KmTp` &&
- `hQiAUN5gggIGT3KHnvRQVoIReBgABKJYTpV03o3zVwkAwoGokR161hoQCAGg/qHj/+RP/Z`.
-
- ENDMETHOD.
-
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_30.clas.xml b/src/00/z2ui5_cl_app_demo_30.clas.xml
deleted file mode 100644
index 8991a0c5..00000000
--- a/src/00/z2ui5_cl_app_demo_30.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_30
- E
- layout - dynamic page
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_31.clas.abap b/src/00/z2ui5_cl_app_demo_31.clas.abap
deleted file mode 100644
index c89a327c..00000000
--- a/src/00/z2ui5_cl_app_demo_31.clas.abap
+++ /dev/null
@@ -1,215 +0,0 @@
-CLASS z2ui5_cl_app_demo_31 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA mv_value TYPE string.
-
- PROTECTED SECTION.
-
- DATA client TYPE REF TO z2ui5_if_client.
- DATA:
- BEGIN OF app,
- check_initialized TYPE abap_bool,
- get TYPE z2ui5_if_client=>ty_s_get,
- next TYPE z2ui5_if_client=>ty_s_next,
- popup type string,
- END OF app.
-
- METHODS z2ui5_on_init.
- METHODS z2ui5_on_event.
- METHODS z2ui5_on_render_main.
- METHODS z2ui5_on_render_popup.
-
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_31 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- app-get = client->get( ).
- me->client = client.
- app-popup = ``.
-
- IF app-check_initialized = abap_false.
- app-check_initialized = abap_true.
- z2ui5_on_init( ).
- ENDIF.
-
- IF app-get-event IS NOT INITIAL.
- z2ui5_on_event( ).
- ENDIF.
-
- z2ui5_on_render_main( ).
- z2ui5_on_render_popup( ).
-
- client->set_next( app-next ).
- CLEAR app-get.
- CLEAR app-next.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_event.
-
- CASE app-get-event.
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( app-get-id_prev_app_stack ) ).
- WHEN 'POPUP'.
- app-popup = 'TEST'.
- WHEN 'DATA'.
- client->popup_message_box( 'Event raised value:' && mv_value ).
- ENDCASE.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_init.
-
- mv_value = '200'.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render_main.
-
- app-next-xml_main = `` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ``.
-
- app-next-xml_main = z2ui5_cl_xml_view=>hlp_replace_controller_name( app-next-xml_main ).
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render_popup.
-
- if app-popup = `TEST`.
- app-next-xml_popup = `` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ``.
-
- endif.
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_31.clas.xml b/src/00/z2ui5_cl_app_demo_31.clas.xml
deleted file mode 100644
index ec60ac5b..00000000
--- a/src/00/z2ui5_cl_app_demo_31.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_31
- E
- extension - import xml view
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_32.clas.abap b/src/00/z2ui5_cl_app_demo_32.clas.abap
deleted file mode 100644
index 31a3c1e1..00000000
--- a/src/00/z2ui5_cl_app_demo_32.clas.abap
+++ /dev/null
@@ -1,113 +0,0 @@
-CLASS z2ui5_cl_app_demo_32 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA mv_value TYPE string.
-
- PROTECTED SECTION.
-
- DATA client TYPE REF TO z2ui5_if_client.
- DATA:
- BEGIN OF app,
- check_initialized TYPE abap_bool,
- view_main TYPE string,
- view_popup TYPE string,
- get TYPE z2ui5_if_client=>ty_s_get,
- next TYPE z2ui5_if_client=>ty_s_next,
- END OF app.
-
- METHODS z2ui5_on_init.
- METHODS z2ui5_on_event.
- METHODS z2ui5_on_render.
-
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_32 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- me->client = client.
- app-get = client->get( ).
- app-view_popup = ``.
-
- IF app-check_initialized = abap_false.
- app-check_initialized = abap_true.
- z2ui5_on_init( ).
- ENDIF.
-
- IF app-get-event IS NOT INITIAL.
- z2ui5_on_event( ).
- ENDIF.
-
- z2ui5_on_render( ).
-
- client->set_next( app-next ).
- CLEAR app-get.
- CLEAR app-next.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_event.
-
- CASE app-get-event.
-
- WHEN 'POST'.
- client->popup_message_toast( app-get-event_data ).
-
- WHEN 'MYCC'.
- client->popup_message_toast( 'MYCC event ' && mv_value ).
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( app-get-id_prev_app_stack ) ).
-
- ENDCASE.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_init.
-
- app-view_main = 'VIEW_MAIN'.
- mv_value = 'test'.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render.
-
- app-next-xml_main = ` ` && |\n| &&
- ` ` && |\n| &&
- `` &&
- `` && |\n| &&
- `` && |\n| &&
- `This is a heading with css
` && |\n| &&
- `This is a paragraph with css.
` && |\n| &&
- `My First JavaScript
` && |\n| &&
- `` && |\n| &&
- ` ` &&
- `` && |\n| &&
- `` && |\n| &&
- ` ` && |\n| &&
- ``.
-
- app-next-xml_main = z2ui5_cl_xml_view=>hlp_replace_controller_name( app-next-xml_main ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_32.clas.locals_imp.abap b/src/00/z2ui5_cl_app_demo_32.clas.locals_imp.abap
deleted file mode 100644
index 03056145..00000000
--- a/src/00/z2ui5_cl_app_demo_32.clas.locals_imp.abap
+++ /dev/null
@@ -1,136 +0,0 @@
-*"* use this source file for the definition and implementation of
-*"* local helper classes, interface definitions and type
-*"* declarations
-class lcl_repository DEFINITION.
-
-PUBLIC SECTION.
-
- class-METHODS get_js_barcode_lib
- returning
- value(result) type string.
-
-
-endclass.
-
-CLASS lcl_repository IMPLEMENTATION.
-
- METHOD get_js_barcode_lib.
-
- result = `` && |\n| &&
- `!function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable` &&
-`:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"obj` &&
-`ect"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){` &&
-`var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=7)}([function(t,e,n){"use strict";var r;function o(t,e,n){return e in t?` &&
-`Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}Object.defineProperty(e,"__esModule",{value:!0});var i=e.SET_A=0,a=e.SET_B=1,u=e.SET_C=2,s=(e.SHIFT=98,e.START_A=103),f=e.START_B=104,c=e.START_C=105;e.MODULO=1` &&
-`03,e.STOP=106,e.FNC1=207,e.SET_BY_CODE=(o(r={},s,i),o(r,f,a),o(r,c,u),r),e.SWAP={101:i,100:a,99:u},e.A_START_CHAR=String.fromCharCode(208),e.B_START_CHAR=String.fromCharCode(209),e.C_START_CHAR=String.fromCharCode(210),e.A_CHARS="[\0-_È-Ï]",e.B_CHA` &&
-`RS="[ -È-Ï]",e.C_CHARS="(Ï*[0-9]{2}Ï*)",e.BARS=[11011001100,11001101100,11001100110,10010011e3,10010001100,10001001100,10011001e3,10011000100,10001100100,11001001e3,11001000100,11000100100,10110011100,10011011100,10011001110,10111001100,1001110110` &&
-`0,10011100110,11001110010,11001011100,11001001110,11011100100,11001110100,11101101110,11101001100,11100101100,11100100110,11101100100,11100110100,11100110010,11011011e3,11011000110,11000110110,10100011e3,10001011e3,10001000110,10110001e3,10001101e3` &&
-`,10001100010,11010001e3,11000101e3,11000100010,10110111e3,10110001110,10001101110,10111011e3,10111000110,10001110110,11101110110,11010001110,11000101110,11011101e3,11011100010,11011101110,11101011e3,11101000110,11100010110,11101101e3,11101100010,11` &&
-`100011010,11101111010,11001000010,11110001010,1010011e4,10100001100,1001011e4,10010000110,10000101100,10000100110,1011001e4,10110000100,1001101e4,10011000010,10000110100,10000110010,11000010010,1100101e4,11110111010,11000010100,10001111010,10100111` &&
-`100,10010111100,10010011110,10111100100,10011110100,10011110010,11110100100,11110010100,11110010010,11011011110,11011110110,11110110110,10101111e3,10100011110,10001011110,10111101e3,10111100010,11110101e3,11110100010,10111011110,10111101110,1110101` &&
-`1110,11110101110,11010000100,1101001e4,11010011100,1100011101011]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,o=function(){function t(t,e){for(var n=0;n=200){i=t.shift()-105;var a=u.SWAP[i];voi` &&
-`d 0!==a?o=e.next(t,n+1,a):(r!==u.SET_A&&r!==u.SET_B||i!==u.SHIFT||(t[0]=r===u.SET_A?t[0]>95?t[0]-96:t[0]:t[0]<32?t[0]+96:t[0]),o=e.next(t,n+1,r))}else i=e.correctIndex(t,r),o=e.next(t,n+1,r);var s=i*n;return{result:e.getBar(i)+o.result,checksum:s+o` &&
-`.checksum}}}]),e}(a.default);e.default=s},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=Object.assign||function(t){for(var e=1;e0?e.fontSize+e.textMargin:0)+e.marginTop+` &&
-`e.marginBottom}function u(t,e,n){if(n.displayValue&&ee&&(e=t[n].height);return e},e.getEncodingHeight=a,e.getBarcodePadding=u,e.calculateEncodingAttributes=function(t,e,n){for(var r=0;r=i(t);return e+String.fromCharCode(r?206:205)+u(t,r)}e.default=function(t){var e=void 0;i` &&
-`f(a(t).length>=2)e=r.C_START_CHAR+s(t);else{var n=o(t)>i(t);e=(n?r.A_START_CHAR:r.B_START_CHAR)+u(t,n)}return e.replace(/[\xCD\xCE]([^])[\xCD\xCE]/,(function(t,e){return String.fromCharCode(203)+e}))}},function(t,e,n){"use strict";Object.defineProp` &&
-`erty(e,"__esModule",{value:!0});var r,o=function(){function t(t,e){for(var n=0;n0?` &&
-`(n=0,o.textAlign="left"):"right"==t.textAlign?(n=e.width-1,o.textAlign="right"):(n=e.width/2,o.textAlign="center"),o.fillText(e.text,n,r))}},{key:"moveCanvasDrawing",value:function(t){this.canvas.getContext("2d").translate(t.width,0)}},{key:"restor` &&
-`eCanvas",value:function(){this.canvas.getContext("2d").restore()}}]),t}();e.default=s},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,o=function(){function t(t,e){for(var n=0;n0&&(this.drawRect(a-e.width*i,r,e` &&
-`.width*i,e.height,t),i=0);i>0&&this.drawRect(a-e.width*(i-1),r,e.width*i,e.height,t)}},{key:"drawSVGText",value:function(t,e,n){var r,o,i=this.document.createElementNS(s,"text");e.displayValue&&(i.setAttribute("style","font:"+e.fontOptions+" "+e.fo` &&
-`ntSize+"px "+e.font),o="top"==e.textPosition?e.fontSize-e.textMargin:e.height+e.textMargin+e.fontSize,"left"==e.textAlign||n.barcodePadding>0?(r=0,i.setAttribute("text-anchor","start")):"right"==e.textAlign?(r=n.width-1,i.setAttribute("text-anchor"` &&
-`,"end")):(r=n.width/2,i.setAttribute("text-anchor","middle")),i.setAttribute("x",r),i.setAttribute("y",o),i.appendChild(this.document.createTextNode(n.text)),t.appendChild(i))}},{key:"setSvgAttributes",value:function(t,e){var n=this.svg;n.setAttrib` &&
-`ute("width",t+"px"),n.setAttribute("height",e+"px"),n.setAttribute("x","0px"),n.setAttribute("y","0px"),n.setAttribute("viewBox","0 0 "+t+" "+e),n.setAttribute("xmlns",s),n.setAttribute("version","1.1"),n.setAttribute("style","transform: translate(` &&
-`0,0)")}},{key:"createGroup",value:function(t,e,n){var r=this.document.createElementNS(s,"g");return r.setAttribute("transform","translate("+t+", "+e+")"),n.appendChild(r),r}},{key:"setGroupOptions",value:function(t,e){t.setAttribute("style","fill:"` &&
-`+e.lineColor+";")}},{key:"drawRect",value:function(t,e,n,r,o){var i=this.document.createElementNS(s,"rect");return i.setAttribute("x",t),i.setAttribute("y",e),i.setAttribute("width",n),i.setAttribute("height",r),o.appendChild(i),i}}]),t}();e.defaul` &&
-`t=f},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n
-
-
-
-
- Z2UI5_CL_APP_DEMO_32
- E
- extension - html css js
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_33.clas.abap b/src/00/z2ui5_cl_app_demo_33.clas.abap
deleted file mode 100644
index f5300b8b..00000000
--- a/src/00/z2ui5_cl_app_demo_33.clas.abap
+++ /dev/null
@@ -1,58 +0,0 @@
-CLASS z2ui5_cl_app_demo_33 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
- DATA mv_type TYPE string.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_33 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- CASE client->get( )-event.
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
-
- WHEN 'BUTTON_MESSAGE_BOX'.
- client->popup_message_box( 'Action of illustrated message' ).
-
- WHEN OTHERS.
- mv_type = client->get( )-event.
-
- ENDCASE.
-
- DATA(page) = z2ui5_cl_xml_view=>factory( )->shell(
- )->page(
- title = 'abap2UI5 - Illustrated Messages'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link(
- text = 'Demo' target = '_blank'
- href = `https://twitter.com/OblomovDev/status/1647175810917318657`
- )->link(
- text = 'Source_Code' target = '_blank'
- href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent( ).
- page->link( text = 'Documentation' target = '_blank' href = `https://openui5.hana.ondemand.com/api/sap.m.IllustratedMessageType#properties` ).
- page->button( text = 'NoActivities' press = client->_event( 'sapIllus-NoActivities' ) ).
- page->button( text = 'AddPeople' press = client->_event( 'sapIllus-AddPeople' ) ).
- page->button( text = 'Connection' press = client->_event( 'sapIllus-Connection' ) ).
- page->button( text = 'NoDimensionsSet' press = client->_event( 'sapIllus-NoDimensionsSet' ) ).
- page->button( text = 'NoEntries' press = client->_event( 'sapIllus-NoEntries' ) ).
- page->illustrated_message( illustrationtype = mv_type
- )->additional_content( )->button(
- text = 'information'
- press = client->_event( 'BUTTON_MESSAGE_BOX' ) ).
-
- client->set_next( VALUE #( xml_main = page->get_root( )->xml_get( ) ) ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_33.clas.xml b/src/00/z2ui5_cl_app_demo_33.clas.xml
deleted file mode 100644
index fe871fbd..00000000
--- a/src/00/z2ui5_cl_app_demo_33.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_33
- E
- messages - illustrated
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_34.clas.abap b/src/00/z2ui5_cl_app_demo_34.clas.abap
deleted file mode 100644
index 486f0445..00000000
--- a/src/00/z2ui5_cl_app_demo_34.clas.abap
+++ /dev/null
@@ -1,131 +0,0 @@
-CLASS z2ui5_cl_app_demo_34 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA t_bapiret TYPE bapirettab.
- DATA check_initialized TYPE abap_bool.
- DATA mv_popup_name TYPE string.
- DATA mv_main_xml TYPE string.
- DATA mv_popup_xml TYPE string.
-
- METHODS view_main
- IMPORTING
- client TYPE REF TO z2ui5_if_client.
- METHODS view_popup_bal
- IMPORTING
- client TYPE REF TO z2ui5_if_client.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_34 IMPLEMENTATION.
-
-
- METHOD view_main.
-
- DATA(page) = Z2UI5_CL_XML_VIEW=>factory( )->shell(
- )->page(
- title = 'abap2UI5 - Popups'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- " )->link(
- " text = 'Demo' target = '_blank'
- " href = 'https://twitter.com/OblomovDev/status/1637163852264624139'
- )->link(
- text = 'Source_Code' target = '_blank' href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent( ).
-
- DATA(grid) = page->grid( 'L8 M12 S12' )->content( 'layout' ).
-
- grid->simple_form( 'Tables' )->content( 'form'
- )->label( '01'
- )->button(
- text = 'Show bapiret tab'
- press = client->_event( 'POPUP_BAL' )
- ).
-
- mv_main_xml = page->get_root( )->xml_get( ).
-
- ENDMETHOD.
-
-
- METHOD view_popup_bal.
-
- DATA(popup) = Z2UI5_CL_XML_VIEW=>factory_popup(
- )->dialog( 'abap2ui5 - Popup Message Log'
- )->table( client->_bind( t_bapiret )
- )->columns(
- )->column( '5rem'
- )->text( 'Type' )->get_parent(
- )->column( '5rem'
- )->text( 'Number' )->get_parent(
- )->column( '5rem'
- )->text( 'ID' )->get_parent(
- )->column(
- )->text( 'Message' )->get_parent(
- )->get_parent(
- )->items(
- )->column_list_item(
- )->cells(
- )->text( '{TYPE}'
- )->text( '{NUMBER}'
- )->text( '{ID}'
- )->text( '{MESSAGE}'
- )->get_parent( )->get_parent( )->get_parent( )->get_parent(
- )->footer( )->overflow_toolbar(
- )->toolbar_spacer(
- )->button(
- text = 'close'
- press = client->_event( 'POPUP_BAL_CLOSE' )
- type = 'Emphasized' ).
-
- mv_popup_xml = popup->get_root( )->xml_get( ).
-
- ENDMETHOD.
-
-
- METHOD z2ui5_if_app~main.
-
- IF check_initialized = abap_false.
- check_initialized = abap_true.
-
- t_bapiret = VALUE #(
- ( message = 'An empty Report field causes an empty XML Message to be sent' type = 'E' id = 'MSG1' number = '001' )
- ( message = 'Check was executed for wrong Scenario' type = 'E' id = 'MSG1' number = '002' )
- ( message = 'Request was handled without errors' type = 'S' id = 'MSG1' number = '003' )
- ( message = 'product activated' type = 'S' id = 'MSG4' number = '375' )
- ( message = 'check the input values' type = 'W' id = 'MSG2' number = '375' )
- ( message = 'product already in use' type = 'I' id = 'MSG2' number = '375' )
- ).
-
- ENDIF.
-
- mv_popup_name = ''.
-
- CASE client->get( )-event.
-
- WHEN 'POPUP_BAL'.
- mv_popup_name = 'POPUP_BAL'.
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
-
- ENDCASE.
-
- view_main( client ).
-
- CASE mv_popup_name.
- WHEN 'POPUP_BAL'.
- view_popup_bal( client ).
- ENDCASE.
-
- client->set_next( VALUE #( xml_main = mv_main_xml xml_popup = mv_popup_xml ) ).
- CLEAR: mv_main_xml, mv_popup_xml.
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_34.clas.xml b/src/00/z2ui5_cl_app_demo_34.clas.xml
deleted file mode 100644
index 08dd2ed6..00000000
--- a/src/00/z2ui5_cl_app_demo_34.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_34
- E
- messages - t100 bapiret
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_35.clas.abap b/src/00/z2ui5_cl_app_demo_35.clas.abap
deleted file mode 100644
index 33db99e8..00000000
--- a/src/00/z2ui5_cl_app_demo_35.clas.abap
+++ /dev/null
@@ -1,158 +0,0 @@
-CLASS z2ui5_cl_app_demo_35 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA mt_table TYPE REF TO data.
- DATA mt_cols TYPE string_table.
- DATA mv_name TYPE string.
-
- PROTECTED SECTION.
-
- DATA client TYPE REF TO z2ui5_if_client.
- DATA:
- BEGIN OF app,
- check_initialized TYPE abap_bool,
- view_main TYPE string,
- view_popup TYPE string,
- get TYPE z2ui5_if_client=>ty_s_get,
- next TYPE z2ui5_if_client=>ty_s_next,
- END OF app.
-
- METHODS z2ui5_on_init.
- METHODS z2ui5_on_event.
- METHODS z2ui5_on_render.
-
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS z2ui5_cl_app_demo_35 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- me->client = client.
- app-get = client->get( ).
- app-view_popup = ``.
-
- IF app-check_initialized = abap_false.
- app-check_initialized = abap_true.
- z2ui5_on_init( ).
- ENDIF.
-
- IF app-get-event IS NOT INITIAL.
- z2ui5_on_event( ).
- ENDIF.
-
- z2ui5_on_render( ).
-
- client->set_next( app-next ).
- CLEAR app-get.
- CLEAR app-next.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_event.
-
- CASE app-get-event.
-
- WHEN 'BUTTON_TABLE'.
- FIELD-SYMBOLS TYPE STANDARD TABLE.
- CREATE DATA mt_table TYPE STANDARD TABLE OF (mv_name).
- ASSIGN mt_table->* TO .
- mt_cols = lcl_db=>get_fieldlist_by_table( ).
-
-
- WHEN 'BUTTON_POST'.
-
- CREATE DATA mt_table TYPE STANDARD TABLE OF (mv_name).
- "FIELD-SYMBOLS TYPE table.
- ASSIGN mt_table->* TO .
-
- SELECT FROM (mv_name)
- FIELDS *
- INTO CORRESPONDING FIELDS OF TABLE @
- UP TO 100 ROWS.
-
-
- WHEN 'BUTTON_CONFIRM'.
- client->popup_message_toast( |confirm| ).
- app-view_popup = ''.
-
- WHEN 'BUTTON_CANCEL'.
- client->popup_message_toast( |cancel| ).
- app-view_popup = ''.
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( app-get-id_prev_app_stack ) ).
-
- ENDCASE.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_init.
-
- app-view_main = 'VIEW_MAIN'.
- mv_name = `Z2UI5_T_DRAFT`.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render.
-
- DATA(lo_view) = z2ui5_cl_xml_view=>factory( )->shell( )->page(
- title = 'abap2UI5 - Change the table type with RTTI'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link(
- text = 'Demo' target = '_blank'
- href = 'https://twitter.com/OblomovDev/status/1656904560953237508'
- )->link(
- text = 'Source_Code' target = '_blank'
- href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent(
- )->simple_form( editable = abap_true
- )->content( `form`
- )->title( 'Table'
- )->label( 'Name' ).
-
- lo_view->input( client->_bind( mv_name ) ).
-
- lo_view->button(
- text = 'read'
- press = client->_event( 'BUTTON_POST' )
- ).
-
- IF mt_table IS BOUND.
-
- FIELD-SYMBOLS TYPE STANDARD TABLE.
- ASSIGN mt_table->* TO .
- DATA(tab) = lo_view->get_parent( )->get_parent( )->simple_form( editable = abap_true
- )->content( 'form' )->table(
- items = client->_bind( val = check_gen_data = abap_true )
- ).
-
- DATA(lo_columns) = tab->columns( ).
- mt_cols = lcl_db=>get_fieldlist_by_table( ).
-
- LOOP AT mt_cols INTO DATA(lv_field) FROM 2.
- lo_columns->column( )->text( lv_field ).
- ENDLOOP.
-
- DATA(lo_cells) = tab->items( )->column_list_item( selected = '{SELKZ}' )->cells( ).
- LOOP AT mt_cols INTO lv_field FROM 2.
- lo_cells->input( `{` && lv_field && `}` ).
- ENDLOOP.
-
- ENDIF.
-
- app-next-xml_main = lo_view->get_root( )->xml_get( ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_35.clas.locals_imp.abap b/src/00/z2ui5_cl_app_demo_35.clas.locals_imp.abap
deleted file mode 100644
index a4b0e6d8..00000000
--- a/src/00/z2ui5_cl_app_demo_35.clas.locals_imp.abap
+++ /dev/null
@@ -1,312 +0,0 @@
-CLASS lcl_db DEFINITION.
-
-
- PUBLIC SECTION.
-
-
- TYPES ty_t_table TYPE z2ui5_cl_app_demo_13=>ty_t_table.
-
- CLASS-DATA app TYPE REF TO z2ui5_cl_app_demo_13.
- "CLASS-DATA st_table TYPE ty_t_table.
-
- CLASS-METHODS generate_test_data.
-
- CLASS-METHODS get_table_by_json
- IMPORTING
- val TYPE string
- RETURNING
- VALUE(result) TYPE ty_t_table.
-
- CLASS-METHODS get_table_by_xml
- IMPORTING
- val TYPE string
- RETURNING
- VALUE(result) TYPE ty_t_table.
-
- CLASS-METHODS get_table_by_csv
- IMPORTING
- val TYPE string
- RETURNING
- VALUE(result) TYPE ty_t_table.
-
- CLASS-METHODS get_csv_by_table
- IMPORTING
- val TYPE ty_t_table
- RETURNING
- VALUE(result) TYPE string.
-
- CLASS-METHODS get_xml_by_table
- IMPORTING
- val TYPE ty_t_table
- RETURNING
- VALUE(result) TYPE string.
-
- CLASS-METHODS get_json_by_table
- IMPORTING
- val TYPE ty_t_table
- RETURNING
- VALUE(result) TYPE string.
-
- CLASS-METHODS get_fieldlist_by_table
- IMPORTING
- it_table TYPE table
- RETURNING
- VALUE(result) TYPE string_table.
-
- CLASS-METHODS db_save
- IMPORTING
- value TYPE ty_t_table.
-
- CLASS-METHODS db_read
- RETURNING
- VALUE(result) TYPE ty_t_table.
- CLASS-METHODS get_test_data_json
- RETURNING
- VALUE(result) TYPE string.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-
-ENDCLASS.
-
-CLASS lcl_db IMPLEMENTATION.
-
- METHOD generate_test_data.
-
- app->st_db = VALUE #(
- ( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
- ( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
- ( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
- ( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
- ( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
- ( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
- ( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
- ( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
- ).
-
- ENDMETHOD.
-
-
- METHOD get_table_by_json.
-
- DATA lt_tab TYPE ty_t_table.
-
- /ui2/cl_json=>deserialize(
- EXPORTING
- json = val
-* jsonx =
-* pretty_name =
-* assoc_arrays =
-* assoc_arrays_opt =
-* name_mappings =
-* conversion_exits =
-* hex_as_base64 =
- CHANGING
- data = lt_tab
- ).
-
- result = lt_tab.
-
- ENDMETHOD.
-
-
- METHOD get_table_by_xml.
-
- DATA lt_tab TYPE ty_t_table.
-
- CALL TRANSFORMATION id SOURCE xml = val RESULT data = lt_tab.
-
- result = lt_tab.
-
- ENDMETHOD.
-
- METHOD get_table_by_csv.
-
- SPLIT val AT ';' INTO TABLE DATA(lt_cols).
-
- LOOP AT lt_cols INTO DATA(lv_field).
-
- DATA(ls_row) = VALUE z2ui5_cl_app_demo_13=>ty_s_spfli( ).
- DATA(lv_index) = 1.
- DO.
- ASSIGN COMPONENT lv_index OF STRUCTURE ls_row TO FIELD-SYMBOL().
- IF sy-subrc <> 0.
- EXIT.
- ENDIF.
- = lv_field.
- lv_index = lv_index + 1.
- ENDDO.
- INSERT ls_row INTO TABLE result.
-
- ENDLOOP.
-
- ENDMETHOD.
-
- METHOD db_save.
-
- "normally modify database here
-
- "test scenario, therefore write internal table instead
- app->st_db = value.
-
- ENDMETHOD.
-
- METHOD db_read.
-
- "normally read database here
-
- "test scenario, therefore read internal table instead
-
- result = app->st_db.
-
- ENDMETHOD.
-
- METHOD get_csv_by_table.
-
- LOOP AT val INTO DATA(ls_row).
-
- DATA(lv_index) = 1.
- DO.
- ASSIGN COMPONENT lv_index OF STRUCTURE ls_row TO FIELD-SYMBOL().
- IF sy-subrc <> 0.
- EXIT.
- ENDIF.
- lv_index = lv_index + 1.
- result = result && && ';'.
- ENDDO.
- result = result && cl_abap_char_utilities=>cr_lf.
- ENDLOOP.
-
-
- ENDMETHOD.
-
- METHOD get_json_by_table.
-
- result = /ui2/cl_json=>serialize(
- val
-* compress =
-* name =
-* pretty_name =
-* type_descr =
-* assoc_arrays =
-* ts_as_iso8601 =
-* expand_includes =
-* assoc_arrays_opt =
-* numc_as_string =
-* name_mappings =
-* conversion_exits =
- " format_output = abap_true
-* hex_as_base64 =
- ).
-
-
- ENDMETHOD.
-
- METHOD get_xml_by_table.
-
- CALL TRANSFORMATION id SOURCE values = val RESULT XML result.
-
- ENDMETHOD.
-
- METHOD get_fieldlist_by_table.
-
- DATA(lo_tab) = CAST cl_abap_tabledescr( cl_abap_datadescr=>describe_by_data( it_table ) ).
- DATA(lo_struc) = CAST cl_abap_structdescr( lo_tab->get_table_line_type( ) ).
-
- DATA(lt_comp) = lo_struc->get_components( ).
-
- LOOP AT lt_comp INTO DATA(ls_comp).
- INSERT ls_comp-name INTO TABLE result.
- ENDLOOP.
-
- ENDMETHOD.
-
-
- METHOD get_test_data_json.
-
- result = `[` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` }` && |\n| &&
- `]`.
-
- ENDMETHOD.
-
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_35.clas.xml b/src/00/z2ui5_cl_app_demo_35.clas.xml
deleted file mode 100644
index ab9056f1..00000000
--- a/src/00/z2ui5_cl_app_demo_35.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_35
- E
- more - dynamic model
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_36.clas.abap b/src/00/z2ui5_cl_app_demo_36.clas.abap
deleted file mode 100644
index 03a76e3e..00000000
--- a/src/00/z2ui5_cl_app_demo_36.clas.abap
+++ /dev/null
@@ -1,143 +0,0 @@
-CLASS z2ui5_cl_app_demo_36 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA mv_value TYPE string.
-
- PROTECTED SECTION.
-
- DATA client TYPE REF TO z2ui5_if_client.
- DATA:
- BEGIN OF app,
- check_initialized TYPE abap_bool,
- view_main TYPE string,
- view_popup TYPE string,
- get TYPE z2ui5_if_client=>ty_s_get,
- next TYPE z2ui5_if_client=>ty_s_next,
- END OF app.
-
- METHODS z2ui5_on_init.
- METHODS z2ui5_on_event.
- METHODS z2ui5_on_render.
-
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_36 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- me->client = client.
- app-get = client->get( ).
- app-view_popup = ``.
-
- IF app-check_initialized = abap_false.
- app-check_initialized = abap_true.
- z2ui5_on_init( ).
- ENDIF.
-
- IF app-get-event IS NOT INITIAL.
- z2ui5_on_event( ).
- ENDIF.
-
- z2ui5_on_render( ).
-
- client->set_next( app-next ).
- CLEAR app-get.
- CLEAR app-next.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_event.
-
- CASE app-get-event.
-
- WHEN 'POST'.
- client->popup_message_toast( app-get-event_data ).
-
- WHEN 'MYCC'.
- client->popup_message_toast( 'MYCC event ' && mv_value ).
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( app-get-id_prev_app_stack ) ).
-
- ENDCASE.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_init.
-
- app-view_main = 'VIEW_MAIN'.
- mv_value = 'test'.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render.
-
- app-next-xml_main = ` ` && |\n| &&
- ` ` && |\n| &&
- `` &&
- `` && |\n| &&
- `` && |\n| &&
- `This is a heading with css
` && |\n| &&
- `This is a paragraph with css.
` && |\n| &&
- `My First JavaScript
` && |\n| &&
- `` && |\n| &&
- `` && |\n| &&
- `This is SVG
` && |\n| &&
- `X:
This is canvas
` && |\n| &&
- ` ` &&
-* ` ` && |\n| &&
-
- `` && |\n| &&
- ` ` && |\n| &&
- ``.
-
- app-next-xml_main = z2ui5_cl_xml_view=>hlp_replace_controller_name( app-next-xml_main ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_36.clas.locals_imp.abap b/src/00/z2ui5_cl_app_demo_36.clas.locals_imp.abap
deleted file mode 100644
index 03056145..00000000
--- a/src/00/z2ui5_cl_app_demo_36.clas.locals_imp.abap
+++ /dev/null
@@ -1,136 +0,0 @@
-*"* use this source file for the definition and implementation of
-*"* local helper classes, interface definitions and type
-*"* declarations
-class lcl_repository DEFINITION.
-
-PUBLIC SECTION.
-
- class-METHODS get_js_barcode_lib
- returning
- value(result) type string.
-
-
-endclass.
-
-CLASS lcl_repository IMPLEMENTATION.
-
- METHOD get_js_barcode_lib.
-
- result = `` && |\n| &&
- `!function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable` &&
-`:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"obj` &&
-`ect"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){` &&
-`var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=7)}([function(t,e,n){"use strict";var r;function o(t,e,n){return e in t?` &&
-`Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}Object.defineProperty(e,"__esModule",{value:!0});var i=e.SET_A=0,a=e.SET_B=1,u=e.SET_C=2,s=(e.SHIFT=98,e.START_A=103),f=e.START_B=104,c=e.START_C=105;e.MODULO=1` &&
-`03,e.STOP=106,e.FNC1=207,e.SET_BY_CODE=(o(r={},s,i),o(r,f,a),o(r,c,u),r),e.SWAP={101:i,100:a,99:u},e.A_START_CHAR=String.fromCharCode(208),e.B_START_CHAR=String.fromCharCode(209),e.C_START_CHAR=String.fromCharCode(210),e.A_CHARS="[\0-_È-Ï]",e.B_CHA` &&
-`RS="[ -È-Ï]",e.C_CHARS="(Ï*[0-9]{2}Ï*)",e.BARS=[11011001100,11001101100,11001100110,10010011e3,10010001100,10001001100,10011001e3,10011000100,10001100100,11001001e3,11001000100,11000100100,10110011100,10011011100,10011001110,10111001100,1001110110` &&
-`0,10011100110,11001110010,11001011100,11001001110,11011100100,11001110100,11101101110,11101001100,11100101100,11100100110,11101100100,11100110100,11100110010,11011011e3,11011000110,11000110110,10100011e3,10001011e3,10001000110,10110001e3,10001101e3` &&
-`,10001100010,11010001e3,11000101e3,11000100010,10110111e3,10110001110,10001101110,10111011e3,10111000110,10001110110,11101110110,11010001110,11000101110,11011101e3,11011100010,11011101110,11101011e3,11101000110,11100010110,11101101e3,11101100010,11` &&
-`100011010,11101111010,11001000010,11110001010,1010011e4,10100001100,1001011e4,10010000110,10000101100,10000100110,1011001e4,10110000100,1001101e4,10011000010,10000110100,10000110010,11000010010,1100101e4,11110111010,11000010100,10001111010,10100111` &&
-`100,10010111100,10010011110,10111100100,10011110100,10011110010,11110100100,11110010100,11110010010,11011011110,11011110110,11110110110,10101111e3,10100011110,10001011110,10111101e3,10111100010,11110101e3,11110100010,10111011110,10111101110,1110101` &&
-`1110,11110101110,11010000100,1101001e4,11010011100,1100011101011]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,o=function(){function t(t,e){for(var n=0;n=200){i=t.shift()-105;var a=u.SWAP[i];voi` &&
-`d 0!==a?o=e.next(t,n+1,a):(r!==u.SET_A&&r!==u.SET_B||i!==u.SHIFT||(t[0]=r===u.SET_A?t[0]>95?t[0]-96:t[0]:t[0]<32?t[0]+96:t[0]),o=e.next(t,n+1,r))}else i=e.correctIndex(t,r),o=e.next(t,n+1,r);var s=i*n;return{result:e.getBar(i)+o.result,checksum:s+o` &&
-`.checksum}}}]),e}(a.default);e.default=s},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=Object.assign||function(t){for(var e=1;e0?e.fontSize+e.textMargin:0)+e.marginTop+` &&
-`e.marginBottom}function u(t,e,n){if(n.displayValue&&ee&&(e=t[n].height);return e},e.getEncodingHeight=a,e.getBarcodePadding=u,e.calculateEncodingAttributes=function(t,e,n){for(var r=0;r=i(t);return e+String.fromCharCode(r?206:205)+u(t,r)}e.default=function(t){var e=void 0;i` &&
-`f(a(t).length>=2)e=r.C_START_CHAR+s(t);else{var n=o(t)>i(t);e=(n?r.A_START_CHAR:r.B_START_CHAR)+u(t,n)}return e.replace(/[\xCD\xCE]([^])[\xCD\xCE]/,(function(t,e){return String.fromCharCode(203)+e}))}},function(t,e,n){"use strict";Object.defineProp` &&
-`erty(e,"__esModule",{value:!0});var r,o=function(){function t(t,e){for(var n=0;n0?` &&
-`(n=0,o.textAlign="left"):"right"==t.textAlign?(n=e.width-1,o.textAlign="right"):(n=e.width/2,o.textAlign="center"),o.fillText(e.text,n,r))}},{key:"moveCanvasDrawing",value:function(t){this.canvas.getContext("2d").translate(t.width,0)}},{key:"restor` &&
-`eCanvas",value:function(){this.canvas.getContext("2d").restore()}}]),t}();e.default=s},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,o=function(){function t(t,e){for(var n=0;n0&&(this.drawRect(a-e.width*i,r,e` &&
-`.width*i,e.height,t),i=0);i>0&&this.drawRect(a-e.width*(i-1),r,e.width*i,e.height,t)}},{key:"drawSVGText",value:function(t,e,n){var r,o,i=this.document.createElementNS(s,"text");e.displayValue&&(i.setAttribute("style","font:"+e.fontOptions+" "+e.fo` &&
-`ntSize+"px "+e.font),o="top"==e.textPosition?e.fontSize-e.textMargin:e.height+e.textMargin+e.fontSize,"left"==e.textAlign||n.barcodePadding>0?(r=0,i.setAttribute("text-anchor","start")):"right"==e.textAlign?(r=n.width-1,i.setAttribute("text-anchor"` &&
-`,"end")):(r=n.width/2,i.setAttribute("text-anchor","middle")),i.setAttribute("x",r),i.setAttribute("y",o),i.appendChild(this.document.createTextNode(n.text)),t.appendChild(i))}},{key:"setSvgAttributes",value:function(t,e){var n=this.svg;n.setAttrib` &&
-`ute("width",t+"px"),n.setAttribute("height",e+"px"),n.setAttribute("x","0px"),n.setAttribute("y","0px"),n.setAttribute("viewBox","0 0 "+t+" "+e),n.setAttribute("xmlns",s),n.setAttribute("version","1.1"),n.setAttribute("style","transform: translate(` &&
-`0,0)")}},{key:"createGroup",value:function(t,e,n){var r=this.document.createElementNS(s,"g");return r.setAttribute("transform","translate("+t+", "+e+")"),n.appendChild(r),r}},{key:"setGroupOptions",value:function(t,e){t.setAttribute("style","fill:"` &&
-`+e.lineColor+";")}},{key:"drawRect",value:function(t,e,n,r,o){var i=this.document.createElementNS(s,"rect");return i.setAttribute("x",t),i.setAttribute("y",e),i.setAttribute("width",n),i.setAttribute("height",r),o.appendChild(i),i}}]),t}();e.defaul` &&
-`t=f},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n
-
-
-
-
- Z2UI5_CL_APP_DEMO_36
- E
- extension - canvas and svg
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_37.clas.abap b/src/00/z2ui5_cl_app_demo_37.clas.abap
deleted file mode 100644
index 5153b1ff..00000000
--- a/src/00/z2ui5_cl_app_demo_37.clas.abap
+++ /dev/null
@@ -1,169 +0,0 @@
-CLASS z2ui5_cl_app_demo_37 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA mv_value TYPE string.
-
- PROTECTED SECTION.
-
- DATA client TYPE REF TO z2ui5_if_client.
- DATA:
- BEGIN OF app,
- check_initialized TYPE abap_bool,
- view_main TYPE string,
- view_popup TYPE string,
- get TYPE z2ui5_if_client=>ty_s_get,
- next TYPE z2ui5_if_client=>ty_s_next,
- END OF app.
-
- DATA mv_load_cc TYPE abap_bool.
- DATA mv_display_cc TYPE abap_bool.
-
- METHODS get_js_custom_control
- RETURNING
- VALUE(result) TYPE string.
-
- METHODS z2ui5_on_init.
- METHODS z2ui5_on_event.
- METHODS z2ui5_on_render.
-
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_37 IMPLEMENTATION.
-
-
- METHOD get_js_custom_control.
-
- result = ``.
-
-
- ENDMETHOD.
-
-
- METHOD z2ui5_if_app~main.
-
- me->client = client.
- app-get = client->get( ).
- app-view_popup = ``.
-
- IF app-check_initialized = abap_false.
- app-check_initialized = abap_true.
- z2ui5_on_init( ).
- ENDIF.
-
- IF app-get-event IS NOT INITIAL.
- z2ui5_on_event( ).
- ENDIF.
-
- z2ui5_on_render( ).
-
- client->set_next( app-next ).
- CLEAR app-get.
- CLEAR app-next.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_event.
-
- CASE app-get-event.
-
- WHEN 'POST'.
- client->popup_message_toast( app-get-event_data ).
-
- WHEN 'LOAD_CC'.
- mv_load_cc = abap_true.
- client->popup_message_box( 'Custom Control loaded ' ).
-
- WHEN 'DISPLAY_CC'.
- mv_display_cc = abap_true.
- client->popup_message_box( 'Custom Control displayed ' ).
-
- WHEN 'MYCC'.
- client->popup_message_toast( `Custom Control input: ` && mv_value ).
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( app-get-id_prev_app_stack ) ).
-
- ENDCASE.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_init.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render.
-
- app-next-xml_main = ` ` && |\n| &&
- ` ` && |\n| &&
- `` && |\n| &&
- `` && |\n| &&
- ` ` &&
- `` && |\n| &&
- ``.
-
- IF mv_load_cc = abap_true.
- mv_load_cc = abap_false.
- app-next-xml_main = app-next-xml_main && get_js_custom_control( ).
- ENDIF.
-
- IF mv_display_cc = abap_true.
- app-next-xml_main = app-next-xml_main && ` `.
- ENDIF.
-
- app-next-xml_main = app-next-xml_main && `` && |\n| &&
- ` ` && |\n| &&
- ``.
-
- app-next-xml_main = z2ui5_cl_xml_view=>hlp_replace_controller_name( app-next-xml_main ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_37.clas.locals_imp.abap b/src/00/z2ui5_cl_app_demo_37.clas.locals_imp.abap
deleted file mode 100644
index 03056145..00000000
--- a/src/00/z2ui5_cl_app_demo_37.clas.locals_imp.abap
+++ /dev/null
@@ -1,136 +0,0 @@
-*"* use this source file for the definition and implementation of
-*"* local helper classes, interface definitions and type
-*"* declarations
-class lcl_repository DEFINITION.
-
-PUBLIC SECTION.
-
- class-METHODS get_js_barcode_lib
- returning
- value(result) type string.
-
-
-endclass.
-
-CLASS lcl_repository IMPLEMENTATION.
-
- METHOD get_js_barcode_lib.
-
- result = `` && |\n| &&
- `!function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable` &&
-`:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"obj` &&
-`ect"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){` &&
-`var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=7)}([function(t,e,n){"use strict";var r;function o(t,e,n){return e in t?` &&
-`Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}Object.defineProperty(e,"__esModule",{value:!0});var i=e.SET_A=0,a=e.SET_B=1,u=e.SET_C=2,s=(e.SHIFT=98,e.START_A=103),f=e.START_B=104,c=e.START_C=105;e.MODULO=1` &&
-`03,e.STOP=106,e.FNC1=207,e.SET_BY_CODE=(o(r={},s,i),o(r,f,a),o(r,c,u),r),e.SWAP={101:i,100:a,99:u},e.A_START_CHAR=String.fromCharCode(208),e.B_START_CHAR=String.fromCharCode(209),e.C_START_CHAR=String.fromCharCode(210),e.A_CHARS="[\0-_È-Ï]",e.B_CHA` &&
-`RS="[ -È-Ï]",e.C_CHARS="(Ï*[0-9]{2}Ï*)",e.BARS=[11011001100,11001101100,11001100110,10010011e3,10010001100,10001001100,10011001e3,10011000100,10001100100,11001001e3,11001000100,11000100100,10110011100,10011011100,10011001110,10111001100,1001110110` &&
-`0,10011100110,11001110010,11001011100,11001001110,11011100100,11001110100,11101101110,11101001100,11100101100,11100100110,11101100100,11100110100,11100110010,11011011e3,11011000110,11000110110,10100011e3,10001011e3,10001000110,10110001e3,10001101e3` &&
-`,10001100010,11010001e3,11000101e3,11000100010,10110111e3,10110001110,10001101110,10111011e3,10111000110,10001110110,11101110110,11010001110,11000101110,11011101e3,11011100010,11011101110,11101011e3,11101000110,11100010110,11101101e3,11101100010,11` &&
-`100011010,11101111010,11001000010,11110001010,1010011e4,10100001100,1001011e4,10010000110,10000101100,10000100110,1011001e4,10110000100,1001101e4,10011000010,10000110100,10000110010,11000010010,1100101e4,11110111010,11000010100,10001111010,10100111` &&
-`100,10010111100,10010011110,10111100100,10011110100,10011110010,11110100100,11110010100,11110010010,11011011110,11011110110,11110110110,10101111e3,10100011110,10001011110,10111101e3,10111100010,11110101e3,11110100010,10111011110,10111101110,1110101` &&
-`1110,11110101110,11010000100,1101001e4,11010011100,1100011101011]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,o=function(){function t(t,e){for(var n=0;n=200){i=t.shift()-105;var a=u.SWAP[i];voi` &&
-`d 0!==a?o=e.next(t,n+1,a):(r!==u.SET_A&&r!==u.SET_B||i!==u.SHIFT||(t[0]=r===u.SET_A?t[0]>95?t[0]-96:t[0]:t[0]<32?t[0]+96:t[0]),o=e.next(t,n+1,r))}else i=e.correctIndex(t,r),o=e.next(t,n+1,r);var s=i*n;return{result:e.getBar(i)+o.result,checksum:s+o` &&
-`.checksum}}}]),e}(a.default);e.default=s},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=Object.assign||function(t){for(var e=1;e0?e.fontSize+e.textMargin:0)+e.marginTop+` &&
-`e.marginBottom}function u(t,e,n){if(n.displayValue&&ee&&(e=t[n].height);return e},e.getEncodingHeight=a,e.getBarcodePadding=u,e.calculateEncodingAttributes=function(t,e,n){for(var r=0;r=i(t);return e+String.fromCharCode(r?206:205)+u(t,r)}e.default=function(t){var e=void 0;i` &&
-`f(a(t).length>=2)e=r.C_START_CHAR+s(t);else{var n=o(t)>i(t);e=(n?r.A_START_CHAR:r.B_START_CHAR)+u(t,n)}return e.replace(/[\xCD\xCE]([^])[\xCD\xCE]/,(function(t,e){return String.fromCharCode(203)+e}))}},function(t,e,n){"use strict";Object.defineProp` &&
-`erty(e,"__esModule",{value:!0});var r,o=function(){function t(t,e){for(var n=0;n0?` &&
-`(n=0,o.textAlign="left"):"right"==t.textAlign?(n=e.width-1,o.textAlign="right"):(n=e.width/2,o.textAlign="center"),o.fillText(e.text,n,r))}},{key:"moveCanvasDrawing",value:function(t){this.canvas.getContext("2d").translate(t.width,0)}},{key:"restor` &&
-`eCanvas",value:function(){this.canvas.getContext("2d").restore()}}]),t}();e.default=s},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,o=function(){function t(t,e){for(var n=0;n0&&(this.drawRect(a-e.width*i,r,e` &&
-`.width*i,e.height,t),i=0);i>0&&this.drawRect(a-e.width*(i-1),r,e.width*i,e.height,t)}},{key:"drawSVGText",value:function(t,e,n){var r,o,i=this.document.createElementNS(s,"text");e.displayValue&&(i.setAttribute("style","font:"+e.fontOptions+" "+e.fo` &&
-`ntSize+"px "+e.font),o="top"==e.textPosition?e.fontSize-e.textMargin:e.height+e.textMargin+e.fontSize,"left"==e.textAlign||n.barcodePadding>0?(r=0,i.setAttribute("text-anchor","start")):"right"==e.textAlign?(r=n.width-1,i.setAttribute("text-anchor"` &&
-`,"end")):(r=n.width/2,i.setAttribute("text-anchor","middle")),i.setAttribute("x",r),i.setAttribute("y",o),i.appendChild(this.document.createTextNode(n.text)),t.appendChild(i))}},{key:"setSvgAttributes",value:function(t,e){var n=this.svg;n.setAttrib` &&
-`ute("width",t+"px"),n.setAttribute("height",e+"px"),n.setAttribute("x","0px"),n.setAttribute("y","0px"),n.setAttribute("viewBox","0 0 "+t+" "+e),n.setAttribute("xmlns",s),n.setAttribute("version","1.1"),n.setAttribute("style","transform: translate(` &&
-`0,0)")}},{key:"createGroup",value:function(t,e,n){var r=this.document.createElementNS(s,"g");return r.setAttribute("transform","translate("+t+", "+e+")"),n.appendChild(r),r}},{key:"setGroupOptions",value:function(t,e){t.setAttribute("style","fill:"` &&
-`+e.lineColor+";")}},{key:"drawRect",value:function(t,e,n,r,o){var i=this.document.createElementNS(s,"rect");return i.setAttribute("x",t),i.setAttribute("y",e),i.setAttribute("width",n),i.setAttribute("height",r),o.appendChild(i),i}}]),t}();e.defaul` &&
-`t=f},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n
-
-
-
-
- Z2UI5_CL_APP_DEMO_37
- E
- extension - custom control
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_38.clas.abap b/src/00/z2ui5_cl_app_demo_38.clas.abap
deleted file mode 100644
index ceaae2a5..00000000
--- a/src/00/z2ui5_cl_app_demo_38.clas.abap
+++ /dev/null
@@ -1,157 +0,0 @@
-CLASS z2ui5_cl_app_demo_38 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- TYPES:
- BEGIN OF ty_msg,
- type TYPE string,
- title TYPE string,
- subtitle TYPE string,
- description TYPE string,
- group TYPE string,
- END OF ty_msg.
-
- DATA t_msg TYPE STANDARD TABLE OF ty_msg WITH EMPTY KEY.
- DATA check_initialized TYPE abap_bool.
-
- PROTECTED SECTION.
-
- DATA client TYPE REF TO z2ui5_if_client.
- DATA:
- BEGIN OF app,
- check_initialized TYPE abap_bool,
- view_main TYPE string,
- view_popup TYPE string,
- get TYPE z2ui5_if_client=>ty_s_get,
- next TYPE z2ui5_if_client=>ty_s_next,
- END OF app.
-
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_38 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- me->client = client.
- app-get = client->get( ).
- app-view_popup = ``.
-
- IF check_initialized = abap_false.
- check_initialized = abap_true.
-
- t_msg = VALUE #(
- ( description = 'descr' subtitle = 'subtitle' title = 'title' type = 'Error' group = 'group 01' )
- ( description = 'descr' subtitle = 'subtitle' title = 'title' type = 'Information' group = 'group 01' )
- ( description = 'descr' subtitle = 'subtitle' title = 'title' type = 'Information' group = 'group 02' )
- ( description = 'descr' subtitle = 'subtitle' title = 'title' type = 'Success' group = 'group 03' ) ).
-
- ENDIF.
-
- CASE client->get( )-event.
- WHEN 'POPUP'.
- app-view_popup = 'POPUP'.
- WHEN 'POPOVER'.
- app-view_popup = 'POPOVER'.
- app-next-popover_open_by_id = 'test'.
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
- ENDCASE.
-
- DATA(page) = z2ui5_cl_xml_view=>factory( )->shell(
- )->page(
- title = 'abap2UI5 - List'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link(
- text = 'Demo' target = '_blank'
- href = `https://twitter.com/OblomovDev/status/1647246029828268032`
- )->link(
- text = 'Source_Code' target = '_blank'
- href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent( ).
- page->button( text = 'Messages' press = client->_event( 'POPUP' ) ).
- page->message_view(
- items = client->_bind( t_msg )
- groupitems = abap_true
- )->message_item(
- type = `{TYPE}`
- title = `{TITLE}`
- subtitle = `{SUBTITLE}`
- description = `{DESCRIPTION}`
- groupname = `{GROUP}` ).
-
- page->footer( )->overflow_toolbar(
- )->button(
- id = 'test'
- text = 'Messages (6)'
- press = client->_event( 'POPOVER' )
- type = 'Emphasized'
- )->toolbar_spacer(
- )->button(
- text = 'Send to Server'
- press = client->_event( 'BUTTON_SEND' )
- type = 'Success' ).
-
- app-next-xml_main = page->get_root( )->xml_get( ).
-
- DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
- CASE app-view_popup.
-
- WHEN 'POPOVER'.
-
- popup = popup->popover(
- placement = `Top`
- title = `Messages`
- contentheight = '50%'
- contentwidth = '50%' ).
-
- popup->message_view(
- items = client->_bind( t_msg )
- groupitems = abap_true
- )->message_item(
- type = `{TYPE}`
- title = `{TITLE}`
- subtitle = `{SUBTITLE}`
- description = `{DESCRIPTION}`
- groupname = `{GROUP}` ).
-
- WHEN 'POPUP'.
-
- popup = popup->dialog(
- title = `Messages`
- contentheight = '50%'
- contentwidth = '50%' ).
-
- popup->message_view(
- items = client->_bind( t_msg )
- groupitems = abap_true
- )->message_item(
- type = `{TYPE}`
- title = `{TITLE}`
- subtitle = `{SUBTITLE}`
- description = `{DESCRIPTION}`
- groupname = `{GROUP}` ).
-
- popup->footer( )->overflow_toolbar(
- )->toolbar_spacer(
- )->button(
- text = 'close'
- press = client->_event_close_popup( ) ).
-
- ENDCASE.
-
- app-next-xml_popup = popup->get_root( )->xml_get( ).
-
- client->set_next( app-next ).
- CLEAR app-get.
- CLEAR app-next.
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_38.clas.xml b/src/00/z2ui5_cl_app_demo_38.clas.xml
deleted file mode 100644
index 04eabff8..00000000
--- a/src/00/z2ui5_cl_app_demo_38.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_38
- E
- messages - message manager
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_39.clas.abap b/src/00/z2ui5_cl_app_demo_39.clas.abap
deleted file mode 100644
index 4fdb6567..00000000
--- a/src/00/z2ui5_cl_app_demo_39.clas.abap
+++ /dev/null
@@ -1,208 +0,0 @@
-CLASS z2ui5_cl_app_demo_39 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA mv_value TYPE string.
-
- PROTECTED SECTION.
-
- DATA client TYPE REF TO z2ui5_if_client.
- DATA:
- BEGIN OF app,
- check_initialized TYPE abap_bool,
- get TYPE z2ui5_if_client=>ty_s_get,
- next TYPE z2ui5_if_client=>ty_s_next,
- END OF app.
-
- METHODS z2ui5_on_init.
- METHODS z2ui5_on_event.
- METHODS z2ui5_on_render_main.
- METHODS z2ui5_on_render_popup.
-
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_39 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- app-get = client->get( ).
- me->client = client.
-
- IF app-check_initialized = abap_false.
- app-check_initialized = abap_true.
- z2ui5_on_init( ).
- ENDIF.
-
- IF app-get-event IS NOT INITIAL.
- z2ui5_on_event( ).
- ENDIF.
-
- z2ui5_on_render_main( ).
- z2ui5_on_render_popup( ).
-
- client->set_next( app-next ).
- CLEAR app-get.
- CLEAR app-next.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_event.
-
- CASE app-get-event.
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( app-get-id_prev_app_stack ) ).
- WHEN 'POPUP'.
- client->popup_message_box( 'Event raised value:' && mv_value ).
-
- ENDCASE.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_init.
-
- mv_value = '200'.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render_main.
-
- app-next-xml_main = `` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ``.
-
- app-next-xml_main = z2ui5_cl_xml_view=>hlp_replace_controller_name( app-next-xml_main ).
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render_popup.
-
- app-next-xml_popup = `` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ` ` && |\n| &&
- ``.
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_39.clas.xml b/src/00/z2ui5_cl_app_demo_39.clas.xml
deleted file mode 100644
index 41264b95..00000000
--- a/src/00/z2ui5_cl_app_demo_39.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_39
- E
- extension - import xml view 2
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_40.clas.abap b/src/00/z2ui5_cl_app_demo_40.clas.abap
deleted file mode 100644
index 533f2cd6..00000000
--- a/src/00/z2ui5_cl_app_demo_40.clas.abap
+++ /dev/null
@@ -1,105 +0,0 @@
-CLASS z2ui5_cl_app_demo_40 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA mv_barcode TYPE string.
- DATA mv_load_lib TYPE abap_bool.
-
- PROTECTED SECTION.
-
- DATA client TYPE REF TO z2ui5_if_client.
- DATA:
- BEGIN OF app,
- check_initialized TYPE abap_bool,
- view_main TYPE string,
- view_popup TYPE string,
- get TYPE z2ui5_if_client=>ty_s_get,
- next TYPE z2ui5_if_client=>ty_s_next,
- END OF app.
-
- METHODS z2ui5_on_event.
- METHODS z2ui5_on_render.
-
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_40 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- me->client = client.
- app-get = client->get( ).
- app-view_popup = ``.
-
- IF app-get-event IS NOT INITIAL.
- z2ui5_on_event( ).
- ENDIF.
-
- z2ui5_on_render( ).
-
- client->set_next( app-next ).
- CLEAR app-get.
- CLEAR app-next.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_event.
-
- CASE app-get-event.
-
- WHEN 'LOAD_BC'.
- client->popup_message_box( 'JSBarcode Library loaded').
- mv_load_lib = abap_true.
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( app-get-id_prev_app_stack ) ).
-
- ENDCASE.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render.
-
- app-next-xml_main = ` ` && |\n| &&
- ` ` && |\n| &&
-
- `` && |\n| &&
- `` && |\n| &&
- `` && |\n| &&
- `` && |\n| &&
- `` && |\n| &&
- `` && |\n| &&
- `JSBarcode Library
` && |\n| &&
- ` ` && |\n|.
- IF mv_load_lib = abap_true.
- mv_load_lib = abap_false.
- app-next-xml_main = app-next-xml_main && ``.
- ENDIF.
-
- app-next-xml_main = app-next-xml_main && `` &&
- `` && |\n| &&
- ` ` && |\n| &&
- ``.
-
- app-next-xml_main = z2ui5_cl_xml_view=>hlp_replace_controller_name( app-next-xml_main ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_40.clas.locals_imp.abap b/src/00/z2ui5_cl_app_demo_40.clas.locals_imp.abap
deleted file mode 100644
index 03056145..00000000
--- a/src/00/z2ui5_cl_app_demo_40.clas.locals_imp.abap
+++ /dev/null
@@ -1,136 +0,0 @@
-*"* use this source file for the definition and implementation of
-*"* local helper classes, interface definitions and type
-*"* declarations
-class lcl_repository DEFINITION.
-
-PUBLIC SECTION.
-
- class-METHODS get_js_barcode_lib
- returning
- value(result) type string.
-
-
-endclass.
-
-CLASS lcl_repository IMPLEMENTATION.
-
- METHOD get_js_barcode_lib.
-
- result = `` && |\n| &&
- `!function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable` &&
-`:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"obj` &&
-`ect"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){` &&
-`var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=7)}([function(t,e,n){"use strict";var r;function o(t,e,n){return e in t?` &&
-`Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}Object.defineProperty(e,"__esModule",{value:!0});var i=e.SET_A=0,a=e.SET_B=1,u=e.SET_C=2,s=(e.SHIFT=98,e.START_A=103),f=e.START_B=104,c=e.START_C=105;e.MODULO=1` &&
-`03,e.STOP=106,e.FNC1=207,e.SET_BY_CODE=(o(r={},s,i),o(r,f,a),o(r,c,u),r),e.SWAP={101:i,100:a,99:u},e.A_START_CHAR=String.fromCharCode(208),e.B_START_CHAR=String.fromCharCode(209),e.C_START_CHAR=String.fromCharCode(210),e.A_CHARS="[\0-_È-Ï]",e.B_CHA` &&
-`RS="[ -È-Ï]",e.C_CHARS="(Ï*[0-9]{2}Ï*)",e.BARS=[11011001100,11001101100,11001100110,10010011e3,10010001100,10001001100,10011001e3,10011000100,10001100100,11001001e3,11001000100,11000100100,10110011100,10011011100,10011001110,10111001100,1001110110` &&
-`0,10011100110,11001110010,11001011100,11001001110,11011100100,11001110100,11101101110,11101001100,11100101100,11100100110,11101100100,11100110100,11100110010,11011011e3,11011000110,11000110110,10100011e3,10001011e3,10001000110,10110001e3,10001101e3` &&
-`,10001100010,11010001e3,11000101e3,11000100010,10110111e3,10110001110,10001101110,10111011e3,10111000110,10001110110,11101110110,11010001110,11000101110,11011101e3,11011100010,11011101110,11101011e3,11101000110,11100010110,11101101e3,11101100010,11` &&
-`100011010,11101111010,11001000010,11110001010,1010011e4,10100001100,1001011e4,10010000110,10000101100,10000100110,1011001e4,10110000100,1001101e4,10011000010,10000110100,10000110010,11000010010,1100101e4,11110111010,11000010100,10001111010,10100111` &&
-`100,10010111100,10010011110,10111100100,10011110100,10011110010,11110100100,11110010100,11110010010,11011011110,11011110110,11110110110,10101111e3,10100011110,10001011110,10111101e3,10111100010,11110101e3,11110100010,10111011110,10111101110,1110101` &&
-`1110,11110101110,11010000100,1101001e4,11010011100,1100011101011]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,o=function(){function t(t,e){for(var n=0;n=200){i=t.shift()-105;var a=u.SWAP[i];voi` &&
-`d 0!==a?o=e.next(t,n+1,a):(r!==u.SET_A&&r!==u.SET_B||i!==u.SHIFT||(t[0]=r===u.SET_A?t[0]>95?t[0]-96:t[0]:t[0]<32?t[0]+96:t[0]),o=e.next(t,n+1,r))}else i=e.correctIndex(t,r),o=e.next(t,n+1,r);var s=i*n;return{result:e.getBar(i)+o.result,checksum:s+o` &&
-`.checksum}}}]),e}(a.default);e.default=s},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=Object.assign||function(t){for(var e=1;e0?e.fontSize+e.textMargin:0)+e.marginTop+` &&
-`e.marginBottom}function u(t,e,n){if(n.displayValue&&ee&&(e=t[n].height);return e},e.getEncodingHeight=a,e.getBarcodePadding=u,e.calculateEncodingAttributes=function(t,e,n){for(var r=0;r=i(t);return e+String.fromCharCode(r?206:205)+u(t,r)}e.default=function(t){var e=void 0;i` &&
-`f(a(t).length>=2)e=r.C_START_CHAR+s(t);else{var n=o(t)>i(t);e=(n?r.A_START_CHAR:r.B_START_CHAR)+u(t,n)}return e.replace(/[\xCD\xCE]([^])[\xCD\xCE]/,(function(t,e){return String.fromCharCode(203)+e}))}},function(t,e,n){"use strict";Object.defineProp` &&
-`erty(e,"__esModule",{value:!0});var r,o=function(){function t(t,e){for(var n=0;n0?` &&
-`(n=0,o.textAlign="left"):"right"==t.textAlign?(n=e.width-1,o.textAlign="right"):(n=e.width/2,o.textAlign="center"),o.fillText(e.text,n,r))}},{key:"moveCanvasDrawing",value:function(t){this.canvas.getContext("2d").translate(t.width,0)}},{key:"restor` &&
-`eCanvas",value:function(){this.canvas.getContext("2d").restore()}}]),t}();e.default=s},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,o=function(){function t(t,e){for(var n=0;n0&&(this.drawRect(a-e.width*i,r,e` &&
-`.width*i,e.height,t),i=0);i>0&&this.drawRect(a-e.width*(i-1),r,e.width*i,e.height,t)}},{key:"drawSVGText",value:function(t,e,n){var r,o,i=this.document.createElementNS(s,"text");e.displayValue&&(i.setAttribute("style","font:"+e.fontOptions+" "+e.fo` &&
-`ntSize+"px "+e.font),o="top"==e.textPosition?e.fontSize-e.textMargin:e.height+e.textMargin+e.fontSize,"left"==e.textAlign||n.barcodePadding>0?(r=0,i.setAttribute("text-anchor","start")):"right"==e.textAlign?(r=n.width-1,i.setAttribute("text-anchor"` &&
-`,"end")):(r=n.width/2,i.setAttribute("text-anchor","middle")),i.setAttribute("x",r),i.setAttribute("y",o),i.appendChild(this.document.createTextNode(n.text)),t.appendChild(i))}},{key:"setSvgAttributes",value:function(t,e){var n=this.svg;n.setAttrib` &&
-`ute("width",t+"px"),n.setAttribute("height",e+"px"),n.setAttribute("x","0px"),n.setAttribute("y","0px"),n.setAttribute("viewBox","0 0 "+t+" "+e),n.setAttribute("xmlns",s),n.setAttribute("version","1.1"),n.setAttribute("style","transform: translate(` &&
-`0,0)")}},{key:"createGroup",value:function(t,e,n){var r=this.document.createElementNS(s,"g");return r.setAttribute("transform","translate("+t+", "+e+")"),n.appendChild(r),r}},{key:"setGroupOptions",value:function(t,e){t.setAttribute("style","fill:"` &&
-`+e.lineColor+";")}},{key:"drawRect",value:function(t,e,n,r,o){var i=this.document.createElementNS(s,"rect");return i.setAttribute("x",t),i.setAttribute("y",e),i.setAttribute("width",n),i.setAttribute("height",r),o.appendChild(i),i}}]),t}();e.defaul` &&
-`t=f},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n
-
-
-
-
- Z2UI5_CL_APP_DEMO_40
- E
- extension - ext library
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_41.clas.abap b/src/00/z2ui5_cl_app_demo_41.clas.abap
deleted file mode 100644
index 84291e7a..00000000
--- a/src/00/z2ui5_cl_app_demo_41.clas.abap
+++ /dev/null
@@ -1,140 +0,0 @@
-CLASS z2ui5_cl_app_demo_41 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- TYPES:
- BEGIN OF ty_row,
- title TYPE string,
- value TYPE string,
- descr TYPE string,
- icon TYPE string,
- info TYPE string,
- checkbox TYPE abap_bool,
- END OF ty_row.
- DATA t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
- DATA mv_Counter TYPE i.
-
- PROTECTED SECTION.
-
- DATA client TYPE REF TO z2ui5_if_client.
- DATA:
- BEGIN OF app,
- check_initialized TYPE abap_bool,
- view_main TYPE string,
- view_popup TYPE string,
- get TYPE z2ui5_if_client=>ty_s_get,
- next TYPE z2ui5_if_client=>ty_s_next,
- END OF app.
-
- METHODS z2ui5_on_init.
- METHODS z2ui5_on_event.
- METHODS z2ui5_on_render.
-
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_41 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- me->client = client.
- app-get = client->get( ).
- app-view_popup = ``.
-
- IF app-check_initialized = abap_false.
- app-check_initialized = abap_true.
- z2ui5_on_init( ).
- ENDIF.
-
- IF app-get-event IS NOT INITIAL.
- z2ui5_on_event( ).
- ENDIF.
-
- z2ui5_on_render( ).
-
- client->set_next( app-next ).
- CLEAR app-get.
- CLEAR app-next.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_event.
-
- CASE app-get-event.
-
- WHEN 'TIMER_FINISHED'.
- mv_counter = mv_counter + 1.
- INSERT VALUE #( title = 'entry' && mv_counter info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- INTO TABLE t_tab.
-
- app-next-s_timer-interval_ms = '2000'.
- app-next-s_timer-event_finished = 'TIMER_FINISHED'.
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( app-get-id_prev_app_stack ) ).
-
- ENDCASE.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_init.
-
- mv_counter = 1.
-
- t_tab = VALUE #(
- ( title = 'entry' && mv_counter info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' ) ).
-
- app-next-s_timer-interval_ms = '2000'.
- app-next-s_timer-event_finished = 'TIMER_FINISHED'.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render.
-
- DATA(lo_view) = z2ui5_cl_xml_view=>factory( )->shell( )->page(
- title = 'abap2UI5 - CL_GUI_TIMER - Monitor'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link( text = 'Demo' target = '_blank' href = `https://twitter.com/OblomovDev/status/1645816100813152256`
- )->link(
- text = 'Source_Code' target = '_blank'
- href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent(
- ).
-
- DATA(point) = lo_View->flex_box(
- width = '22rem'
- height = '13rem'
- alignitems = 'Center'
- class = 'sapUiSmallMargin'
- )->items( )->interact_line_chart(
- selectionchanged = client->_event( 'LINE_CHANGED' )
- precedingpoint = '15'
- succeddingpoint = '89'
- )->points( ).
- LOOP AT t_tab REFERENCE INTO DATA(lr_line).
- point->interact_line_chart_point( label = lr_line->title value = CONV string( sy-tabix ) ).
- ENDLOOP.
-
- lo_view->list(
- headertext = 'Data auto refresh (2 sec)'
- items = client->_bind_one( t_tab )
- )->standard_list_item(
- title = '{TITLE}'
- description = '{DESCR}'
- icon = '{ICON}'
- info = '{INFO}' ).
-
- app-next-xml_main = lo_view->get_root( )->xml_get( ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_41.clas.xml b/src/00/z2ui5_cl_app_demo_41.clas.xml
deleted file mode 100644
index 686abaf7..00000000
--- a/src/00/z2ui5_cl_app_demo_41.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_41
- E
- demo - monitor
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_42.clas.abap b/src/00/z2ui5_cl_app_demo_42.clas.abap
deleted file mode 100644
index 1906499f..00000000
--- a/src/00/z2ui5_cl_app_demo_42.clas.abap
+++ /dev/null
@@ -1,189 +0,0 @@
-CLASS z2ui5_cl_app_demo_42 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA check_initialized TYPE abap_bool.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_42 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- IF check_initialized = abap_false.
- check_initialized = abap_true.
-
- ENDIF.
-
-
- CASE client->get( )-event.
-
- WHEN 'BUTTON_ROUNDTRIP'.
- DATA(lv_dummy) = 'user pressed a button, your custom implementation can be called here'.
-
- WHEN 'BUTTON_MSG_BOX'.
- client->popup_message_box(
- text = 'this is a message box with a custom text'
- type = 'success' ).
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
-
- ENDCASE.
-
- DATA(view) = Z2UI5_CL_XML_VIEW=>factory( ).
-
-
- DATA(page) = view->object_page_layout(
- showtitleinheadercontent = abap_true
- showeditheaderbutton = abap_true
- editheaderbuttonpress = client->_event( 'EDIT_HEADER_PRESS' )
- uppercaseanchorbar = abap_false
- ).
-
- DATA(header_title) = page->header_title( )->object_page_dyn_header_title( ).
-
- header_title->expanded_heading(
- )->hbox(
- )->title( text = 'Oblomov Dev' wrapping = abap_true ).
-
- header_title->snapped_heading(
- )->flex_box( alignitems = `Center`
- )->avatar( src = lcl_help=>get_avatar( ) class = 'sapUiTinyMarginEnd'
- )->title( text = 'Oblomov Dev' wrapping = abap_true ).
-
- header_title->expanded_content( ns = `uxap` )->text( `abap2UI5 Developer` ).
- header_title->snapped_Content( ns = `uxap` )->text( `abap2UI5 Developer` ).
- header_title->snapped_Title_On_Mobile( )->title( `abap2UI5 Developer` ).
-
- header_title->actions( ns = `uxap` )->overflow_toolbar(
- )->overflow_toolbar_button(
- icon = `sap-icon://edit`
- text = 'edit header'
- type = 'Emphasized'
- tooltip = 'edit'
- )->overflow_toolbar_button(
- icon = `sap-icon://pull-down`
- text = 'show section'
- type = 'Emphasized'
- tooltip = 'pull-down'
- )->overflow_toolbar_button(
- icon = `sap-icon://show`
- text = 'show state'
- tooltip = 'show'
- )->button(
- " icon = `sap-icon://edit`
- text = 'Go Back'
- press = client->_event( 'BACK' )
- ).
-
- DATA(header_content) = page->header_Content( ns = 'uxap' ).
-
- header_content->flex_box( wrap = 'Wrap'
- )->avatar( src = lcl_help=>get_avatar( ) class = 'sapUiSmallMarginEnd' displaySize = 'layout'
- )->vertical_layout( class = 'sapUiSmallMarginBeginEnd'
- )->link( text = '+33 6 4512 5158'
- )->link( text = 'email@email.com'
- )->get_parent(
- )->horizontal_layout( class = 'sapUiSmallMarginBeginEnd'
- )->label( text = 'Hello! I an abap2UI5 developer'
- )->label( text = 'San Jose, USA'
- )->get_parent(
- )->vertical_layout( class = 'sapUiSmallMarginBeginEnd'
- )->label( text = 'Hello! I an abap2UI5 developer'
- )->vbox(
- )->label( 'Achived goals'
- )->progress_indicator( percentvalue = '30%' displayvalue = '30%'
- )->get_parent( )->get_parent(
- )->vertical_layout( class = 'sapUiSmallMarginBeginEnd'
- )->label( text = 'San Jose, USA'
- )->get_parent(
- ).
-
-
- data(sections) = page->sections( ).
-
- sections->object_page_section( titleuppercase = abap_false id = 'goalsSectionSS1' title = '2014 Goals Plan'
- )->heading( ns = `uxap`
- )->message_strip( text = 'this is a message strip'
- )->get_parent(
- )->sub_sections(
- )->object_page_sub_section( id = 'goalssubSectionSS1' title = 'goals1'
- )->blocks(
- )->vbox(
- )->label( text = 'goals1'
- )->label( text = 'goals1'
- )->label( text = 'goals1'
- )->label( text = 'goals1'
- )->label( text = 'goals1'
- )->label( text = 'goals1'
- )->label( text = 'goals1'
- )->label( text = 'goals1'
- )->label( text = 'goals1'
- )->label( text = 'goals1'
-
- )->get_parent( )->get_parent( )->get_parent(
- )->object_page_sub_section( id = 'goalsSectionWS1' title = 'goals2'
- )->blocks(
- )->vbox(
- )->label( text = 'goals2'
- )->label( text = 'goals2'
- )->label( text = 'goals2'
- )->label( text = 'goals2'
- )->label( text = 'goals2'
- )->label( text = 'goals2'
- )->label( text = 'goals2'
- )->label( text = 'goals2').
-
- sections->object_page_section( titleuppercase = abap_false id = 'PersonalSection' title = 'Personal'
- )->heading( ns = `uxap`
- " )->message_strip( text = 'this is a message strip'
- )->get_parent(
- )->sub_sections(
- )->object_page_sub_section( id = 'personalSectionSS1' title = 'Connect'
- )->blocks(
- )->label( text = 'telefon'
- )->label( text = 'email'
- )->get_parent( )->get_parent(
- )->object_page_sub_section( id = 'personalSectionWS2' title = 'Payment information '
- )->blocks(
- )->label( text = 'Hello! I an abap2UI5 developer'
- )->label( text = 'San Jose, USA' ).
-
-
- sections->object_page_section( titleuppercase = abap_false id = 'employmentSection' title = 'Employment'
- )->heading( ns = `uxap`
- " )->message_strip( text = 'this is a message strip'
- )->get_parent(
- )->sub_sections(
- )->object_page_sub_section( id = 'empSectionSS1' title = 'Job information'
- )->blocks(
- )->label( text = 'info'
- )->label( text = 'info'
- )->label( text = 'info'
- )->label( text = 'info'
- )->label( text = 'info'
- )->get_parent( )->get_parent(
- )->object_page_sub_section( id = 'empSectionWS2' title = 'Employee Details '
- )->blocks(
- )->vbox(
- )->label( text = 'details'
- )->label( text = 'details'
- )->label( text = 'details'
- )->label( text = 'details'
- )->label( text = 'details'
- )->label( text = 'details'
- )->label( text = 'details'
- )->label( text = 'details' ).
-
- client->set_next( value #( xml_main = page->get_root( )->xml_get( ) ) ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_42.clas.locals_imp.abap b/src/00/z2ui5_cl_app_demo_42.clas.locals_imp.abap
deleted file mode 100644
index b0f14e79..00000000
--- a/src/00/z2ui5_cl_app_demo_42.clas.locals_imp.abap
+++ /dev/null
@@ -1,207 +0,0 @@
-CLASS lcl_help DEFINITION.
-
- PUBLIC SECTION.
-
- class-METHODS get_avatar
- RETURNING
- VALUE(result) TYPE string.
-ENDCLASS.
-
-CLASS lcl_help IMPLEMENTATION.
-
- METHOD get_avatar.
-
- result = `data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA` &&
- `AAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB+AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQ` &&
- `BsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAAC` &&
- `SdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBw` &&
- `cHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIAZABkAMBIgACEQEDEQH/xAAcAAEAAgMBAQEAAAAAAAAAAAAAAwQCBQYBBwj/xAAaAQEAAwEBAQAAAAAAAAAAAAAAAQ` &&
- `IDBAUG/9oADAMBAAIQAxAAAAH7KAAAAAAAAAAAh9pMrGnC8gxLKqhaUMqzdVLV49GkAAAAAAAAAAAAAAAAAPPdbSYqcNfyerdabSYcu3R5czFlfc2ebnlurvP0bO1t8Rntn3trmLvZhvWGfpcwSAAAAAAAAAAAAAMM4K0eu5tNfE1vi980FPDj0yj8xytIjzJfPYLxgVehsElmsZ+SR3bzoOO2vbz9Or2PZ4AuAAARScpjbrBtUAAAAA` &&
- `B57FVqdLY0Hid+z91Dn0nrV/ODaeHzCEiWWZqxzpmKK1nrFKTH3Jbs1F624/ICxH7BeO+3PE9d73nWB34gAK3Bcxx62tHu8/B9D7CPqvKAAAAAAUZtLlbU6qnJ816dijlBy6ye1/azP5h5MJ447Tc8reSueU1mGeGFJt2tZetEvtf1W3Jh7ZR63m9hvn9AazZ/R+YGtXFdh+eKTJ2dL35n1dlRvR8G/wBTH3HhAAAAAAY8hd5vyurRyy` &&
- `YeF3+4yyVVlvV9lbdvXrryhBpS/jprWldn5TgxvssNLZynYYWIuTVNBEi5nBPaJovdVpX6R0PzzvPb4Z9HyXO9mO4rS7/z+vl8Ot0vJpnJQx8nr+tD7fwgAAAABWNNxvY814vZQ11uTi6KM/VY2c9a2dKWdG9elQuzZZ2p1dz5aNXcnzrPP6ft/dI+eU/o9fSnD3Nro4bCbCzxbR+PYiTmuv5D1+Ta9Xy6bbfU9Bscr8hFuufovySa/w` &&
- `ATr+xtVovr/H7JpNz0Z+udg5tOoy+WfRqWu+cfR3p3ul4mrxb9V1HxW6bfUe7ettL1kN3i3rayzyFdL3nL4d0d7d4jd8c9XZ1myxiT3DOSSPyJ9jeZ3z5nfc70Z7v3UbFEEfQULRrItbsazsPiX2nqvW4vmu2+rurL4/yH2LivI7Ndeml8frqjGd7y2F/vxpWM/YXuX3fhBjZrpqbpbTQi3HktdBt9VaNpHhrN6drnPFS3O8T3HE630W` &&
- `p38HrccvT6q5wdHZ7fR7jztJZIJZrDPTix0v049LtXDTU4exsN5xW1i3eXud6vDLk61yLWnvS8/wBRpn1o9zh4Pn9nV+Z9OKKxW83pxymyMNfcytGvz5m/3ZbvF75uoWiLZa2z0Vnx9hi3mo3FA22Me17MZNlrN9tTT8j3XP8ALtxljfXbW5ybfV6sNVyUfrc24l0Tqz7ff/Kuw8fo6rltzz7Tk69jD2eLa2oZOTr6D6B83+i8cc6wmr` &&
- `S39A0299fhRyfN9q83egk+S9aaBjz6zZw+F+v7alo4po+nObPW7DNI8957VtnQ2fTWeLKpW1OGbyYz6fk9x2Uw67ien6MtXtaewpMbyHm0wp+3aW+Ow9Fy30vHYMNYzv6nocZ6Sj1ev8Ls5Kj2cOluT22yu6xPsr2hrhFvIOp2x3vp7PF58u+o/F+XWrf8fKer6eZz74xlZsQZzMHD97y3o87b6+5nrdHBZnDf2iSJ5FqcFmprWG/pLP` &&
- `bHYVfK+uXa6mXYMtdVzpcm9XX7CjM6vlur86o4qx01Psz1H0LjM8XV7rm+l8veDX7HYXrr5b9u9cefvQ9GfO7TWaHen2roPh212y+j/HMbnFtZHh9npSvF1rJda9Bhfp5a16GxoTXVbCpf3rI8clvNhR2W0Rxz1kx4zZROns7eG8avY0ZOim16/wCc7joy7LVT2dcdDq+112WvznTd5pNdtBPPY0vX30+9xyoS7u5XLU3L+N60Mdhps9` &&
- `Kmgv67orUgylx0bbS7Xg6LdaSDmiHz3GIo7jSfbvb4vkPa9l57HH85r+VfkPbVfY84193TX+7O3nq9xy6RRX8L1t1868xJ7VnytZu66WLWef2GOjTbjXw9FNphD50Z9jtOC28U6rnsq3Tlhv8AR+0t1cuh3SMlWG9dhHrb2do+P8qxenYqZZaSwRXOXbK0wwnPCTyiHn91vvS5er6I+m8wJfnbcdBxPi93R8v12rl7B9O+U47WthrveP` &&
- `p3GVSbjT51/YeeT+zEC5qJWpq9qFGls8rofJsbRW9wq3jaT6yakbDV2o9Ir2ZKu1bF3UY613NShZq10/mFLLXsvFqvUs85u1ocjBrJOvGx9ayv/T+YG9APn+gw7PxfQg1nNfQ6zlrtP9G9fg+JQdXzfzvrSbHGfi1zmr+5xNHH4WdVnV6WxlxmxV5sPaT7Yj8R5NhOVa1+OYizmwu8pzwWQZZQ2UJ7WOlfes4H6Z6nLzGi+7aXs5fk1n` &&
- `caDxe3XXfqe07sNTv5XqcoaQAB8o0v0/5zxdHU8po+q59cfqX5+7zu5vpny76tpqPm3ul3Hz3pZy2IOLbGPHGEUE1Ppm5s9LuJqg9x55m8wyqzkhxlJhjnLCT2K0z1LtG0V/fZU4UL3FdePV9hwf1b0OfqR7HAxyQCQAAACKUcjF2Y+bdhuQ1ezZz8mg7T598z6m5i1t3i6GM0UK1K1F2MdvWzwjzLGzkwZRyPJDLySOzOKxHZLrNtq7` &&
- `R7DYp1mpn59Z9blqdT577PnhpUAAAAAAAAABzvRKz8kqfY+Y8nq4irutN5Pdrc85NdLtnzziiKaH2izhHJePJI5peeY+Js4QSWjyPH2Jg1l2Pam8+qVrP1HkhtQAAAAAAAAAAAABqdsrPzLR/VdV4nfxvtuj5nTPDHLnaOK3jSayWOqXDDKU+FddlHc0+ij23NfT/W4uiHt8AAAAAAAAAAAAAAAAHnJdd5nb41qvpdDwO7msukmlzGG6` &&
- `53O932jd8/eOhdw6I0fV9L2PucGi3x6PKEgAAAAAAAAAAAAAAAAAAAOUo9ypPPbqdSfPTaoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//xAAwEAACAgEDAwMDBAICAwEAAAABAgMEAAUREhATIQYiMRQgMBUjMkFAUCQzBzRggP/aAAgBAQABBQL/AOIEik815E` &&
- `7CWbYQtyRJOTM6tDC3tEx3eX2xv7R5/wBOfDNOFaWcGrPIdorXbxrsUciT9qb611bkeZsIuLMjCKwi5C7MxYD/AEk9qKOJ7QaF7TdqIwFecgl5eJCzytEjIQOfc82P+w2XVh9TKy2yhhkM0oI3/wBBO4jiM0vOZmZZGVkd9wzHpv0/oHH9rO27cUdYqtYMEXnBqamzDOUlgmWb8jMq/wCDyG+TOQ07M0bSxvkjYxzl9gOb5v7n8sm+6D` &&
- `x/S+Mn5SLC1ZVrzxwy90b/AIrMiyWvznJ/cWuBJHuTugcNj8FY4cObdTn9HfB8rifAOb5y2wszLVT6eao6zL+CeaKCKW/aOpXktWo/zyDdb8ipHZ7xDRyYzYzed85YTkZ3wqMPgkZthTww2O+Jm/n+unafuU5oUWBw8f3ep9eNKcwq7Yw2H51swvlt4GeNRG7EYW3+zxnlT3MDA5yGK45SyhRy3KnOWKMkPgMNgvT+B0m6WP2+otfTSH` &&
- `gqW7EyRjOIGEcm/M0cbPrUwSqqnYsc84VzcjNzgPIec23GxGbHouOubdY29r+SrbZv0kZRlJzEK5LfZK6xR9yXVdbeCxFPBaEq/EcKbfnPgao8Bd+TMvnCM85tixtm2xC4hj71vaFIZgZbHKO9GuXGWCsiMRxzbouclXEYnNzvtuK8pSbTnCjpqup09NhNrVtZwWtN0tZ4NZuRpHHGE/iPzyG1PjRhW4cW2GecVdsbY4qXIMhuwyOLgF` &&
- `qftWEne0a4r9qJ7H1GnQ2y0HNXe+0l5xaginOwXbNs+MUk5vxC8jl32PptgFI/Ed/XZ7U6wVNPnapqGoZUqVqiWTKEb3VmkIxZD+ezZiSabeRpO0mSTESmeUH96XIqzoIlkYzU45h+mRQiOojJ9PHstZRkmn13apWCQNGrY2mDuT6RxSW7HBkNi5CrXZmyt3zEPGKyjJJG4x7yYWmU6prKai2nC5chqVK9RbOs6bXz9Xu3M/S9RtiMwB` &&
- `FUvioB+aeITJZijUS8VEvGVdOeGdpOOJtkpULJIZBAeGI/L7Dg6+MfYZskmTVpt5I5pZGWlVdos2zf3WohYg0+tQkw6tbuv+jWreVdNo1clljiSxqcfb09u5QMqJH+PfNTuTVY6uvVrBlmjjr6hqUggBsyzpp9iSSvEteuXbjPOVw2lV/1FWyOyDjMpSvIZI/tY9FC5KX7tMSLHPWr2MkpKK9ebuY3tMs6RrHEl7TJl7kunnWIqwq+q7` &&
- `Iv6VqMIp6Xsy1YxGAAOmpTtXr1NWO7XuwoII1S7LVl1K/tAbM/KpMJ4LOuLBbteoavCXUbCkak0jypHLPJekk03TUMVeqO0tDuu8/8ZmLPdlOGZBO86bUZA2CVxlUA/Z8Zv0OSS7LuWaNYFyNjHEMuV6thI4IKGpN7cjtj6PQipq9PUJZ68AVkC7koAvSC0ZIDYeZe+e3pl2TTkt6oLNQz6kSJvadYv0ZK917WRhmJoQb/AECM8lFXX6` &&
- `AZDwVmnHerR9uM+TqBKJZX2S/+1YmmY0NzOCA1ItwHRfgndtsLAY7ZbtIJZboZorQfKs2UXSNZduOowrJHDyReRhT0/Mtmbp6ktJiqwRcPksu2KufRKcAChQFH2GJchcMgYYXGKwySQKJpxtpvLaWQ1dRQqyv82w0j213MsbSKIpCa9E4xBer4A6DHfge4zYx2yzORg/cTtgmeFlytIdqs6CJwNrDSMxAORycF0CuE6+oQsOrowZW+B/` &&
- `I4vgL4N0vHVRHWIH7GcJHGTFFt4GzLknwxMktCUSrqiiKh6fl72jWPa7qvdtQbSGBkf9zi6WNq0DAtZSul3WSMbU7UuR6paRotXVxFMr43xb5MZ7vFIH7iVCWWIf8AGpuFLYg9z7Sw6T3ZrKqFXGIVdQnGr3IzthbpvjHPdngibTVL1qvBMHjD0klWLKhKQmIMeTKW840cTGGWOJbsPeTQuK0m85OVGScp8jjbII2lEsBDWX7MMhdpOo` &&
- `+dNk/aaQkSv7rVcDIgu1U9kJuTUQyVz8RbfVceNnS67Rr09WTtNYAAH2E4Vw/N0BM5e5CCvWXkrxbMvxjlWUboZAcqI6zFv2dP71eMEY8kImX/AKv6PjJPcbNfmkoZZNxv1rWRHKOJaxHs8gZcPMhVytEDlCJkuz3qql+5XWrStPYHx09YRxF6VZKsP2q5xkHG6haFCsizuI2HWX/qi2CNjHJv4OcqN7q7ho527KJKHFqKSK0cPwG2M0` &&
- `0cMjuM1qDt2JU5dGYKsTlxpUMk06xIuWIC2SRAEx7Yw4oqFo40VM0w86FkJ2dMjjjPX1CbMuv/AGsOSo2w32xxm/bnqx9nIz9lRdovGFcn8ZIMDlRSkLp2YJ404VraqstcM8chGS7ZX3ZZoe1kkth45+KZ3ot+BICnfSwtara1WrFKSNmYrKieYoQFpQuJW+KBP6dYkkLaLqcl2LR9Ug1Kpl65FVWxNJJr/wB3Bh0cbpPFKIySzxDrJ/` &&
- `ADx4zlhV/qLhdWIJOnxyfStMEhuDuNpk/PJIuUzwyxksj4u0KzuJF5EZzxoYmMtKu2GnJxFGc5ptatVCjcHj9QI/PZ3YZqjt9P3U+mDcLmnqDIaoeDu360bnULUkFZKw6zySxtYtxJUrzFqvkBvOKdstxCaKM96xGNj08cuPgr42w5aj7qtA+5T3HkM9vANwkgbnGVByairtbhsqLdEvk8bQgd9yJHRlkDKjxbwRExIqAdt5hXqurcPC` &&
- `rv0MIDF1xuTGuu2JvvEcY4V3w9GtIskNSxwm9K25pqmgww2eI228zLtki80UtHi9QGJ2bCG23Occj6e04++RO4DSK8dG1ImRS8o45Q2P5yWJmW3GUyeFcaLK1KOQR0bPOPT25JWC4EAzbxtn8VtyiGGtcLSVi8mE7tHyXPPOJ1wsMLdN80erNqWsV07UHSTwTk536Ozzug4Jy6MWAq2ZpGLq+c9pGPmP8Ak5xG2ycLJkvKNmHEV3R1Mk` &&
- `aYthomq3BNGrjjH8NocDW49IfKkNeNQV6Myqu+E5vvjyZavHt3e3OzlTntUdxsXNxh2w9NU+oNnQNPGm6b1lsQDJG2bGOwoN7CTi78lXPGIiIfbvPEtiLyrRHfJP5E+xmOSDupscQCM9/bDDs/1EmLqMG0mrVIIV1STc6nu0traux5FW3yWQCQluctjkxZY4bWoYZHmwqBm+FeeRrnHYYHyQ75JKiN6Zi7+qfZrtUzw1p0kr3eVTNOjF` &&
- `xUiCqcXYFH3weegAwuNs24tIds38YnxKu+cX34lMVuEcrIX2jbIo66YGj37cThYJfp5Z27kN2QYl/6ZX1NXr92btSzSSL7e9yO4PIquIo3ATbYZKNuhzT9Os6pNp9SKjT+yvo8Ea1tOKapZr3reRJ+k6/f0arZS5Un013AXIzitgJ6hc3GMAUQgOMXGGxCjkxJXtOymPgFj4ZuSVbfGH7KkbGDuKI1xj73i/bhfGbi+tR/8epMtrOPXk` &&
- `dt8Zick2sWKFG5bWjWSrX+3Srf1tP1JBLG1OxHbq6/T+t0v0ve/UNG9ThpCzxSn4xB4iB2AwADDnLOfiYBZcXP7TEHvObbkRqceFebx75CrMJ4jyh/jttkLMJ3yPl9VZf9hrEdjTadClrFK16YtVhBZPftWoqxkHOIR6lXVINUmFHSKVaBEVF+67y0nVAUliqN+h6rnptxQ1+1CLEGpadCqmFYrSoM22Azlm/RyQflot9/ktiYvQYpxz` &&
- `gxXAzcg2AJMUBVJzlg2yQK6inG170o2+m5qmm09Sik9NTo5qTR5WoqYoa8UR/BVss8gab0/atwVtTpULk2k2PUivWkqzx2a7KrZPBIJ99sjlEgzjmwxskG422yFt25+1vjB8YM3zfP7YYDhHg/P9qmcfHfTt1OfP0XIWqdSAfx65pNbVa1ie3pyV7n6Szaho2rVdN1C1Uq/wDju13NNzWIzLp89WVJqCTBmTyTh6SfxL5AT3mXN+m/3H` &&
- `p/TEHF+cncRxdt2kSvaYena7VqP53VXSf03oszr6Y0UQt6M0ovpmm09NjzUp3r1bM8liVH4FZd8Yqehxjk65CvHOftwfaB0Of2w9oHlVx/B1BlMMarNe03S0rS/wCPe0oyyuWWRG6AKcchQZUAB5FFGEdFGHDgxeg+WwD3N8EeVOwk+WhabKWnQwf5Wp6TWvZd0+1QxGVl3GOw3lILJkfwfIxW2zflm2AYBhxcbBjPh+GyYuZtH0y3LY` &&
- `/y2UMtjQ6MmWdNuV8Oxx/mIe5V8Hx1U7ZzGKw3LjiMLYCSPgA+WOWG4QNGfrIIkhT/ADpqFaWTUoYDLGnHEbYJ7maIKWGbYevL2jydxjHOWM+XGsCv6cgsWbP+gtUYLBn0iKTLNGaqIQJFlu1o5kIzkoxvdgDYegGH5Q+9osszwRSsjSJolZq8P+j1jShYL0xAm70sBBG+cm6ADGI2PxZjkdIrlmNNB0uSzXqaTp9WT/S3NJeSUaNZ3X` &&
- `Qmq42lpap6h6YqcXq6tUEE0cyMWijgtO4cO+aJE8h/1uqaJVuSSaLZsQ6dpwrHtx//AJ1//8QAKREAAgIBAwMDBAMBAAAAAAAAAAECEQMSITEQIEEEMFETMkBhFCJxYP/aAAgBAwEBPwH26ZGLlwaWVtZoY1X4aViiY4aSWNMWOPB9NcDwpk8DW/j8GON8mPGluutdkkZowkrXJVdsY6vZhxRHGihIvq0V00ozRad9mLC8hHAkq9iMdT` &&
- `ohjUe6l1aEZIa1RKOl10irZhUI7L2cEKdsRY5mtDma35Hk+BZdyxj2JSo9RCnq+SONyIQrghGpl+xgWobfg3KP9KKsqhwRUvkUmuRS1DRmbk1Ei/jcqT5ZBLWq6RxSkrXRYpOjJheMWOTZ/G+WTwqtiEWtkRVbiNUT+r60KkNWbeRqt0KVozKX3M+pIw41JLUKCXHT6b/weO+RYv2Tx6lQov5NK+DQiWzvpHcy422YoNLca6bsoXTjYS` &&
- `M7Th09LWnqyLlxXX9Iv5GiW6FwQZsfsnkci2YsjezORqWrcxp1uPk8GSepkVqdGKGldnkvp5EIcdjHG9iD8dOdiacekN3sb9JMkyb0x6YuRKlS7M6sgklt089Wfa7RLaVohKxUSxavJ9CRCMoPghKXkctx7j5Gm9vkfpZmLD8dG6Nauhj4IcdnJQ1ZONKjdEXa3E09jdE8h9QUxSsZjXZP1Gkc2yxkN9yhoqu1414HEdtlPySjRFWaaV` &&
- `lfBHH89nqJVHrqlGWquTJkfNbEPURfY+5UOCY8ZpYoXyJqMqfY8lE5anfX7lpYv7KmVUqZDJa7GuxdKKNJo2M7encx5pQIZdY8yWyHJvsjlvnk1p7+TK1J2jHkcHZDLr9zJNx4M/2+2nTMWSD49pdMuVQJScnb9xNrgxeqa+4hkjLj2cjpGSep376bXBj9StNMjNS4L7Xtyeoez3/CjJxYssK5H6tEPUprc1I1J7GbI09Kf4+pkpuTt/` &&
- `8AL//EADURAAICAQMDAgQDBwQDAAAAAAECAAMRBBIhEBMxIkEFMDJRIGGRFCNAQnGBoRUzYLHB0fD/2gAIAQIBAT8B+XvWPYqeZ3F4/OFwG2zvpiK4b+DdgoyYzgTUXb/eJqSowTDqG85neY8xNQynMq1q/SPMBz8/Mt1AXIl+oY8NN/tM9dwKwMRwDK255mltsqbax4gYN4/Dbb2wPkHxLGOcy3UGM+ZmbYBPaZmeiMfGZo7ARt9/wa` &&
- `rWLpxzH+IOz7sfIts7aFpbqmsP2h5m2bZzMkTuQGDoRKbTW4fMqs7i56O20Zmsa6z1P4+TrLsjaI5yZiVUBhP2ZsxdOMifs6+0TTYPqj6QgceYVIgbMJlI3HbPh9uRs+0e0Lx7y24N9X6TUuWpMz8jWN2v7yupT6mmUHgTvcQWH2M3mdxl5ELk8wXvN6eNsamtxheI6duK4M0QRFLxwf5jiBqx9IzNSz9k7ulmrrrfYxgYGPq60zn2mm` &&
- `1q6gkAYj3qFyOZ/qBIyFleqYNzyP8AqXWBuTLW3cSpd5nZ+wltZV4fPQECHJlb7BNxzlTNwcbXj0BCPtNG9eNg8zspnJE1mosrLds8Sy2yz6j0a5Bg/VBqgowBDqxnO3P9Zp70R8kR7F9lxBe494NQ/gSob/QYRKm28Sq1dvMvtV39MzBAwB5iA2TZWP7S2pWGVhU+YWO3BmkDC7IHT4kW7uOtbAMCZfTV9W//AB0XzPI3mFR/LKWAbm` &&
- `Veh/ylmNxj7hyJ3HP1CG0n0CUaFE5bkzsp9prtKtfrWU8CIU25EbBY4lnEb6hNNVsXMscIu4zUXm18/gH+2CZZXgbugOU5jGZz6pk7pqGxhpao4MMAK+oyhxYgPTUbdh3TuLmLqlHmDVBvEQBjuMqUWPg9NV9Mscu25ug6aB9uRNSS3LdEOF6BPGIAoXMr/eJgxeV2mWrt8Qbs5HiU3dvwINYv2mpZbVxuxLq1H0QV+nmIAg4ir6Jwo3` &&
- `H2xB8RqJmq1Z5Dfp0rrLnAh07hdxH5dEOGBl5/ToviGKxQ5m9m8SqxhEbcd04PmMNrZWI20ciFkxmbc8zt5hSbIuRndLm9paoHQDMr+HB+PH/uLSBj3xGUjzPMuXB7Y8COm2V2KoORA6scGMpEErYTdBccYMBPtEyohsOeBEfMZsTcWMU45eW6jIwszt5MZs9PhtLNcDjiAY6dmu2vYW8TT6ZFUqp5M/Y7F+qOm4ZhGOgOIFyIOYlm3z` &&
- `E++YPyMbf5Jiah1WLqhjOIbUOCRLLyDtUQq1lYsEdpnoml3e/MoTtoB1PoYOvj/wC4jjtuGWE5TKwgKdsd93WsY5hXH4Nxm6ZUDidw+07wLgkTSIgcbP6zU6Ou8c+ZdpBSQPf/ABK9K78kD9ItajnH4Hox9Pj7TtlPSRlZQpRdpmo063JtMu0nZXk9a8kS0YhOeoHTEJxNLpxaCzTRt+846Yz8mxSykAy7SXglmjDExK/QJY5aAfgIjQ` &&
- `HM0VHcA+3P/iIioML8xlDeZqvhgc5TiGlqWw4juNsMHEzBiZgbMJzKF5/WU17Ex88qG4M1GhsJOBxLaHr+oRqyvkQ9MwGJWzHiaHJZfT9/4J0DjEbT6jeQVyIPhNhPniW/DWU4Q5hrbOMREao7jNLUtibyuMzGP4YoDK6ErGFH/F//xABGEAACAQIDBAUJBwIFAwMFAAABAhEAAxIhMQQiQVEQEzJhcQUgQoGRobHB8BQjMDNS0eFAYi` &&
- `RQU3LxgpKyFTRDYGOAwvL/2gAIAQEABj8C/wDoiKiak0INTURWNGDBhkQdaM1nQit4/wCUZV94rJrvEZZcZ4eupDAzp39ArDMNhxaZctawoGKXjiMnsN+x+PjRRVnKrTMReuZjEMlUE1LnCAMyayPGNKKznrUGsz/knWF0wnjOVddYw3l/tarZwA4+KPIA512MGIySsozRz40Zus68jGXsFZ60r4hC6CM/bWDNVOoGlSZ5ZmhnSNk2Hg` &&
- `aWQsTGpn2RX5vUriywgY45cRW4FPjQDVH+Qs7MFAEyeFOOt2hwVOsIAfUMVBt2eKzkKwOAycjWfn5dBV1VlOoIkViGz2QRxwClaAxTsltR66Fm0tw3PThOx4zUnMUY/EzMf0MSOjKssJOoxaVxVxqp1HTn581nr0R0YVYgTvDLeHEZ0lpQbWiqr5cNBz9VKhbt1H4bq90W1WTJMRA/ocs66tTcYgwcPCvzFLYTK2xJB/3HL2ikduu6wL` &&
- `Ha+IGVGAATrA/oIJpWGQyG7p4Rw9VC4Du8+f4LXbzqiLqTW1bXsDP9mv4d05Yt2MQ5Vd1APosRLd8/0EUyszjhudr1Rn7KVbFnq1R9CYBXuisK31S3wC2sx7491a+dPRPm9w812V3340PZ8JyqVuOwMDDGh+RzoEeeNj2e4qPH3jkYsHKBzoPeZ77j0rrYj79Ojv8A6BerfrA2QKDEPaNKxLsyC5mfvGxdW/AwMvfTObl1y36nJA8BXH` &&
- `8Pd87IVn0ODkWOTTr3d1LszLEDXzrdoWOvuuMRXHhgULm2MBvF2UemxM58OXsrn0H8dXZFLIZUkaeFNa35fSBQxxzjo1rWs6y6J/Cz6R0BWQMj5GdPCgpbHHE0COz5jXLhwqoknkKubXcd3Ut91bjew+iI4DTXKsTq+HBuIilpPfGh0/etzI8QdRUnebhUnj+PNKxA6z0cpPD+KxsoEZgcRWvTmakZipFTRt4hjGq/OusKyg7UcBzrDk` &&
- `bbibbjjzHj9cKSfyrqwO5h/Hw6Lu0NoqzUlYJ4eZn5hBzFG1cgDMqT6Q+UVxhu7p6zarsfpQdpvAVKk+TthPL824Pl9a19k2O2b1//AE7QxMTnqaNx7v2X/Ts2ng66s1fdtbMsSSvHvP17NB/Qb7Cxb/SmbHxPy99FbYkyMRn4njlTSZY6nzIOQoGy67UnJjDe3Q1hMo/FGyamtC3cOEYpGYj40cEu6+iuVxP2pkg3Z7FxWwsDwn+Ku9` &&
- `W2LenDp4eB93CriNubRaGPCRmGHyrHZtFyRIxbopLu07TbbC26vZVT4c/GjsqFrdpfzWKkE9wq1sCAzgy7ujPo0no760q0VFovilS1yI/fjWL2jlWs99NsfkJBddTFzaG7CeH1w411u1vc8o+UnzC9pvZ8zyo/br32Wwf/AILJ3jr2mrBs1lbY7uNAWhqYLZbo50k2jbYN2SMx486gf0Bt9q5+hBJ/jxOVFOsu2rZJxYIkZzqNDMjLFQ` &&
- `CaUEtqjEic2j5V/wC1uHww/vX5eBY55msSq57i5PxqCMPjQF63buj+5dK/wy4Txzr70T3GtIo4s6DMqsR+pZBFBbqJj4xnUUzptN23iaSFC/MVOzE9erYsdwyW7iaw3LF1No06oqZPgdK/xOzPcnjaEx3RWGz5P2jF/wDc3K+/6sPOidGZodWuLxMUcaoOEq0++iRbuRzMQPfTbMt97Hk+1qE/Mv8A8UF2W2PJmw8IH3jj640epSCe05` &&
- `zZvE1vbUrGJhN74UP/AEzyc5U59beyX69dR5R8ptgzm3YEAjxpbWyB1s7OWtZzm2RP13mian8bAzOB/Y5U+0UNj2VFtCMT9Xu4V/n96gAKq5ADQUyMMiI1pCtkHLM/o7vGsRXTuo7mHP21hZ29Rj4Vhlo/3UBifLm0/GsJyaJ7vwc6zEU2AW49Fjn7q6r7RctxBuFcvZx99JZQb9wiY3jnxY+J6QBaZjzBim2a5cuhbgzwfCYyFPtlwL` &&
- `Z8m2m+6R//AJSPSbn4ePrNvyRsmNQYN+7kv1oflU+VfKNy6P8ATtZL9eqh1Oy21IMhok+01ju3FRebGKf7Ev2y4nBOz/3aUhN1Hxsz7qwEk5r35zWBRJ/FW5Z2VtqGL7xUbeC8wONYkB6o6Nx9dNfZvu1XESM8q+x7PP23at+4wbKyP4yHfrR8n7AEVNnRQ925n4QKuLeu9fhIEO+FTxnCB9RSoSNxczoK31wzw5VCtR6y4MS+iMzW6f` &&
- `aI6MzhjMN+nvoElSea6Hv/AAMxTJbJr73Oh1tm25GmJQaaxaVUU/oUCDzr7PewrtS9pOfeO7o3vZI+dbRbt7UEZhh3fvSoPcKTZtnuXtpC5Ll/4ihY8neQWsga9edTzzisWLY9ij0dZ/8AKlvbR5avsx1W1ufXspbz3pbiCgOfrmrdt2uXlt9kXHLAerSgAIA0HTjQZzFYb4/6v3pW2xUtK3ppcxKPHQ+6KkGRVvCowGk6g/mCZqLlx2` &&
- `E6E0tz21csnY7zqujIy5+qaQWy1t2EkXlKRQu2la5bjMK1FrFzrXB3kJhvYaN3ZG+z7Qc3tsO14j5iruxFXW4sXMHHIzlzEisd5XXEROf3l5vkO7+ZDQOtYKHfXEQOPOr1+8hQu0KCR2Rp86gYczGYkd9HgBRwmM+dFG0Czl8K/LaKCgyDkD8qIOHD30LhSLkYSTr+BCLib3Vj61G4HATr4g/KgAkrixQd7P8AVnWKSyYdJxMv7/HxrK` &&
- `o2m2jDQYu+msomBL9uUz4rqPYake7jUJblTkhttMcJHL1USLaBiZZ1t4cfee/p6q2DMgzRCoyYDhhv36D03Nn2m7lhlGPA0UsYQon74jTuHOlxYzCjGUXER4CiiNdKnQdU5HwqHtbQ91WnKydKlLUqOyGgeqpvHC0DETkJ8aazZwXlIkW1BxeNMtzYb4fU/wDJiirpukan4ViRMB/sJX4UjXXe7g4OF/aagXHjWG3s/XnS9Zfe5hbFDR` &&
- `88/fTFQDdYZE7x/wCKxYTmYUDUnkK3u22beNTThIxsMgTRDGZq53wRQtvccrbJwKTkvhVtTO/kw9U0MTb3OhiM/gdSExGN/wAKO+s8c6yYHwNa0NmkZDcz17vdUMJU5GuquMcJO43FG4Z1DtjGQYxxqLnZHpnl399XHV8QtoFEaGf/AOR0jY7M/aHObDLCvH676CgBVUZDzcCO6Wz2kByI+XqqAIA4VCgAch5pKBVfWY+NBsxI0PDzZP` &&
- `8AzRuXNTw5Ck2u5ae5YW2RuLOA8T7KDKZBzFRUBwuUxh19dMp8KDLk61+VveIrrLjDTdwns0Ms8VDzO/pOETRZjixNiPI1hAHgKBAzoNRl5ZnAXFwb0Rlnr0NYtwAmTPy4wO+s5GPLLhRTaWVYGbcI591XLwaQclOLUa9KXrmQvWgiGOIJke8ee9xJxDumgxu9cGzDxHmsx0Aml6zxduR/ap0oMpDA6EdIt8NT30YG7oG/VV4TJNp/hW` &&
- `yvEQmH2ZfKkMNnu65D6j31J1iBREViQa6ihhtEk8zpQAdFnhE1jYbxrez7hXV2Lbf7q32NfmMR3mpu24aeGdZUaZAwTnzintrbyZdyDGHPXv4+2sxTWsQgCRi4UTm2eId9NcxG2wGHF+mePRfB7XWmfl7oprY3T9Z0pe0VQAq/JmkacY1qB0FmIAGpNPeVn+yAwnDrI4+HnlXEqciKNtdpuSpkYt6QeNRcvXbmeuMj5+aMRzOgAkmgrC` &&
- `MzA5CchWISjHUrx8edYbgg/qGh6PvLaMP7hNW2A/NcQO9jUESujeFG0ghLd11Ud2KuPqrNoMSBRNu2Y4M2Qamx2d4cFz95ApisKvotrPfWJgJ4d1FiCY5UWu9vj5mpFfmBiuta1nbIJ1YGR9eqsxucG+VYbefhTnFvERA4UFGlXVtziNtkC98cejaR6XWgx3YFHypAGRce7BWcXHXhxp7ly2iO7Tuti9ED5dNryWpZVKdbeM9pZiKgCA` &&
- `OHn50l0cGA9Ry+vCtDUjMeYt1RMAgjuoODIIkdBDCQawHNT2SdfDotktz0XLDy+H/bRo3LlwYTejAB+pvjLeys6utcbAouYQh3iWgH2+3KNKEggxx6MuhkPpLFMriGBg1E5+YoLLyg6/WlFZhgJjurC3Ec86hT7ahj7KgCsR7hNOZbCLa5cNT+1dX1ouPPYt7zewVtG1Om/m2A8IGQ91W3W+rIhneXM+P/AAPMXrLK3br7toHU/wAVgX` &&
- `M+kefnZ1OtMiZk8zx4e+g66GlwkYmYDD+rzGzIy4a0FUAAcK16NSIzy7ui6xEaKDzH0TRz1yrXJXVz4Ag0HRgwPI0m2LhuIxFuDl1YMaZ8+6emGpcb4QxyPD29Bcdls/XxoMphh0SanDApcEYR2zROESdT9eFFlJnUDvoAjWsgvspmImM8hWAai4uviDRga5mtlRMgEiIjMa++aKu3bGGfGrhVjv8ADl5hW08Mq4WJzFtZ+PnESRI1FR` &&
- `HR3ULU3jIgqHbtHjw1nnRm0inmNfr1+bphBzA/SOVa9AVe02n79EUDhhSAw76i8JBGE+FdSgw2rglB3jX5e+jbbQiNaNq+cWcLcyz5SOHKeY8OiGq4XOJXbKc8tPfr66/w102h+jVfZw9VdVtGzdYp9K0+ntqSr2wT6Sn6+NRjn1VmjEf7DUYXnlhpVYy8ZmhbxF3JjCgmoImaTsC22Q8avPilMZjOfH3zRe6cKgTJqbjq2C2qkaw/H3` &&
- `H31NW9oKFQ7M4HczEj41fukqTbshk5Kc8vhRSwyWdsKygfst/HCuvT7tkyuo2ts9G8ZfgtXHVvzlxXl5RkPPnoyNbOtxVCpcWWRs555jnTIwh117+/zD5mMBWUrGbRH18qAVR7a7XsyopcLWid2Z0yjKgcxMe+reAw4O6e+iCMJBwkcjWLDbKMmG5Izbl8Wp8LKV1UnXwP7/RlZkag6ijCtgAGEATzqVxetY6ZNq2x71FEm2Ae7Kgtva` &&
- `7ygc2mobyheK8Rn+9PgXNRm5/epiktsgvelhy3e/4+ysOFQmvfNSzuwmQp0H139H2a1+be3RHoji3q/ajYtrCWSLcf9I/er1thlhHr1q/s1wnFbfHbad4d45V1Y2i8HgqXntKTJB56msGx7S/VRAXIlPCco7qW3dW5YOHFcua4u4HhRCatmzHMnzAVt9YkZga/XdRvrcUysp30Lt1cLZ4h3jpzp7R9Ieyrl1exART+qJ/fzBMd1a+YuH` &&
- `gc6yEZ0DP80QuGdVnn/wA0t1TlrVu8NG3GPw+f/dQPRjQ4XiPGslDNM5cO7w1z8Mqm05t5NppiPH65197AH6sWtEjCqzlK5mouHwIFYsQivzFnlOdY7n3KasSc4+VAQEXtAHXxpcPWWxj17s8/CusvOrvEDCuEAUem68sSdSfhW02tHu3N2NYwAT7j7KxGYPZkaUzRnz8+5ag41AgH0poRZutOeLCc6S51qInW4mttw5mhdN53QN1nVx` &&
- `lj5/OOdZdE0yEkSIypbd0AcAwG6f28wYYmeNadEeZgOFbnLn4VGHC65waykpqeP8/XhRSRhbNW1g8DRLIcPHCZ9fOhcQhlOhBkGstejcfBHdRu3tnZgNXUyo4TB09VYk0OhHGoOdG4AN3KQOVfdi2qxq2fu/mgz3ccZiV7Phw90561p5rXTook1cs3yugIjlH7zTHGGGZU8xOXupqJPHzMugSddKuOyr1SSqP4f8mktzOFQPMmhHQ9u1` &&
- `gCDddmE59woKCYAjPp3BJ8YoAlbciVnexDnWAnC4E7prC3Hsnn0iprMb3A1lWLhrUDXjWFbNxBxwXXSfGDXW2Gxc0dyZ9Z0qc+8HVTyNTXdT30vXLRuahVWPhQ666IDf7pHqC/A0MCtIGr6/WVQOgs7BVGZJ4Vy6MqiurO7dL9n+2f299B81IEZNFBbZhFUVlUVNdmsunZRsttrl3ewqok6VasHO5G+e/zGxXkXCYOIxnE1APRNXSNGv` &&
- `MZHHzTgRVLZmBrUxnzoowgc6wwSOFAjzOVREHlW5lQnTQnke+sSrINDfCxwI1rCcjy4ipLEngOJorC4weWRFb6xzq5fRlOFCwzoCWjFmVOkZ+zL39ASHnURx+v2rEzaaAfWdAKGcEwWXODRd2AUDMmvuw0N6v5FGch0ZdEHzVVmguYWr21a29nTqhl6ZzPsEe3zftqS2ERqIjWrFxRlcOARwaNKTrFO+wRSM8zV5dpd71y0/ZJgeMe2o` &&
- `CgDkB529WQ6MXPWsR0FEdPgahcJPM1nRVVnkOVawTUMisORFHBaVD3VvJX6vGriswLsCO6KxscJ0+vrhWbtEQQDFFLVswTOKSxnvpurxddoN33511YdVABGIHEx75ojfAxYgrPiilQkYzoJ1o1p0Z9GXmfbLF4WVtHDbLpMggy1W9lsTgQcTme/wA23iLyINxEaLbtzw1tOwpfe1etsL2yydwxz5/80m1bTs4XqWVrezK8ntCSTpoK2T` &&
- `aryhLW2YlvrkQpJ08Bu+yisYARmOFYmxCwDDBs8I0kdGta+e1oRuxpw8yagVDhVH9pmahRAGgFSmQ/TWT+qPb8qI0I1FM+cAZxWQiMo5VrHfyqShU8jwogJigS3P8Amsdth/u4RzoWyN7iRoaTMZmM6+02t27aOJTy50Vw4L6/mWjkQfDzs66mJtW837zwHzpNlK4UXdaD2h8hS2UGnnC6VwXAcNxY7LDWrPlXZRN3Zu0OafXxpNotHc` &&
- `cSKu2gJdd9PEfUVZusZur93cz9IfU+urVq/ab7B2rjomIluC5Zgd/wom0yuO4z52fSLizOIA+vL8DMVigTETXI8COFNbuJiBHDjWJNfjR8YI5GpQ4hLSJ7+FFjZZQVgliPVofGioANt+0p+Iq8iSIgjlJzPxouUIa3J0yBwmr9y3IKo0htQRVu5ttgO5RSGGRGXOsfkzb3bDpZvcfXR2XabZsbSnaRvlSdbO/x5UwD4JHaHCsKNZvqMh` &&
- `iEGsJexbB9JASR7fGkQWcTAbzEziPE1hRQo5Dz/wD1BF/wm0ZbR/a36vrvqRhdHHiCKbZLpjYtoOK0x9E8vru6Ns8lndt3vvrA0HeB9ejRtMSAeVBynWLOHfQUqIoWVLFRlyz/AAADzmjOnA1l+DhHRmM9JBg+2oXTpmsLaSDVwNjC3Fx7pjFzB93tpVk7gC9HV7VamOy4yZfA0Ln2w7UEnAjpBz7+NHZhItnLCw3l8KwXrSiIKsuvrq` &&
- `UEEkn8G55I8sIq7QBH9t0cxWBsVzydcOR16s1gaHtvmrDh3il8neU2+6P5N/h4H6yrZvK9gb+zPvcJX6y9dJfstit3FxKa3lBir9y/ct/aCxLKTDROUf2/Ws9G4yv4Hp1rLpIxZDKO+o/FPS930VkH1V11475EBZyUcqfWCZHt/H6u8MNwfl3QM1NHYvLuznaNlbdXaFEg+Pf78qx7FtVvbdicn7rFDr6taNi9dVJzi5ulfXzp7W27Jt` &&
- `F3YGGHMdn11e2Ukk2XkeDfyD0XEWwL5MbpAPHWDrGtfdWbpCnX7MU//Qx7acPZ6s8SXxHz25Ze36ipH47XDoomjauF1uXLgaA2QGuXsoqu15Hjg3hWArA9HnH9AyOoZWEEHjRdthVSf0MVHsFC0dkxZziLmfbWIXNqUfpDiPhTJsdnqw2bGZJ6GuoASOdG5cOfwrLzshnWsnj+Nl0KhzDOo99JZjenIkV1jEv+nu/qLl1HAnRcNGzdQp` &&
- `cUSR+3TrHRn/RW1H+qn/kBSnCrMOJX+q38SNzSi9z76xwuIMx/uX9vdWJGDDmD0Z6Vuj+hS2hw4pJPcP8AmrT37hFhGFycEF4Mga+HDh/WFToaLWlaxd/Wh+POjK9db/UmvsrSa06Y87LzT0PdicIJrZ8GZYm3Hjn8qCooGX9f1nVgPMkj0vGuqCmzdGu97xzFRikjXKCOnOp87Pzb/wB2jJhOjQRlS7RfwWksHEtsbxLEEZn9v8hxOC` &&
- `G/UDQzzGh4j10S4a6n6lG8PEcfV7Kx2riuvdX2e7fUXeVZ6fgCpmhba6oY8zXUAb149WPXlTFwQzHQ/wCSC9sw6u/Obpukjv51c2e6Q5ZpuA8SawmW2bgeNv8AipBkdEdOVTQ6m4bbgyCKxbXs910/1LQkGnv7VbKddcJKOmfcD3V1lnZLaPM4gP8AJmu27yyx0Iis3tR4mp2bBfWc7NwlB/0kafWlfZLmxG2pO/cuMMX/AE4Sff79KV` &&
- `vJ9s7OwmStxpqb2zNtVoenbXfHqrHacOKF1skMmTTEbE5QrunEsn1TW+mBP08T411ziEHZ7/8ALvtCTs20/wCrb4+I41b2fbNvR7FvMIljDiPNs/dRd2xsRHdXYX2f/jr/AP/EACwQAQACAgIBAwMEAgMBAQAAAAEAESExQVFhcYGREKGxIMHR8DDhQFDxYID/2gAIAQEAAT8h/wDiKjczzKFcUQUbt3KflOOPeCBkb4DyMVs3WbZqFn` &&
- `iItirN/NcQLHH/AEzqZnliNau6aEWoWD2SzYpYcDsjwGOZusnUyJAWUUWnS14u5bo7kDn+4/0HKvyVAP3+zAypMTcDR3gOdcWw+naIoJckq2SNNc+m+YM+EB5uz9paCzcbAC/+kDIFYyI7uJBJvJjxQ36b6tw2CtaXGWas9CIwt8cGdV74d8yyNxqlfxRZ/HNxfb2MRYASByb9GseCUA0WFh1SIe0CkRgWpV43zfO5ncivvLJQGt7tTN` &&
- `+K1q66mc35pegV8/Eur2l9hcryXTZdnBAwhp2g0Gd1qLQcn/QvhEkoHcakshWjVWAfOT7SiGmh+Smv2iVK2dnxHzb8zQuXZCxUOpn6LFPXKMLxHm3Rj2hjXgXH2jafkzbOlk5+Y11lFD7Fr0IJd5IdlE4f8ihXbt/4O0u6v6U/Aj4BkA3YR9vXjdMvNQPPf65LMMtVGJdwwqHMMMcNkG4irmFIYgWZQvumqJzQCorUL0Qn81Vl3PVOKn` &&
- `sqnZlSRVBPLf4wMmhwMntz/wABAW6mashcIvD726x1vxElilSHWqrUjUDlaI4PqLvmpeX22GfWPN3ZMj6LbJuViWJa2J2+0ahuDLHdniHXmNzE6I6ZSVKGoUHrGnDJml84IVR2OHo/wkxa30EtECw2qFb4Fav4rA5YFwXb1cc8Pd/8C3G4dZW+auyhtV9gtxVhFBAiA9WuMY11iXa9Kqj4BVCp4RGLy/U5YYiMIeCWlIa1LIwc6TM6gt` &&
- `wi1jMrpSGrfiA6J+Xhho51e94IcCKUG5VKLNr6IGaFG/T9eR1V6tp4Gc4Ct3CLNQ4s3j9ioDMA/wDAbARTWm7we5l48zWtFkv2DN10j1CHH3fMdkbS79dcRF4YOHFOpyGEgWoi3FTUUvbLHxB6vE0yiGCxlmfjM8QXtYpCuM3S9azjaFxhgBh/VdYnwDFadt16Qtou1tiRpda8H1le3KFlD3j0eP8AOqtAlWlL0xNZmHruX+8wGaBBxH` &&
- `/2Ii0hlsozkKiecpSJOjXM4f0DTZAbllSJfpmOGIXdRWzqchmOqnBLur8TLAgi0sZtIfu0iuc79OSNbduyuPtjOY8tV8foG6u7gLWFFWcpFui0dq0W52wo2thJyIUAbYy8JQCBjabTPuPxMMq+BxKief8AOQi4jB5E4mw+2bcF5iPeHKwZz78fLGaxZ4ZXBuLqkgSrsCHVIP7pX1Behr9nmNe5Xty05rnxfpDlLgeKGT7vS+0RtLtJzl` &&
- `45/JFsudZDdvB7uPeEVELea8TNuPwI45m2/pEFlTfaivMOojMQpO5TjjIqc2t+Bs67mR5o5Vnt8f0+tCTR3F6/c15lZmYX2O/T43wm/fjTb7Km+TqpwV+CGx6Ebo3XDG+Z8ja+DFvR4xaGIXczf86jkGGqXizBZhA1xJekJrOttlYedcZibgzJ+Dx/d3LtYYGqHr3OZuVt5i4HRvGJ0BXqHIerEggyOr259SDsMMPJq8rsoFjUodilzk` &&
- `un3xK0N81gyCrq1HpM6NJARxY4BL1bhVUVx8zK67JV9MBlmKAwNK5zewTzLVXNVT9spznS9EduRehsJ+fj3dV3OoYH2H7dxeZomJfwjfawFVo5i1FEfIgFwhb4+yc87t2FGsUQwFpwu0esxFIq8uJXBBXivtznnQgdidBuOThRXwOp72MQ4fBgw+JcZ90z6nbvmZxHzpZ/73dNVEZdyxSl5W2XN73dNzREBi/84SW41G9KcGuDygG1rK` &&
- `48EABBeSTLXyX8xZARfq50uz5jQDG1I+4l17ep7bGD2fiW2qFq/ux7RmxconQAFmmyWbao2avu5gqt85CZQZuoVQZYTGI6lCwuoR9WnZ6KKuHYTvGXLiUlEDgaJuLbAWg5OAlC4I2CFcikxRBLguzLrAWL0kf2zs2zn4d5jvl1AfL+JfJ0CKB5vncsm8ekY5YXJVptAVvTK9gRu1XJgJKHpTmkb4MeIbRXI91VDnBzeApu3O7SsXVnru` &&
- `m2GA5bLPaZeZjsfNvxeA+sFAUp21PNPGrbxGgDBaR3Qv3GUyiFTchHpf2AqxeAg1m/82SD22D4H4YZBo0Wl0Gl3qtMbC602UFBwEo1VY03FYmR5PK/ge/FgjerxZ+DcDCVGCh7v/Y9yDe16XlH/V4Q/JmVDowzXM7t536cEFUYKN+x5z+3Z9Bh9SsWQFys3iS4yL0TAxyTf1x/MMktAhpWjFGt2PXNasFShajYyBb3KnSTF2ygixVZBd` &&
- `1djxEoKwImtKMDdjd7mMfNjyp9ddkdw7jSg90e/ZH5wFGnVavg53LpfYU33GVZfij5ZY6xa7hVuA2ri7ZeUC2XByZpsfuRKpDfUVdv61Ayh+gCWJUJWAVHOpfH+j1GoLR5pxMu58UF2VuPbStsTQ5N1BShHJpyhFZAh5DWc4w+LteWUHoGKS8U3tKSOinQfY8cSvTWZbI6fP8Ac7m3HiciIcSehmCC2lqrz8wu6LlqDXWldH0v2scXKD` &&
- `23+2/j87hBjDcArM4ItesUKMtLF8MU22wy+WDal+ZmBv7SPOs+CZShf0+V9tMN40psWFk3bRQv3QS8AcVtV2q5uvaFZa59N5TaF2+eiZh1JR5ly4lpoVWbeWh94vgaMj2RqBRmzWfIcDnmo8Kbry1n+yE2BQGA+uWhexhzK4SOiVX9dSwOMUNilIG92AWpAQE0kBFjau2nJOem2yHXrMNhZewiYUw6YTXcpWVeQaL/ANR3t1QTnC+ixV` &&
- `ZsMtVYg7+b9ZfxYrYN6PvXrNn/APg/aX8juU34iicG9JQfxmohAobr7Bzi4vozRSLwErDhWTmMxLWKI4dqveuJamYVLw4fF+8FHZWfPdh7XL03Id1/9RuFHSZv2/3Fn2Kuza5sO4nb54Dz28Ht8Q4rRBrfZ80YhB+im0ymb1DXOYubI0LWBy/Bp3C9lpIJlkwMOLyxLPb7Xa2re96eYKYeRSDeas1nPDtRVLQwxbggLFAU8K0Y8QEIy9` &&
- `p8mhzL93pYhqY3ARrIvWvRxmJl0CttMIGY3Xri6PoEALBsLpr2Vz1zLLc2BuvBb63djcvRajk/XK45C0usF5iPhPNED7t50fJA3vozZNI5c6vBnoVCBfAJnJ5F0brUM5Cxy/qd1MeB6LfC3t5JZhtCIrpY+7NFUE444Jj19oxdDBQHmyj6RKOQUe6D8nnXI9T1dz63LhwpJC94XJu97hyrtHCdruPZJgeL9wG7whrDRagFBZe3VpoT5q` &&
- `KaQoc8I/vbQRdBS81hx4AD2hpzwIZ/b2lgnXj1fSBa+a9d6gSwoHxK/aXeaByOacXiaGD5CIPhE3xmZStMwed/3fBDACrKFZi+iha6hTbNZPPKfmvbQroe7zj198gQeG4prPJFuvdGQCHQM0L5BYzr2LEfDUsp7iksrZ5Y8v8AV5CVhgAKX2rzOeNF1PO3A84caujMFQRZNtm2h8B5+rsb0OjK+XIHm3FSt8QOAgxcvVEi79ojfUX4we` &&
- `p6YxDBAUAoCDSvQUfS2qv67qrCMv5H93mEYoHk8HzBOoI+iUUZgMwvAG1LPHdHxGfnQ/Eo6p7ttr0U3DeDsNJEXA4L1j5jiodgc8sV4MmM5iWGkVHXLxkw9kDmrvF6ZzDq4mB8s51l195sEhVf33l+FHZCxzNah0hcO5j0lK1g9l9DKXd0NJRXqVXiYZa0GohTbnF95lBaYBUw1QuzCmHe84uMpUuWG25sA9AjeizeQEzN5c2y+OOcN1` &&
- `m4SA3W0+HqdPmrC4BpOgiVbHrR4+tDOssu2cKVd09ZelZmGkWEZKWMNlQVUBVYLauvG4fsASpExR95d+gAVVgWlZxMYG7Bpm19y+mPKFUkptZSqVosSai0mg9EL4cen95nNd6HZPHmWCfkGeLM3fn98pR9LNzYzb7gP5TGN24NGL/b4JW2HEUWtr9+TzAv4SoD3b+0CC+R5etl/E05mbDHgrj3ZeXhxW/BM7bstXGPTPd6cNzWMvNNfb` &&
- `+/vMe9RPtCdmpm381WIDfOG2WojFYsOfKuvXzMP2fyFW3kAr9ksUrGnzKLPV1PwV/eyqA0pw5XBUxuuRoMPNdG71FAsqKLvBBiYKN4Xhp07pdJdMzVbFYAPQrNrZCF1Hb9DwtaKAlFBBbX3BfR7talF8y6XmP0DlqUUi2DCMPjYWJVg65HyXiyNd3TBnVH0JQjSTa/plhzd6IMywnNDuaMYKMR7vLCfQ1hjOuJQGQx/THx92mYtQnUtU` &&
- `0+YiShesn4tfaYk10drc+Rn6H95jqwJWVPzCkO1tLW8basgwLF7i65+0sht9iH2CcXlC0euP571uh48AzTq+/9bq4Rb7Fb35xN0Hx37foVBxeT/wAl1L9yLPUmdgmoEFBhNcP/AKjyuBxaCMYJ5pfzOCPfkDnhbDHiLB4RS6nGPqb4i/3zMoNg2ULmg/KFyR5FKkFOhk3vUI2Oqj1QV7Pz9ajSJTSGu0b9u4TMCgFAfS4QfoVanBFjC9` &&
- `5tRHpkfZGiMHDW/wB4aQQsTSfoCZrNu1ZPJWvXxCeikORhjcKGDI5uZUdhfJ36/OctiITawAp2+bVf2ZstnEbxY/JWNvdA8ZYvMqMGm2QEFAu8yjQU2u66QKVv3rEADiOTqlTikdlmSWkIC7pJwDwvP6FcjGA+g6z9kTutJVtzjjfxNftlGHDUs7At4a8YqWHoUVUdYKyylwMZ1nnfHcrJ0XOuX1wm3ZDx+zIk2GacqaUTfLHK+sAAx0` &&
- `XeRjnR6m4KB19XIZyFnOb021RnzBGVzTv/AB4l/W/otDSJ0QYABCwqmX2RmrGyIgsgaWC12DvxmO/rgu1zqxx5iI60AoJr26iu5knKne2GveqgF2xEchttBf5haKS/orH8wrqe+jX7Tn4VcMvSFPamVNKoYyXvAGkypf0goeokN+nQ99y1nmVjBaZ5Z/l89R1wAfoyegjJdBvcOgrLFwdVq9e0ZEGujK0H7PiVprljH2OHn53D18S++p` &&
- `xH6woDS0zNcQENl0KukVe8ZxAEBfRt1+xCoIK8C99ITSyuvZ+WO3KM+n/v6LwT5CAlHcLrkfeBQCrXL+mt7och5nIOdy+Dkl4i2pbGRoywyLoUYQi5hZza2TkbX8pa7+pENtkO79R+ONcQNKk5VjbIMXh37PzRzObiAb8syD2b0fxF2yQ3VqOvwSaCoe5YPDlzKhUh9k1NMVoDLhcsjAUKNmGJ6n1gvJAFkQ6Bo4FfdEd2bY53S8uQSu` &&
- `YCtRXgpT7xUVxFKvXH2GHBeoLP2iGrPP8AtKC2tBl/M4FmirY69qBM1n+N+JjABSJuA7Qa8lXHx+POHdpj0AAPhjB+XxKCuXxDNBhTDVdjRpyKYPpGOkya+1gmzfw5Vx4xZxdcYA7LDLUeO1VqyZ6IlsyGoOx8ef8AYS33RZuX+CC1UaGKcP2x/T9VQpZPWIhQ1hrUzudHsx7wLuXILVdDgeH7ZJXR9UHnKC6t4PoLHMszHyDGVVyYd2` &&
- `daR0u8t1x8QtasbDBz/faDGABW0h933j2qRpM2gL+YmKI8AH8Onwso7ZndHn0pNYTBL60IW5MPTg8zlYAtnBpzjveDDmOdxW89P98mJSQ3p1zYAt68GKjIRmkZj6MdhhZ3G7hyiLq7l4exiN4DFD21KtwxzDqGwM4uQ5t4MZrrM34WaeJlQYtUu6K1g2tehlj2sOSOVslVVPfl9YCnIuAp6Bfy46+hNh33u/JgPyjmYA8ytLj+tQLGsD` &&
- `WLP8ZjfTaq5sNrBx3Lv0qupdOVPDmCoHwpud5Kxp0R1donqOw32lQKFaxt9r+jMGnH+Th+6W4sFd/Te9xuBAp0iNHqQMCUEBVpEswgNXbh9twneAFxYlPGnsy0V+qLt9u649rhfakMxJpcVRk0wbOT2/vHMUFD269oLZFVZRpq8XhzGjlVN45evBvzAViqDyS9GE84tb0XTyjxO2eYXkjW1XpZTppFrZkT3bFlSZSsMpau2Ap7M2ddBK` &&
- `SJLEa3eKbhCszlW6Xor0Ikke2o8l4/MampQqR97fvUr7zVqCQuOFvhuVcAKFUXeTA1m9Xrceygh0qco9U92FGAQhBoDsK/cZUgFfKIuFbcGb4KrNhwS24wRCbC7VmjQ8Fte7tVK5yKoqlZ9RX63WlSKr7794TY3Kwz6QG0xZlmAjq2bfTNVzANBT6oX5icIeCvzLFLYtWqku7rUBzO0W8m6uvceDT2iZrUgCAyVSX1MZhpXAHl4111L1` &&
- `9eAE04vP2uFOIurGFFoulaxORCrBBmlqDrTXaMqfPmHNqlpp8fnMRu3uLU5bPkb5KIsNgagaS77j7R3TF3p7MF794Ii90A8MSyocRAzGw6V3RHw3x6U+SGVWNPewt0q0ccsfTCdowHmIjgOEeYAFbkMjGN5A+0TXQF2X5fCAbWUhlY/YS1UUNPbatr7vrCKCOysSlVxGkolLox+g3LJQSwy8vCWryS9WP2I+BhxKGX1hS14gNiTcGPyj` &&
- `ECAFVbl3+zDKcADS6xz9j4lp75qror6jITHa5Ss+i/W+aaZPBZv4gPgQVa0cyt19LoHDdHzHieCIByGzs45PQuVkdW7L8l3s41NDPgeHh8cnvXWiip9UGqhxTSCzrnf8REpk28Pf8AM3erVdxqmVao+wQvF7o8S2cOnvkK+27OSiaU0Guof3vUtBTDbeXEbVl1Vq6t1dW+ZYtWWLautgPRgCYsqLYB9LpYUXLnIfQkg21A5VhhkfBmDL` &&
- `ghIV9OZRmWii6zWnTUvVq3Kn2qiR9I7XgAKNQweU5IJcIoiFNIgtgkFfQsTOZDyrxuKNVe6y+UPFr+i/VbWgVBnxLu4EWXHSaSQejLcYblhzCrcAxpULTLdscTCRCmQd/g+I/xeAY+ZZbTvuvD/P71YZqnOSo8J3dBMNvU8i7rmO1Q3a/jsmUFX8ePSFGW60uK/ZXMS4dA0wy7jxgDp61x43klbZSK/wCn7QwgUabGuYhTOzbmFe1X/a` &&
- `YRRWjz/EdfuIMGPmDT6ODybeVCCOI4+AMzBa8GNtF0tuok0rWvBjl8r+2LLgUMiAXVSGd4wYpuqlnJSKCH6Avau6v7Fw/AubdjCCgw7igvaPRd/TN4l5uUbICK6gaqG7YmEtFLalL4A/pXOImlHIN/Pye49Q5nFh/GviAKysFOK/iULxCqbejN8uKJSqtUAm9VHdagjH5+lTN6MZLbbDD6wFvs1/5j0gWWtj1M+w/TeQN+wrhlp7hgr2` &&
- `5+08pjcPBfLa6feNcOrhZRUTdoZcmG6Vc0anZuWtIlKMKLz9pewipBZhRxiZUMUEMXx7tfD3WDvDXkdnzKhd5YVtWVfPtiiFZOGoC+kNbq4FlUMDWLOd3hu9zf0EttBz81wrXEugoKmXsjm4zFsefoYDSUmKSCbD4lvj6LlifBziAI71XoQIMcNyLantVf0tJrHB6babBooxriZ2AdXrKplSGDiX6SKWRsQm6jz3GA+sEm2XAjl5wbYF` &&
- `Ra9phEl7Yo261iOUsE0ItaRxPWVbOyBOrjGtzXSquBuj7fFRZ+nAy0OIyIXi+5gV20Xw20UeOfSxoOAhQREDRw0+nT/fQFDGrOSuXPMG0FdJ+fJ/djDvIW2U1URTklfhAtLEQBnymEyF8/gy5qDQ0FQo9DZ8W4g0oWnIcuemrZeh4vXsNPrxxXpdspMd1amPXJrzHCyELyMvFRbgbkJdLKYfTmFNQKPopRghsfoI2XKJj7729oCUY19R` &&
- `teX5dQOQDKFW/qN8SejhM/3MukrEL3X4M34XUaZthk7HyNkBJFhLeoPJfulqpctnsfKVDCGlUZldnVoy67QH45CnrEtEdj5+g2uyeQY6/ZLHBNUuFIK9iKeAw+z2yrcRJiPaZ3LPAihsajFwFT1xmurgd6OxGIgi6X2Vxz48xWBxzodRPIVYb6n7e1JhlL3O7yGzl9qca1Td89gC06Wd/ZAbvb1Gd+pye/djYo5ybPZbY+5hKKGXsGhv` &&
- `k/1plNmgqM0kUrlDetVM1nWosMnnnYpjPoesThfcrz2OfTvcM6RIAspWX5JdvbD7yYp3wmB4x92DvQKSxwNMw0GQJLsvasLBnDR+u6sUkHpUP977ELPbR2X5JSq1dVrs/A+7Gfo5vDGTgemJr33bt3CCA73LOTsgDUyUq6U9/f2lHBBwwiu/ouIC8QTKSnuGycF1/g/vcSwGoIqZgL3Fz9GT6OmY+7HmaNxKtYplq+qZqCioed/wAspI` &&
- `nDHZIC7e5tZ9gR/aJNetxBjvFq42mfRyBqisfH0N2t7ll5/Y1gslE7kQjBu/HuphEd2Uv3eB+eIAy6GkXryx998xXzwO/Hsf4bVNFuX9z+4pAX5fzo/u/W5bca/wBuE7l1TE3Ds6/rFMs2GCOW6Xq35ZRcDwGV+TWWXTMsIHDFS7AgJ71RBQkwBbU1/aYrDG1ncZS48dKUeYueU4NUv8JBcIQFW/o4HMyY1wRsxbpxOQlk2pjRmUJ2xB` &&
- `FLLFs7ySMJl8+X+5wW+MS7yxZ6VXpv9G0B/wAfIYf9hjs/DTCygMuj8HjZnc5aEPVbYetU5wYYIsHL3CLHsXfrE7DupVxRqlcY8Vy+fpujiPc+/wBKXlAaYXqUXTF1Qk19eV1+Bbg7bjdbqaTrLmsuOOsxreIpibfS+UwHEUllTlna/tFnkzOkZpCDRFlwKgmb95p3NRxMlBCrm6kOvEvXa00Ckdii/SIOQaRR9RPmbI8LcAGfj/gOgA` &&
- `NYHYk/3MqsB9pVRC3G+DrxqJURvAvGb/eBUTkE+V/Hl7+ioiApjcuKPFcDoioqoeTuO2YYwYuVV0ysM/Aup84LthWvMW2ZxMxwS7lW/Q5g1Kv3zIgD8wRWHRA4s4fTKxe5KvdS6wAXot47/wCOlmYFXFj4S3ywonquT+tRu4U5mks6Y4vMpqV4KhM/mcCVQ3CrUKMymkBcaqZqDBPvJviQsHcVltrLe/3kD5JmtpsTqABRgP8Akh3UNj` &&
- `U336/yytFTwlX9GxywaXdWh95iziCo44Jdy8wDARNx/KZLqcpwTNNIZTGZW7jLUEKomRUULKNXzY+8IhBoQDnhdu3/ADBA2FJ4hqC5trxRx6GX6m0emd76DV5ZTsmKVUl1EhawOScxM/RibgLsxSjW11KtQAvtLhkJonSBt7ouJ0Du1P6+sGoAMG67/wCfYeOBWler/RKsXxNj+Az+GyUHpx2CZPZ8PEDLCVywLE40bECOZTUJoOpToQ` &&
- `P9p0MpU5qgyJ1KA2UqmACndLXacALjZc6/6H0nCn+IVldsV3UKqFS1V74+6c8lTkAlWtPT0+JjyWVdGLy6ILBuHUhIVjiGvrcUsDzDVFIEXLD8nUztAPm3l7FvtMsrwar/AKNBKSyBBrWDoFwwYbIpIhGXWrRXWvEGHu58D31eISIhYjYwRGizBvcRuoCp9WG6i4DB8q9cJyQiFl+KbejzzxGJLYtDFjgauLa1bA9Ojx/0qWUzLoDGHu` &&
- `fxFULypP2hNzEkjHa34ROoxZSxJd2LDxkBhrYLYra9Ba+YvBGafqc8vHBbPRxvHqbILNaiwhuFG0l7whR734mj27WPVMV4N90pEeqcdry/t7/9dbnqtPXiN1vLVXFILWuvkWbwoYWJRAaX/qbuTDhmABRg/wDzp//aAAwDAQACAAMAAAAQ88888888884ARDDrK8888888888888888880l3isemBc88888888888888YEoHAl0dmE+D` &&
- `8888d8888888PB1yRAXh1lwOj888Z88888888ar7wfQUk2OHdPc8HEK8888884knBHIEl6AFnQYIbS5l8888888bRBVmcz7gIxM0BJYrDAh/kZHim5zdpaN98q/wBvMMOMD+NfBn8fZHBL+BHCY74KX+/A/wCSfhpE/JaV7lpSiMuvrihglLLaLDV0o5LutM4RowRmdqbpx7redMzsyb8KNWDawmdLc4Ae96L14MmXi4iMOgLJZUPBiI` &&
- `9OCrJIWKKUm4x5ZdfAYe4/oL7TN3JpzazTyFNiWYhI5qLuWm8fBJ8PLy/Hzxn5b7qnEafoBe+cpoqTPsOHzzxZJGasV+jjUqgyB+r57yzzzzzzzzxqFIAobBOXJbhGmLzzzzzzzzzzzDf3w4J9lpNrunzzzzzzzzzzzzzxjfSdgwQhb3zzzzzzzzzzzzzzzzwB8VbPPfXzzzzzzzzzzzzzzzzzzzzzHDzzzzzzzzzzzzzzzzzzzzzzzz` &&
- `zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz/8QAKhEBAAICAAQFBAMBAQAAAAAAAQARITEQQVFhMIGR4fBxobHRIEDBYPH/2gAIAQMBAT8Q8PsRChEF7QbDPUVZ/pu6IihDOs3E7DLuVLEDOqF1llsyoSvHqIqB9TKtuoEYDMOswspO3rK24RW38bjejwCrzAZNQfKWNRhjRglSy50JtMxQtJjDH8` &&
- `MgOJTz4DCOcJrb1YATcqb3KJzonSJMEcN661GscKYhvN+8214GUKmJiEscpcbjA/aoUcjv2lh1QHLWr6sAwXByRBdxhTGY0dY4xru79OUAm1fBbN4IfGEq1LLjiIXhAxOEBhEjiN1/H1i9pfQgfVE5RKaM5+coBrbro8vadAfT9somfV395glFsRElyNMMFbuGBKvrKDUVBwfs/Tv2nLS5V6oKMxJykabJqEUyhCcQFD/YkrtyZf5MwU` &&
- `MZhb5zVqjCxDB6f5Fdq+1SkrA7YjZUIF2ixmC20jls1BRjitLfrGLjwqqIGMEx3CpeMwG6ZhMhakpC61wCKPtNcAohH8nzv34OSDTAWouKnnJelyiWDDUE2lsGCAc4lBLUyztByztBLcIcRzgGbeFSuk0z581CynThpVBMGoGkzbamF6GGYuiIJFrMSEAdkolBiIYO8RE3wMkQYm4sMRQJy9oBOCopg5bjSiok7thlGBYdxsvw/wDIiY` &&
- `R9SWTN+pMjHy5ecbSNdsXpiAOo84AuAUjJtceQfm+AC2W0PK/KBIRQz1OfDUGJSI5wcGWvRqDoh9RGMtToOO8EajQqUS8vKUaqWo8OcYuRlt9OsWUxfSJdcBpfbGHUpxLhTLBg1HOZ+JbuAMTU7lxlL2IrolLkcqnNYgBjibg5x+4q5eDRPclkdh8/MBxo+3twzwyi0xiG4nSJ1ItAjURxAhBh5KwirF07+/AZZUzsY6y94gu2HwY79m` &&
- `mHZDKBMnzl78EZUsJfBZS41qU5yy5lKplhAxTrnXo7ju7Okpry6cyX6Prj9zAL/AgDoaf3LNGj6MAc7ZAIlwCM1wM7hKlQOAxigC1+EfOV9ayteGQKWQYHXbjWMSgmpcuEGPEY+3tCvvL82+IrcA1lAbVxcS5ympngGITCfT8xH8craqUy57/uZqAtg3XCuFRBtVCAcsYx1f6VoI0uCfPODMFsCOPnfrzgxY4ifu+pMrFRV3/WAwMshn` &&
- `/l/wD/xAAqEQEAAgECBAYDAQEBAQAAAAABABEhMUFRYXHwEIGRobHBMNHx4SBAYP/aAAgBAgEBPxD8Yhd8obbgwr5IIXCDJHSHiP8A41KYlo7RXmmAzM4AadfSPQ5QTbBK1oOf+RgJbazfzAGPzgdJROsbcxFJliNmGWI4mCIFYqDgs7N1UE5V+dJfWuv+cQLVo/A0Saw1eH0P3Ni36/P9iO2IYXLI9xHGoIaliK+cOwohsa9f+ClVXT` &&
- `GPWWKLNLzX1fOr/ASGxcYNAdg7tj0S0vUoFkqXUslVLnMZLzmYMTClepxPrusQKJXgK8MYD8mhfevlEv8ABv8AHe8CjhB7y8LTz3leiNR8x775xB3Dh+nv7hqnHDfpyg54jXAN1+pkIQpYji4dou+9XTn+5b1r4RfdwH3wIhnfJp5u/lAygBMHfzKfgu0FuiWQLx/sA/v/AHENHLFleV/kWcwyDwEFG6Pnrxg45R1t+OHvFZnNlYmCNO` &&
- `jVXMRXnAdq0YM/1jNI8NXz4vVmAVc/0fuWPDQDTXXBy485YQbQX09ZoTKys1s66VLyA4xc1jYy+hKRbxyY68POPDM0xT1cTgnnUOpGvS+PkaHrmyKi+CtNNM6Y9JndoVq2nfFS7Es2hkqKZjW4tjmWa9w0YUDrvvf3Kayt9O84hKdDL3xi9CvPPzAaoUYDGM+7Mq71fADWGMm3PLbw266DZRm7Gn4fbpxtmAqBbN16RUzPOteZSHTaIU` &&
- `AcLWn1iGH38Rbd31jNyV3UQLhI07w4ECYzylTVlU9eP09I3cRWxNqYhQYl2nMDWjQcId7u/SGsBKW8Vx9fAlpRrgq+fU0/sqVAYsExMkZO2H6PBAF0iY2rfXp075uLX7/3vE7NqHIFW+JmjS33ho2JpQU4v6YsCW8va4QfUTDVa6QzRLyd/uG9KuFOj3rBTcYfPeUodYWg1c8tLg4hb8RHoGY+pRbR1+3dly4ZiEi8p0MJ9xSGj32+BE` &&
- `6jB8/eIhpC4GsVC8vfMp0aypqWeUoYJsk7eUEu54CwMQLBqH3q6QGjrEWzR7P6gHQz8Yq/7AxGBtqs3aBQ6ptH6Wu/gBcwuEkdedbOefQ4xB1HwRDj9f2KOssRX1O8d6xQnOIc/wAe/iHjpiKbVxJpl6eZp/sXheAoe9noRyWj0f1L9I3wsaAvV38tjzhp4tf3129ZX9TGOp9jH3FcetY4aabw8GLe/WMEFIgMmd105ge3huOmGgvqvp` &&
- `EikNImeEe7NlHQxr884QjFB0gER6d33wgVGp7/ANxXnKzQ6J8S2AZibDD4hvt997RHE5SmbHfesLLqXRpRuw2Nlf58SwS6zcYxMCUGYoVM6DHlnzeUDDoUX3rzh4jWAuiPQV8m694mNCbJs949oIwnx3w/sQvaKAc7Qvl1gPQ3F5/ao7e29yoNTlEOdYBtZgDSEdHONtJUNpAqy1jPMwxCaCvBKT5YGjwCnOaNVhx7YZSX3sKJnHKuEX` &&
- `o7XStHz1F5nnBpR4uXJYpt/IITAXKOXbpAVlGceesv2pcySEFLfTzmKBbXvnDYWrE4Ot9KrznBl3WXZKAOSsb06Uaryrcb4HS1R33x8VWLXb26zYhqPfDRjvmUxEaEQusJWuv+TYeNbLr03iSlPgNShu4OiiXVNdnT1gjYr/NJsTV8U+utf7LwNewSqvemUkVxH3xloqGruztjUKxv8rBt5vV6ae0RQLdWsv8Aw7UW9fsc5WUJ6nls8d` &&
- `ma8g0e+EZYOnt1OUFHJ6ezn0lVFqGiR2JwPiBB4WRKYljCiJBQV6b97Q7iGzYaAviG/wB34I1fhorKYeENFQdbM8+MsVBOIqWossZYlQLgUzJMG5YzLJsy6v6Q2VB+QChc1NuG3fn5S2KaNOKJWJR1mCU1mo8AoWrxTqF/qAQOu2d9PzkUWSnq+lVZ5NfMTNDv085VLA5LgKxKlmJpUeBuBwFGTngc6z0+/wDxOFLiFdLPJHZ/lVBOAv` &&
- `U8jF+cSoRxKvo5H1GBbVmpWYQpxzH2z6PnNeQuuIae+a0gNB/5l1TKVe/rrCuIf/L/AP/EACsQAQEAAwACAgECBgMBAQEAAAERACExQVFhcYEQkSAwUKGx8EDB0eHxgP/aAAgBAQABPxD/AJH4/R/U5+jn1/R1hXEfwF45oSvnq+riwAdXAZFIBs1rKy3y+fOHTxUdr/bBfUQikBpE4ncsinSeP9MKk/SNmWKevmT/APTCvsQvUhgmhc` &&
- `f6K4wSsDuRSYKufTg6nekytMdZbUQMUk93lIiGkT1msU6featvqO56+stDMCKzWeINzwTeLuKME2AeL6InqTBzqhZmwWxvVIDxjinVABTaKg8/TyythmQXlV0GJZo1lUSAKKoNCIojmkwi8CCfS79nvJQQUzFBPNwdX+hjde5GWHpEbTWOiBXOQtVkZoUWIYAKybiFhNCdP23hKyir6JFY9t/AFBnO29HAGbaeXBoUE9UT6bmiwUlpCn` &&
- `uKA3s1G6KQGgSTDzoNjcl4JGUNhRgFVa25O0cFPAONOfWcTCoLYdkNhPTpLiCY2jJqjZgKHBPBnv8ASHeRzHJKFd52HnpXs0kfvK/w8gAKz/fOGneoeP8AnT9NYNrpgBVroA2rrWRIrGommNodAo7ozXtSqnBWFhFQNGwX+6G5xVrIpFaJ3kCFHu8H134cK/vcq6dyVHU3M2u7jrk4iqD8b0TwT++aNgb+MA4RChRKhHYP2Y11hGt4R4` &&
- `xGIlbQEuBNurpwmS/bmnTUChNpfJhLLQG1p4xCLuxjPDn4x/lACVIQodf7n7n/AAUYJ8QuX5weqBsTT/u8bbVb0E2tahqaEddhcAAZYolBRGCxwUL0hlcLvBq0/wAYty7xsnmJ84bxn25jNxrv1iSUjrJGypCMXG6UWp4wAoH/AEwE/L1wjOk/tnsDhmzy8NifIAXgG6qAirTQwklzxyFXrV9VJfbiJNFlw/kut+sawcd0pXQEUugrr+` &&
- `fNYrSAq4EUpB2T9+5NuAlsylL0UrKPWA9MLy0IcMZa9BcH4O3i+UD4L64I28AvxR1+8jKjEJO4BaZI6ZJ10zb5GdIUzYG+JhqeHWJLUlHBGgenH2/gYA3rHhp7ca3dzxyCev8As9jpNImVi4EMqSSnV2lZ2ShECjYEriSOeNfxv1jB0lxny/484bXHb37OFjpWpHgPU24dOFtZBQ7Agfz1aRbLy4PZ69ppUApEgKwDEdoe6qhdEeBFKS` &&
- `9JtMJoW166kMV9tvbiFtLmnmA6T+cS/wB2QFL5MUjH4zcinl8YLwnUzQhq7Mra1/jFTrfgxSR63gRIC8+XHXA6zlvHcLdk3XnGkIb1W37yVAlixRNZiLTTzAjDVCoOtFmUhBGwSAmyMMvmWfY/xo5wneRuRdOWhEDAacie2WTbwR8YhkVyNo6T+eodcesDgA6GfVq3ruAS+pRLRp1UXmrkQE8XSiAKKWFTTWIMRzeVe/I9wj8YHrFrYM` &&
- `/9M1g9WvB/1kxbzZhmwxN9mNAtXZ794IGhtfLjkSZsXmKjV/OCok8vnHAYO/vAlOg5hiPF0HnAp6c5jsc+nMVegdVhizKay77GUoC3CTDU+gFaCxDnlt9E84fH8KXgsJNpLIABuvgY4lDFXzQSCQwTBaT2eMhML5ZSt/nmccGeIJWpFJRfePA6qhZUpAQRHaEDEwjXRAAEvtNhh4ZS4zpPxlxu5DH2TEM1O4UNJuHkxEdmkxjSq49ZKb` &&
- `qbmKOKPJ/vcuk+9f73GU6u8gg7Z+2O+g2+8frPjJ21vCIEDrN+UsyaT3HnIFUcHlwcoKV+MTWTvr6wr5JLUFAIUcFDZBbNAk9GKqsikqVVVzYlBR28fwc6pvJI+AFx2HQQX0CCwupSc1On1UgwFXrVWvVs6BIBZp3jUXNQpQaCnfmfjx3mLeCgPg/n8wArkQm4a2QBQtBwKLchpBcaoTwMRKNPTQAjZUuXUX2Dl8BIhTiacip/+oMkFt` &&
- `pJjoSXjwnvNSdM6wgHu4RS0tEH57MWFgD0o07CoJvDV89Np0iZLw2LrL1GpKcWSrvlducNq/3/APmQ5YjZZC4MoVOjGcNIE03RpTms6tAZl3WuHy5OlfM/xjPMF6dYzAOPrVbTy/GAgQcBtzduzSgej/fGdEAQIRdlCyWh4KskkAVJvoeHX3MWlx5y5eXwMwvsbhUClFzRX6WSGniShOPOxNGol9KXlRbF1KYvlqKvAMKhHcIAzSNxx1` &&
- `XadzoAEAMjoDP7ZCCw/nKAqwMVxGtDhRu4iLeS/wBKAQ7hKIqq2iiyKX+zDwDQfa1JXVepMTKqaTrC0s2r8YWOg0Md+vOGctjciIeUs+zNi/wh7V8SbU5gVw0s+y4NKQeOpeQcqw2WPmihGjFT+sFOhFaDmKHu514PuqMUoOhsQstHOhKoYlWYKjO2meYZQVEGjSgIjaFMn61Ra1IE2UXETSQSQouol1FDNY1lZoJsxbV3+gVBtQ/7yI` &&
- `Ww18sYsV8DkSh5nuVb791wLIpoV2uAah43MHb5GSoAEmwKeEilbtoSiQCeygojC5GmwbDy76yO2JEm0OmNCECjaCNIiHibSaBLKJHAQgUiahhjpqhdEXH8Md0ll6pUUoMxqQQbtiwYMgchEabK4I6mj0S2iWAkBUAkqb/GBFF/nPMLVSs3sruRQmUY1vjgmGmNkqMayqIFFQ1rVKtbVxSs2SwI8Hyy8ccAv8TL5lU+wywj4SW3UtiHkV` &&
- `aMbcjECALxR+XlC2EnefT2aN66eT4+MM6aIt0KNR+TfzlEGQOmgXVNwXVZm3UCIoeUdZp/S3SYYUlLVeH3hs4jtL4pSnUWXDmqV4BUBkIKlfNdoB+7I50PrBQRb7SlQxdmrKuFtnqiiPaugcfdPz2Be1QUEQiF+MTxeY7E0HhJQ6Ku0VrSykniwtk8sDTCZAyHyNpqTBqntFmUjvILZjYNcqI8I7hA83g5Wn2360dYeHSezJ/XE7ognQ` &&
- `qtn9sOhhvlKABIyaWzggdCGwUBHFEJg2uP+y6qK75VW2FYGPWRUlCmg0HEYUeHBiEAQvRpsmXCKZGCGg05rmna4xLe4IN7dVUaIBYKOvPMAFjyuj+cIk3WJsKCWLCyNFEMQU3mjTSIUAmxCqIUkgDQAABzDAK6wiUeXernMS2KQW3dBS1Bi4BoCrdgNgCqeAV5jEpWqIIQVDaSHTrmOdk4xg00AaPO+NFGPxlMv9xX5ucMG1cFxI2thH` &&
- `QVAwnGjqg6bhAEdCbIbNjjecWP4wPFxW5vCuI8TCPC4x8zoCrm0tETbJ31MaIvo/FkT558/jCDjO8FKbdYJA0ZYvIQI9uAAXbBoYKKk0awc1j1wzZgfEIg+wKF4XCSuMAro9A6ZMA1V4bFFkEa4aAIQ4XG45gYkSpJVm14StALAW84Wwf2hu1UKtiak68DO+8RtyJm+qBgENjUUoVAU5ECpjN6UIkjrL5IqCgsNCgsFrb7/wB+sfVFW5` &&
- `45nj9d4TL4z2s/Q+MWbUDC7y4jTBbhCjNXaTlF14rh8nCjiiti2bZNNw28iEWIKdDQVfGaWCjcUNPkjhWAKttREQDTaAkGbY1NEqkTcBtpalIVuARI2IKhzVIIXWHAgxnSiij5M0WDFJ0J6mzFAgXOFFsBp48nvIyUFrD0AXQuEoFk2xSJAlGjYN0oCgxA8tAeNqgx2WNKASvP0uhwXG4UPGDY/bOt6wmhRFSp/wCYWz8F5N6X/fObMb` &&
- `Utnwue5uVmWBew/YxxCpsoBIIFERRTwYxbUCyS99mFpXaCOEFZjGlKX1pHfvDuxzte4k+02gbQZC46YBhm6qwUDGHAsGrsUPdGqrTHvWzpgTtUc1oAADDOjDCfMg/D6yepA2bsleNx3AhPJjeJSUVtLhC6RwIBNQ1NZrATcJACABwDx+uvLiw7TrXQ7rHguCnXwLp9jXpzjjRmUEIaUIgWG2CoET2OQ6Z9U0G9aTe+4xhNX6chOVR3qM` &&
- `9iCJABE+F8fOrkjYVePTr9/SYobbD0SUQC9ukY6raKBLRN5ND5cWOd8eQhfsGxAMxcFsa010IocdvXZGsuW61i0TdNDpDn5FaqCDcBiIhwPcZAFYAjEINF5gi0rpuSTcsVHW3piGkWCW2foLs8wFUqljumgaFJF1RbxokBD4DuQQlAtdMIbKoU2W+MN4kgskIkGWr7843hZ0kwGUy7Pyy9UhqktWhLoKb3tzSiQgCaTZA61b6KglEGw0` &&
- `CYb0tBU8Z7GFY4bkz/AFG8vnEemz5cE1r095LFjJ2nNQvBOpBSc8N6oiHYfAi1xkrFwzsaTISimLhRHeq0IQ2uiCjgihUojTFAaVTE24FQrHrLhT2RNAbsixx3cbcOwzb0PFPnw4HIywSczXAOoUU3et+snCbOU7CJ5fnHBcXUKw5RFPHKBKmDz6N0SoPuqagbDlho5DziYNJG/vjzAVmPoJBW4UkU/QQ7MqVi4wSPANt5RaggiopbTB` &&
- `2vZO4VXqnYSReqhAFDQrOBGL0aiEltOmMm3Uz2a36lQa6MUoDDIKbDfATBYXT4XYGo7Fg9TKvnA3njY7Q21Tmk4ZSKPEiNtNCQkDmEViSh9v3C5zACWoAZEWBfD0wtcw1moFc+N0jvAwOJAmQJCBKoRWtr3JU1EN2IjgFB3EXUCxCF6qoAKIRovzfyBNDQLBQLVVJWHeoRRbwum0pudbenGqMSkrFLDyHkx4oA2kDoDQfO3lXC4o4mzc` &&
- `/uv9cqD90JNLNSUCu24+XiiOgCIJAjsJhjCe5OgDj00EqkCRG8PBjaCsL4rPbgPHKOAU9mbYJ4yS/s4RDXHBsr59YiqQgSjZdkfCmazLXqFgnbujmzCopAfTMJuIyLiExWqkkJaPbRJAwZPxJIEgdIjvD72VIn3hTCzbKmBTOw0AkaK8HLDxgklo3J1QDINRXRTxeE/Ls2GmXYHyv0eYo3ziiEIeOHArZEwweAKATEE/OOB+2fMBDGpi` &&
- `rrDm0bm8knZQoghjdAveNBEADgHjKZshlWsDRty3znQc9XLh4yZMTGmrwblaO90QAotZmWKgWDiexwSAXziCXfgxztxSsDRh+4un0Q8eFrABVAUAxRWQD4QNdpUKCAAMyGC4SlFtlsBGDshmUqooj5ExBmimzaziLp101emQoORo0bsgrQotARimgDEHTHLJORkOLqpdjPk7cq+djr+2+ksPfrBxRgHqK6MI6C+QKJCChgravTQCvge8` &&
- `yiSvZxxAeXLPg49sJSl3cmIAo9YdV6M8JGCHWWvg6/BoXWBDTgbha8Mk6pWu8CXh0nneHNhiMCZjuYCNihKbPcWiXTaK+fJpzYaFCg+EKwEjerHKDSI+THWIuqgD7FSqXgfFv7yalCBYgUDBC76EK4FFTcA40O03JoFNQAgEUVi8Rf0ssJdiiOo1Ca0GC/PnfX3kSI+DANnXEBfdwGeecHWWJgi2JlIrIMLCzW9YOJAZ4oLBPZ2shAln` &&
- `k/RcH++KraUAFR5+sT7KJ4NIci+FOsEXgKqAHVcQRkHW4iaT5xXQ7jwr3FFXphCAnylrvwCJk5ZpdwPs1Q8opqKoWMj4p9/b9sWrl81bsh8DxZuXLg7EZmDsVTdGDrHCLJTHVL3aXX0HVBDLtevGPuFDgfyaHzcHVSXDodov8AJHH5Pxk2XA61qB8ZZGsRuko6Ztq63FPlxYxbCHBigKgpYau5l+AB/kIqUTohASCJUsgQMegYD0azZE` &&
- `iuADQpk4rW2nfN8Z3KD+4BQ+XXzhFJFNmbdgarncsQLl8ESCFKbaTAAARRIog2dKBvtpS4AQa07PzzHzGNN2UE7VehLOmJ4YiFMfiujIoCzYHRMvpiq5hPm+sCSEh2GB+vL8Y4tfR2IIu4APDBtukIMTcdQgKEjdWScKL2+f0W4YgEVVdAG7hDLzLI2HSC6VVogHS+W8OwxUp4csfL3ATutZfqb3gzs64CInkRmCIZcUAWULsK8AsHG9` &&
- `TcCavUW/Pxg0uKWRRGI+8po1e4LMSKVaghWJU8sh5mPEQ2VU8BWFBIKFbDsIiADYOhCFC6O8D/AOSIvELvzWunWk4HjdyrAsCV2QzAoiTVaa/Bd8I7MhoLSyCD3x/vhF5OKycVVZZX1hF6BKQk0ER+RMbm+cM0cmxPZ7xeZ7k2wKJ0jWdoLM2XMArUNIUqyuj8YNt7eDwWJpggaCxmfnz6dGvJILNaHBRy74QgWoAWqoAK8x0lEEq06U` &&
- `RBUOwhUD+BjUKzFNPhV9e/8Oh6GDXVIc+LvXl3hoGIt5PPk+c6CQ7HgVh3gKqbXEPEdFTpOwSgXps2oCA0jVK6qLPtwx1ckTkrYEaIIfJippYKSISaS+HWvgwWCtb2Fi7DnDvujg1vqMyDfkBP7q/sZfJGuEFDwcA9HS2hjPSm1tiEavVmu5crjZg0VldpQgQtGDv4aCNAGgDxnCYwYp3KPdZ4PWMLtiNCfeSNO3hFnoPycLAcDsbTUN` &&
- `O7oTeApEtUFEfInnD9RLJGrdPsQvsPTGcJJlAonwmMoLDFK0BQHSI4w2ZsB127QWbqDwxgw+O4IILKWERVFCaQAbMBvAzbPPcYlgvLbsN4tkC0EHgHMBFSrWZi8CgzQxoIoQV3BoTjNawYQXd94YHcmA/u7hE3QnUGlKb5T7M83kzxEvnY4mXUU8T3P4GTDhARFJbS8EMtYOxqiY6lKVCslLpF2mjOCGlGyUH7PeHnqOa1dHgXzfvJU1` &&
- `6SX5UfpJlOneg3Pj4PR4MQWCDh3JWqQG2x84oxNZGZjyQL4H5yVwbm12NBG0JNpkP0hACKqLpUBCgKSYkhkoPxooQ2AJE+E/TdML7A4kKgUVVgi1CFCJth9s8DgNB8qtTFU/TTFri4UaUN5syhS9MJ2E7mII70+MtpiWh7dPhPCcTwiYj1+xULfIImhsBBM8mH6MWCPJdjZNx4+cMGwkEIAGgPWJGfNH/mOPl6wJ17RTVJS+BfOBPkcw` &&
- `IhIXB/kFiEqVddtBZbV1dejFLkG140+n9zDCMwnhJT8mb/AA1/AVdNNLLMTVDzDQw+H5y4GuPx84UOhcQLoXfAiqFcBv2nAe/+e0CKru1rSIFIoOv4l4/oUEHvb8HzkRkzc+fgx2dvYKaRTi26TrZmnP4Nhb+h/D1hpQSzIRvAUIGbAJciHUMNi6e4Lr04LRrztMNpxPqWDy+jKj0GFVTwF6cToxeuKhGRT7YFfAHjEMI0FKMntHy184` &&
- `EmPaiuR1fB+cV2mxkF1/vR/BD+4BaPhVrwOjCMqIwr8sh+xjl1o/tj+jqgSkqSH2dwU2GtuH1iYSvE6ZcgKVB0/Dr98BMiKCwO8wAD5LyZbUo6Umw0B9ZBdr85c3grhgQQggItEeugXOgqbQ+cJ3G+jBaa+0nwOgnSKRIcb7HeSqQVR0is/tP2x/DdBhrSFDSb8PmEzOg4kSkRilEcYafgCC3REDaszj5ZyeKBRSIiJTmEnZQUeYpQgH` &&
- `KoyyPDhcWdkDxu8UiheLKjBpCZpbRV4t87EUJr1qjWsjLM/eRtQfbz0Zmm7AEA21BuTyFTVEhQwg/Iof7ZvIQCD49cUx4CEnhQB9sMODKzybQ0UOWCyu7hAU75qiGCJNujyxDg45AmxPJmsOcqRAhqIUfDO4xaIG76mqgfESEIYpW8oRX0AFWmIufPRKh0igUh1DpGQ/s5AQkFRwelp7EwehkO0GsVcFSUBguVFoNdvbmn4qZa9GWBUo` &&
- `XpJBBsTBd4gH9G7F+Ty+mV1kbp9hiztshXhWtP0B+jsPj9POSUeYHeKIBQ/wAZvlQ2qmmefrNfVBShQJu4aVttyAQACML1zZqtFGVRs1P0hNsyz7ViJNArBVA+UyJ6DvbmyxThgbej1kJ3JoSiE6CfYdQTmqtC8kV84+t2Q0sUGukEVFDDDNplorRzSn2wDwRCQoeGi+smityiiWbgpEUlLcgIpxSGEFFIRKlGBr6D2AvSJKLX78qUJK` &&
- `kU6bADgVUeAFDB+nFIUsRooiIoWEHRgmBxAmcIgECrniCDxH14xSJgwS/ebWtLR/KZxg0s/IQr8Z5RGUT4DGNibsiunZGz2J8ORF7vDjoJIRTiNi72AfC17nnEgMgAwGqAW7BQBEcxHVNZ+4aV4DiBY2AEAGGtilEbDm2rmoKI1XhIhSG77AwTalSEB24ADr8t5f5mAmJN6ROPnEdgpkMHEKEFWvGMxr1McQAResbtjf1Y6TXqeWiiAM` &&
- `azgS1LtR0WBKG74em9mu+dEKrNuBl/SGoQqTRuvGnCeLsPEguP0BQogGk3Y4X0RJQXsVpDb43gpVJmigPxxxDpen4wagxPgEpag34wbCwBahgoYJRYOPQvX60N0gl3b+Xp8XCIfQGWxj7cIa0GArfPM9pqQQ8XYjHyMrScKbTWfLaU+gjO5o0INy1srYRE2vca8QtddFoEkEkOY3a7FLlEvNN3jQilqjLVhLSUV4AalifbNAH3miSRBt` &&
- `SMEqCCxg418slIl1mQEHUMD5TAAABoKqCmqDhytkKGBKLWaJuAXHiNDFfKaqvpThZhxCiXvR0moeTxfHDcF0FBKPKI79nvCfNsVvQalUACqgZ5cELgFGQW5EC4IdCgQFGICFSg2PQ+Qe4CGgCCLwEEMDJdwwWrRQEFPBUGjzjRKHjCOjWUH8DOxMAGsHlS4BGqmrjgXEm+0FYKTgaQoHniHaJ2DTN3n6MRZXfKz5+cAJdt1goKh84Aim` &&
- `McoEH6aSfUNYO7VlAD6C5p3ToAqVoD0BgQNBhfQFS3oImZqV6FwFlEEtahnBcBu6waWo3hIaDjDYp67kWl1EEVeHesouTFAig02gfSCVgCmzxcf0ABBbQIa/OgfbkwwV/e2MVPpMuI+i5vXlHDKhePHBXXE8QRXYjRgYhEKaGLiE0KkRFIgb1JkKnJEiCao2G4vBAVRTBAIE1QBYzeHsxahBFQ2gi7HDBP0FkPI6T5MpqD7DjCarVyHS` &&
- `wwnhG15qHOmMm8QLeNgaIu5hkgswKBNIiI4BsbsAOkTIkZUwYLFiAXZ8jFmiCkLNoCJyQ8jwSABbRMDwAQEBh7FWrG8oKKhUF0aIGCAh5zyjwsw4cwCi0Ljjp5bFVOuh5hKxmoAVapZisA8THf2VlTd86Pxk3XITjcJQ2FWvz/AHx3UJoXCOx2GF8DxlmzNu5DpqQMmD2xJ6H1gtHe7ZARUSuzN0RQbQPAVKznv9Hm8B0YfPjCNEF3XN` &&
- `gIEd/okTwVtdUEALqqlRsTi9GAK1Vm3DYJgiUbmzp6TPagU/A7n2NWmYpAWIkRDErvD3r+GQDxJrJQvGMAq9JHlfOO+tFODFlAZpfOsTe+v4wCSJe5qyieYvjXj434ehh9BE9jlXyft5NTCaBSlS1UCatftXq5USC4RzRfY2/+4pHAUm8uETFAWALg5oWO7PHmSHDLhwBfYBGlEQKhdMh0g9ydEXSy8cDCQJMoNjaXBbLcU0Ngb4vzk8` &&
- `gsjbgGhSBAs8tkiNfjBjrHcdBmlQQAKqsM0lBKwp8MU/ZchyB58ZFqp7c0BYGjsOzEoZK3eUmwJsEbCDXvYwwdheH10i4XOx4J6fdxKUKXbd+8L1nRDZgsVdxxo/EOO0z0txesd4wul2SCI0Cqkg2GGAHBsC5DQQypL8fqUBOhQUSKuk+fTGCdSjaf+nMVVvc+DFyqqw1BkCdNdzlBdYLal99yfaziFfeUzZI7tgbdu33gEtNFAQPYtD` &&
- `4esWgFG1+yEsU5S0RiPD2j0C3eENLTxTChqIFEfCOx9jE85YTncepxP3xGxcKyesdQOr7N8p3x3EA9ieYPK10EZ5iCINhvRGR6T2qeqzWsaE/CZUPRbdHlYjnXtHsG7zyeV1A84AgIE+xroYLsIoKEpspgPaFGOqLQxcVfh4ICCg1a1ABbDNK2qKGIW0ehS2PTAuaAbtw0J9naw0OdTqwewM3FDW26wuks9vtrVEhaDw3NkbCuL4vWj8` &&
- `wAioy2jGmoFw8iaHYygR8gcTEWUJjhUobmjmngjgPa4wENA5THgScoD0Mh1yV3JX370ZRR0ut/8zVViHjByoHeCEXnXtwEZTAGqYXD+MWOXGh8YqyvDx88KXuS8hMCEuxCoO57ueP12GJmXYu3Qi1MmjHyNm6YZssE3Y0jmus4drGxoq7utXWSmU5dAdNBnSgaMBAvUfQAhvErA19YI2DeQzKPMULMeBgW9PS4aJDlNGI+YcmGiFx8CB` &&
- `KMF+RYTPhQxQe30HV4G3KqOh/Bc7n1NuNgdk6iHkT8nyKNFMrJa1KGgYEfspfExIQBBJ09P75RjdQob0U0QykDXAyEi5sIiCfOzZvR4MOCy99wfrEYssonlnrf752gNrBigIpNydA1KntgzpRllUSTZCx6u4rDFBFISjGpWFlixm8KUoIfJQbPr6e8q8VULUqktqTwUN8ixwohI7UKYFLQqQylAZPXnRWUOLUfeDAjtqIpKZBEgZjhgu` &&
- `uni34xEDbey4NAF06c8GwnvJQFZEI8he5pfYVkHQX1htwAUgG74MNXrbdmYmq4NmUcPedUQeVIEAroCB/AZsfSuhkI4CxgXWoO0lATFpsoRslIopesBskfOnHYWQzHJZ2Ka06XEHRbGkRPhJ3uQey5LCgZvso68QSVU6I4vofeb+h8OdF+2StWHALjBYyEFjUYJoMnAilCV1dlpoBANVhuYwbNOMqRrcCSLq4sXneHpWKH4fpyYYD5ZE` &&
- `I4tUDxUwYwFkAHgDRhBQJKEt05RXWmt8ON32L5UFEElIjFpRJ+zw1sD5Ix+EYAOTBKAVjRH5E3N4A8hAFnoaNSTSIlEcbSoQonA6Ud7w6aZhGSwFicduS2LmoAYsWCMCGwQYjyiCCipI7NGnAEBdCoxfdcVFK6rCcbiwgz5UDY0nwY5q7w2ABEd1PMPFEMMUqCeGSzLM0pTWnneFDB8mGmEPPnD6BPOblVMQmaXHtXcBYbKF6marT6hA` &&
- `EhBp4mCxK0aRpAsOGgDwAeM3/C40DjJppDYgqgB3cSI3ZErodWIC1qGHleR0FBFgElKdm8kwSpCUAlW3WbxQxb6MZxBZCqb1pdZUWuo0FCsB2BdUrsBUgeac/OSITfMJIAeDHcVH5wYJ/nOL+LDDVfXn/3BlJfWIVpwpirLhbrjWIdZfukaA3m9H4wNKrcHd8ZV9tuae+JguAeHIwLIeseGHl977Jdz3hLEiIi02KJ0GIjCiaxlC8+QC` &&
- `hqV9gRfAjWfCmxsnN8YzftEGgGEhAU/DFDxSEFC0abmuU81ahbDkEUUpugAZ3s7HnBogXFKoB3TwFYRxYo7XUzwm9R5IlTA49A1OU4CkR01CUBx7c6hmsaH7mV5w1ugoqTVpsuBa6wBBQkVaDVdnuUG0BBhtfIadqogxoWWWti3QeK9x0xYG7OX47/AITuQeQqQSFEE6oz8ZJg1Xr0oKgp1SYOz6Xp1pQbNakADnAYJfg1/GUi4nSjIB` &&
- `jVWU03M5JAIA/ZB+kcA78TfFF4FTdXQ/oVYgYTRYe9mjUX45WFHhB0fIYDQP4htVVRRCTrcOs0ODRNC0CGlqxBbFzWCGLrznwWNb2uVJhxheneVbjopBNr0g+veUYpUWitq3tJbAgPC4N4kVzcMypvUz5OsuC4gnjNBujGVB7gBPlmkgp8frEijXHI6fVxYwoEgpYwuM1o6lS1Vdoqq7VVw0XnnLB3gxpAAUCwXzK/u4qNpA8pt1sWE9` &&
- `Lg1fXyO6nABcnHXfYkCfgp9ndx/bAKEchEg2bjVTQhkPWa1myCiMV0nG6XUzvY30Zw0aAws1ehIOjhAKLpSql+KCMNykahA1qe1uP3/HaLWI4jgFEYRooLArqJmqbfh7ngKaDHI7glh8IK/Yo6Uw4PY1lgjgob9BrAa49Chbl2IBY3BySwM0pUp4TiOxEcEMwnwcS8cEafGDT1Zqm3kDG6nb4yW4GiSoLOD5PTiHiZr9e8RdCYyKEzlI` &&
- `jFwR8nC/UfX2W+b+zcOSI8h3HnCrsyxhkJ89yicUT1h0n3nkMWSgyUrcYi9O5VVpM9cMKEX1hKiJdayCXXwYvWrg2QDe1TR5p7yzpAmMondTyoIDaMF+FBsF4nH2+dfo8yBrESliccCE/lLocinwvVXqgnEAJWuRWw2KCrpUCzMDWFbqyHwcyCUcr0/wBQNTjLpsCERGUnPJdZAhJttFQmAxr1Jyn5g/Tt/wAn4AKIgWtoIhBCWul0it` &&
- `ENkG7hR6pomg9iilLBWMVC/DLTD1zAqxplIMiOOAgr++Xh6Aocj69HzfOR+IaYNL0mIImGjNTKHznWYKQwg03hIYxJ5H+cWrgHCO6o+MBSlM3IC5ZecxUCwvn1ghaPLszFgQgke8IOBLD4IWG0XzrCLJTNUvl+XpZ7/nhB4maiGkRRHpkkIDAQmgv4wCM+AYBEKgCcNsqrLyU0HopH2n5w2kUDhCtYbnAoAq4TMkR3A2J4w5sIAy2BeF` &&
- `Z8q7rd2cRyw1RsTFVPMODebg8YUVQfWn4yigJaVUCs0e2OrB4wgtWm3zO7+DwQNBkGPTuUHmbG+M1oeMRhX0wUMIjObwt/O8CL4zU+n+c1PxgAutt4J1UubD7ueNG/Eu/2H98nuQiRiH0U8/HnGSisCg3qp9ut63yfH/FpgQFM8rZEkJLQ2j484U7KlmiF7JvSUAmYROn8YwIH4wj/AFD3j0thk65AYNpo5uaesPdK/LjkRo4aTFRG/O` &&
- `SW6ExMPxif3YzaG8kp5cHRrIYojAn0Y60YYiOJrFkVvX1klkcgCcv5/vxbst8agdhBCvDyXCZAIBwM8f8AH8YJBIUPWFlBuInkopn0Nk6cKjabwEBrK/HiTMYGOxPxinRe/GaTPBRc2NK2uv4yKA5cTeIF5M9Dvxl0cOvG81h8ayyDy4ts0Z23zmQN+cNFG+Y9NoONy6wD7ZyBu4QMExGIAlB2JPaYZLdGlTBtUMQIrP8Ak+P0D6+5lR` &&
- `E/bDMypppEhE07DWMEoVVAs7VsMngBgCMuxWk+Jkca9TmMA5kRGjH0ObPrJJ+cYhJMQrgFMb4yPWGFFCuEj35jXcXRjIq2Y5Lm4F4ZQHowSOBY2Yu5ZnDDKbcafkmHnK0BlB9nXf8AndMK2ptcvjPMbbd0Ij9XkaNQRGY4SxCwNI6sgQKcFgmgqTeWLPSZsDS+caNeyZR8C37zShvIoZCtzFEc8TPbENSVnb0Bphp086wgE2fGM7bBJ7` &&
- `wkdDJ2IOG2Ca1iMEiEBQIpyCmT+gyz4BEB8NXrY6x82/sSdFUjIJppRbXQBiuwaICo2DQudzgWwBQ6FKtnkM1QVGEYVLJNKLT2Yo2HPjGmLTWsO1KccEuy1PH3ir9GdtDG3tr3/nLNsimH7OtPM8SJ9Du3K8WW6y03lYVAear6GuhcA4PSJsPLbXf9DZiQiJpwl7IcpuBLGHC6zxQ43Io708Ajlz5aHJv3y+waaA4CvQ4CUROkwLSzBl` &&
- `ASyTIPIuBFAvMG2PYaP/uVCA6esFvIe3ajSevOulGVZeLCANDWlAEREcMm/ZcGlNRo1IeUpoARwkfk8iD5OZ+P6G4CAIkR84viu+H1ss+mHHzSUnnSb++AKOdct2+Csm+Soh6D4IE1AHSEXAl2JWMNCzy5dbywRSFE3xMD1TA2q6V7VSJs1xBkeJj1SSDUu+Q84TuRykbe1ZtxRwABQqD7hSKosgCpBzm4aeEfADxGo0cAmv0/P9KmTp` &&
- `hQiAUN5gggIGT3KHnvRQVoIReBgABKJYTpV03o3zVwkAwoGokR161hoQCAGg/qHj/+RP/Z`.
-
- ENDMETHOD.
-
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_42.clas.xml b/src/00/z2ui5_cl_app_demo_42.clas.xml
deleted file mode 100644
index 4b6edc36..00000000
--- a/src/00/z2ui5_cl_app_demo_42.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_42
- E
- demo - object page
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_43.clas.abap b/src/00/z2ui5_cl_app_demo_43.clas.abap
deleted file mode 100644
index dd3cbab8..00000000
--- a/src/00/z2ui5_cl_app_demo_43.clas.abap
+++ /dev/null
@@ -1,47 +0,0 @@
-CLASS z2ui5_cl_app_demo_43 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
-* TYPES:
-* BEGIN OF t_flight,
-* carrid TYPE string,
-* connid TYPE string,
-* fldate TYPE string,
-* price TYPE string,
-* END OF t_flight.
-* DATA: mt_flight TYPE STANDARD TABLE OF t_flight.
-
-protected section.
-private section.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_43 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
-* SELECT carrid connid fldate price FROM sflight INTO TABLE mt_flight.
-*
-* DATA(page) = z2ui5_cl_xml_view=>factory( )->page(
-* )->scroll_container( height = '70%' vertical = abap_true
-* )->table( items = client->_bind_one( mt_flight )
-* )->columns(
-* )->column( )->text( 'Carrid' )->get_parent(
-* )->column( )->text( 'Connid' )->get_parent(
-* )->column( )->text( 'Fldate' )->get_parent(
-* )->column( )->text( 'Price' )->get_parent(
-* )->get_parent(
-* )->items( )->column_list_item( )->cells(
-* )->text( '{CARRID}'
-* )->text( '{CONNID}'
-* )->text( '{FLDATE}'
-* )->text( '{PRICE}' ).
-*
-* client->set_next( VALUE #( xml_main = page->get_root( )->xml_get( ) ) ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_43.clas.xml b/src/00/z2ui5_cl_app_demo_43.clas.xml
deleted file mode 100644
index 12234cfa..00000000
--- a/src/00/z2ui5_cl_app_demo_43.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_43
- E
- test - documentation
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_44.clas.abap b/src/00/z2ui5_cl_app_demo_44.clas.abap
deleted file mode 100644
index 2e644ec8..00000000
--- a/src/00/z2ui5_cl_app_demo_44.clas.abap
+++ /dev/null
@@ -1,16 +0,0 @@
-CLASS z2ui5_cl_app_demo_44 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
- INTERFACES z2ui5_if_app.
-
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_44 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
- client->set_next( VALUE #( xml_main = z2ui5_cl_xml_view=>factory( )->label( `Hello World!` )->get_root( )->xml_get( ) ) ).
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_44.clas.xml b/src/00/z2ui5_cl_app_demo_44.clas.xml
deleted file mode 100644
index df11b622..00000000
--- a/src/00/z2ui5_cl_app_demo_44.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_44
- E
- test - Hello World
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_45.clas.abap b/src/00/z2ui5_cl_app_demo_45.clas.abap
deleted file mode 100644
index 39cb0399..00000000
--- a/src/00/z2ui5_cl_app_demo_45.clas.abap
+++ /dev/null
@@ -1,121 +0,0 @@
-CLASS z2ui5_cl_app_demo_45 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- TYPES:
- BEGIN OF ty_row,
- count TYPE i,
- value TYPE string,
- descr TYPE string,
- icon TYPE string,
- info TYPE string,
- checkbox TYPE abap_bool,
- END OF ty_row.
-
- DATA t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
- DATA check_initialized TYPE abap_bool.
- DATA mv_info_filter TYPE string.
- METHODS refresh_data.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_45 IMPLEMENTATION.
-
-
- METHOD refresh_data.
-
- DO 1000 TIMES.
- DATA(ls_row) = VALUE ty_row( count = sy-index value = 'red'
- info = COND #( WHEN sy-index < 50 THEN 'completed' ELSE 'uncompleted' )
- descr = 'this is a description' checkbox = abap_true ).
- INSERT ls_row INTO TABLE t_tab.
- ENDDO.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_if_app~main.
-
- IF check_initialized = abap_false.
- check_initialized = abap_true.
- refresh_data( ).
- ENDIF.
-
- CASE client->get( )-event.
-
- WHEN 'FLTER_INFO'.
- refresh_data( ).
- IF mv_info_filter <> ''.
- DELETE t_tab WHERE info <> mv_info_filter.
- ENDIF.
-
- WHEN 'BUTTON_POST'.
- client->popup_message_box( 'button post was pressed' ).
-
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
-
- ENDCASE.
-
-
- DATA(page) = Z2UI5_CL_XML_VIEW=>factory( )->shell(
- )->page(
- title = 'abap2UI5 - Scroll Container with Table and Toolbar'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link(
- text = 'Source_Code' target = '_blank'
- href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent( ).
-
- page->simple_form( title = 'Form Title' editable = abap_true
- )->content( 'form'
- )->title( 'Filter'
- )->label( 'info'
- )->input( client->_bind( mv_info_filter )
- )->button(
- text = 'filter'
- press = client->_event( 'FLTER_INFO' ) ).
-
- DATA(tab) = page->scroll_container( height = '70%' vertical = abap_true
- )->table(
- growing = abap_true
- growingthreshold = '20'
- growingscrolltoload = abap_true
- items = client->_bind_one( t_tab )
- sticky = 'ColumnHeaders,HeaderToolbar' ).
-
- tab->header_toolbar(
- )->overflow_toolbar(
- )->toolbar_spacer( ).
-
- tab->columns(
- )->column(
- )->text( 'Color' )->get_parent(
- )->column(
- )->text( 'Info' )->get_parent(
- )->column(
- )->text( 'Description' )->get_parent(
- )->column(
- )->text( 'Checkbox' )->get_parent(
- )->column(
- )->text( 'Counter' ).
-
- tab->items( )->column_list_item( )->cells(
- )->text( '{VALUE}'
- )->text( '{INFO}'
- )->text( '{DESCR}'
- )->checkbox( selected = '{CHECKBOX}' enabled = abap_false
- )->text( '{COUNT}' ).
-
- client->set_next( VALUE #( xml_main = page->get_root( )->xml_get( ) ) ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_45.clas.xml b/src/00/z2ui5_cl_app_demo_45.clas.xml
deleted file mode 100644
index a064d360..00000000
--- a/src/00/z2ui5_cl_app_demo_45.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_45
- E
- tab - filter columns
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_46.clas.abap b/src/00/z2ui5_cl_app_demo_46.clas.abap
deleted file mode 100644
index 98782bd0..00000000
--- a/src/00/z2ui5_cl_app_demo_46.clas.abap
+++ /dev/null
@@ -1,110 +0,0 @@
-CLASS z2ui5_cl_app_demo_46 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- TYPES:
- BEGIN OF ty_row,
- title TYPE string,
- value TYPE string,
- descr TYPE string,
- icon TYPE string,
- info TYPE string,
- selected TYPE abap_bool,
- checkbox TYPE abap_bool,
- END OF ty_row.
-
- DATA t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
- DATA check_initialized TYPE abap_bool.
- DATA mv_display TYPE string.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS z2ui5_cl_app_demo_46 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- IF check_initialized = abap_false.
- check_initialized = abap_true.
-
- mv_display = 'LIST'.
-
- t_tab = VALUE #(
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'incompleted' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'working' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'working' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
- ).
-
- ELSE.
-
- CASE client->get( )-event.
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
- WHEN OTHERS.
- mv_display = client->get( )-event.
- ENDCASE.
-
- ENDIF.
-
- DATA(page) = z2ui5_cl_xml_view=>factory( )->shell(
- )->page(
- title = 'abap2UI5 - Table output in two different Ways - Changing UI without Model'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->button( text = 'Display List' press = client->_event( 'LIST' )
- )->button( text = 'Display Table' press = client->_event( 'TABLE' )
- )->link(
- text = 'Source_Code' target = '_blank'
- href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent( ).
-
- CASE mv_display.
-
- WHEN 'LIST'.
- page->list(
- headertext = 'List Control'
- items = client->_bind( t_tab )
- )->standard_list_item(
- title = '{TITLE}'
- description = '{DESCR}'
- icon = '{ICON}'
- info = '{INFO}'
- ).
-
- WHEN 'TABLE'.
-
- DATA(tab) = page->table(
- headertext = 'Table Control'
- items = client->_bind( t_tab ) ).
-
- tab->columns(
- )->column(
- )->text( 'Title' )->get_parent(
- )->column(
- )->text( 'Descr' )->get_parent(
- )->column(
- )->text( 'Icon' )->get_parent(
- )->column(
- )->text( 'Info' ).
-
- tab->items( )->column_list_item( )->cells(
- )->text( '{TITLE}'
- )->text( '{DESCR}'
- )->text( '{ICON}'
- )->text( '{INFO}' ).
-
- ENDCASE.
- client->set_next( VALUE #( xml_main = page->get_root( )->xml_get( ) ) ).
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_46.clas.xml b/src/00/z2ui5_cl_app_demo_46.clas.xml
deleted file mode 100644
index 8b106cd9..00000000
--- a/src/00/z2ui5_cl_app_demo_46.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_46
- E
- tab and list change
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_47.clas.abap b/src/00/z2ui5_cl_app_demo_47.clas.abap
deleted file mode 100644
index 643d0a09..00000000
--- a/src/00/z2ui5_cl_app_demo_47.clas.abap
+++ /dev/null
@@ -1,80 +0,0 @@
-CLASS z2ui5_cl_app_demo_47 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- DATA int1 TYPE i.
- DATA int2 TYPE i.
- DATA int_sum TYPE i.
-
- DATA dec1 TYPE p LENGTH 10 DECIMALS 4.
- DATA dec2 TYPE p LENGTH 10 DECIMALS 4.
- DATA dec_sum TYPE p LENGTH 10 DECIMALS 4.
-
- DATA date TYPE d.
- DATA time TYPE t.
-
- DATA check_initialized TYPE abap_bool.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS z2ui5_cl_app_demo_47 IMPLEMENTATION.
-
-
- METHOD z2ui5_if_app~main.
-
- IF check_initialized = abap_false.
- check_initialized = abap_true.
- date = sy-datum.
- time = sy-uzeit.
- dec1 = -1 / 3.
-
- ENDIF.
-
- CASE client->get( )-event.
- WHEN 'BUTTON_INT'.
- int_sum = int1 + int2.
- WHEN 'BUTTON_DEC'.
- dec_sum = dec1 + dec2.
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
- ENDCASE.
-
- client->set_next( VALUE #( xml_main = z2ui5_cl_xml_view=>factory( )->shell(
- )->page(
- title = 'abap2UI5 - Integer and Decimals'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link(
- text = 'Source_Code'
- href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
- target = '_blank'
- )->get_parent(
- )->simple_form( title = 'Integer and Decimals' editable = abap_true
- )->content( 'form'
- )->title( 'Input'
- )->label( 'integer'
- )->input( value = client->_bind( int1 )
- )->input( value = client->_bind( int2 )
- )->input( enabled = abap_false value = client->_bind( int_sum )
- )->button( text = 'calc sum' press = client->_event( 'BUTTON_INT' )
- )->label( 'decimals'
- )->input( client->_bind( dec1 )
- )->input( client->_bind( dec2 )
- )->input( enabled = abap_false value = client->_bind( dec_sum )
- )->button( text = 'calc sum' press = client->_event( 'BUTTON_DEC' )
- )->label( 'date'
- )->input( client->_bind( date )
- )->label( 'time'
- )->input( client->_bind( time )
- )->get_root( )->xml_get( ) ) ).
-
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_47.clas.xml b/src/00/z2ui5_cl_app_demo_47.clas.xml
deleted file mode 100644
index f2aa6b63..00000000
--- a/src/00/z2ui5_cl_app_demo_47.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_47
- E
- more - type conversion
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_48.clas.abap b/src/00/z2ui5_cl_app_demo_48.clas.abap
deleted file mode 100644
index 8ab79968..00000000
--- a/src/00/z2ui5_cl_app_demo_48.clas.abap
+++ /dev/null
@@ -1,102 +0,0 @@
-CLASS z2ui5_cl_app_demo_48 DEFINITION
- PUBLIC
- FINAL
- CREATE PUBLIC .
-
- PUBLIC SECTION.
- INTERFACES z2ui5_if_app.
-
- TYPES:
- BEGIN OF ty_row,
- title TYPE string,
- value TYPE string,
- descr TYPE string,
- icon TYPE string,
- info TYPE string,
- highlight type string,
- wrapCharLimit type i,
- selected TYPE abap_bool,
- checkbox TYPE abap_bool,
- END OF ty_row.
-
- DATA t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
- DATA check_initialized TYPE abap_bool.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS z2ui5_cl_app_demo_48 IMPLEMENTATION.
-
- METHOD z2ui5_if_app~main.
-
- IF check_initialized = abap_false.
- check_initialized = abap_true.
-
- t_tab = VALUE #(
- ( title = 'entry_01' info = 'Information' descr = 'this is a description1 1234567890 1234567890' icon = 'sap-icon://badge' highlight = 'Information' wrapCharLimit = '100' )
- ( title = 'entry_02' info = 'Success' descr = 'this is a description2 1234567890 1234567890' icon = 'sap-icon://favorite' highlight = 'Success' wrapCharLimit = '10')
- ( title = 'entry_03' info = 'Warning' descr = 'this is a description3 1234567890 1234567890' icon = 'sap-icon://employee' highlight = 'Warning' wrapCharLimit = '100')
- ( title = 'entry_04' info = 'Error' descr = 'this is a description4 1234567890 1234567890' icon = 'sap-icon://accept' highlight = 'Error' wrapCharLimit = '10' )
- ( title = 'entry_05' info = 'None' descr = 'this is a description5 1234567890 1234567890' icon = 'sap-icon://activities' highlight = 'None' wrapCharLimit = '10')
- ( title = 'entry_06' info = 'Information' descr = 'this is a description6 1234567890 1234567890' icon = 'sap-icon://account' highlight = 'Information' wrapCharLimit = '100' )
- ).
-
- ENDIF.
-
- CASE client->get( )-event.
- WHEN 'EDIT'.
- data(lv_row_title) = client->get( )-event_data.
- client->popup_message_box( `EDIT - ` && lv_row_title ).
- WHEN 'SELCHANGE'.
- DATA(lt_sel) = t_tab.
- DELETE lt_sel WHERE selected = abap_false.
- client->popup_message_box( `SELECTION_CHANGED -` && lt_sel[ 1 ]-title ).
- WHEN 'BACK'.
- client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
- ENDCASE.
-
- DATA(page) = z2ui5_cl_xml_view=>factory( )->shell(
- )->page(
- title = 'abap2UI5 - List'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link(
- text = 'Demo' target = '_blank'
- href = `https://twitter.com/OblomovDev/status/1657279838586109953`
- )->link(
- text = 'Source_Code' target = '_blank'
- href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent( ).
-
- page->list(
- headertext = 'List Ouput'
- items = client->_bind( t_tab )
- mode = `SingleSelectMaster`
- selectionchange = client->_event( 'SELCHANGE' )
- )->_generic(
- name = `StandardListItem`
- t_prop = VALUE #(
- ( n = `title` v = '{TITLE}' )
- ( n = `description` v = '{DESCR}' )
- ( n = `icon` v = '{ICON}' )
- ( n = `iconInset` v = 'false' )
- ( n = `highlight` v = '{HIGHLIGHT}' )
- ( n = `info` v = '{INFO}' )
- ( n = `infoState` v = '{HIGHLIGHT}' )
- ( n = `infoStateInverted` v = 'true' )
- ( n = 'type' v = `Detail` )
- ( n = 'wrapping' v = `true` )
- ( n = 'wrapCharLimit' v = `{WRAPCHARLIMIT}` )
- ( n = 'selected' v = `{SELECTED}` )
- ( n = 'detailPress' v = client->_event( val = 'EDIT' data = `${TITLE}` ) )
-
- ) ).
- client->set_next( VALUE #( xml_main = page->get_root( )->xml_get( ) ) ).
-
- ENDMETHOD.
-
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_48.clas.xml b/src/00/z2ui5_cl_app_demo_48.clas.xml
deleted file mode 100644
index c8d30641..00000000
--- a/src/00/z2ui5_cl_app_demo_48.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_DEMO_48
- E
- tab - list2
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/00/z2ui5_cl_app_demo_49.clas.abap b/src/00/z2ui5_cl_app_demo_49.clas.abap
deleted file mode 100644
index f3ecef57..00000000
--- a/src/00/z2ui5_cl_app_demo_49.clas.abap
+++ /dev/null
@@ -1,1032 +0,0 @@
-CLASS z2ui5_cl_app_demo_49 DEFINITION PUBLIC.
-
- PUBLIC SECTION.
-
- INTERFACES z2ui5_if_app.
-
- TYPES:
- BEGIN OF ty_s_token,
- key TYPE string,
- text TYPE string,
- visible TYPE abap_bool,
- selkz TYPE abap_bool,
- END OF ty_S_token.
-
- DATA mt_token TYPE STANDARD TABLE OF ty_S_token WITH EMPTY KEY.
-* DATA mt_token_sugg TYPE STANDARD TABLE OF ty_S_token WITH EMPTY KEY.
-
- DATA mt_table TYPE STANDARD TABLE OF z2ui5_t_draft.
- DATA ms_detail TYPE z2ui5_t_draft.
- DATA mv_check_columns TYPE abap_bool.
- DATA mv_check_sort TYPE abap_bool.
- DATA mv_check_table TYPE abap_bool.
-
- DATA mv_contentheight TYPE string VALUE `70%`.
- DATA mv_contentwidth TYPE string VALUE `70%`.
-
- DATA mv_check_download_csv TYPE abap_bool.
-
- TYPES:
- BEGIN OF ty_S_out,
- selkz TYPE abap_bool,
- uuid TYPE string,
- uuid_prev TYPE string,
- uuid_prev_app TYPE string,
- uuid_prev_app_stack TYPE string,
- timestampl TYPE string,
- uname TYPE string,
- END OF ty_s_out.
-
- DATA:
- BEGIN OF ms_view,
- headerpinned TYPE abap_bool,
- headerexpanded TYPE abap_bool,
- search_val TYPE string,
- title TYPE string,
- t_tab TYPE STANDARD TABLE OF ty_S_out WITH EMPTY KEY,
- END OF ms_view.
-
- TYPES:
- BEGIN OF ty_S_cols,
- visible TYPE abap_bool,
- name TYPE string,
- length TYPE string,
- title TYPE string,
- editable TYPE abap_bool,
- END OF ty_S_cols.
-
- TYPES:
- BEGIN OF ty_S_filter_show,
- selkz TYPE abap_bool,
- name TYPE string,
- value TYPE string,
- " t_value TYPE STANDARD TABLE OF ty_S_token WITH EMPTY KEY,
- END OF ty_S_filter_show.
-
- TYPES:
- BEGIN OF ty_S_filter,
- uuid TYPE string,
- uuid_prev TYPE string,
- "STANDARD TABLE OF ty_s_token WITH EMPTY KEY,
- END OF ty_S_filter.
-
- TYPES:
- BEGIN OF ty_S_sort,
- " selkz TYPE abap_bool,
- name TYPE string,
- type TYPE string,
- " descr TYPE string,
- " check_descending TYPE string,
- END OF ty_S_sort.
-
- DATA:
- BEGIN OF ms_layout,
- check_zebra TYPE abap_bool,
- title TYPE string,
- sticky_header TYPE string,
- selmode TYPE string,
- t_filter_show TYPE STANDARD TABLE OF ty_S_filter_show,
- s_filter TYPE ty_s_filter,
- t_cols TYPE STANDARD TABLE OF ty_S_cols,
- t_sort TYPE STANDARD TABLE OF ty_S_sort,
- END OF ms_layout.
-
- TYPES:
- BEGIN OF s_combobox,
- key TYPE string,
- text TYPE string,
- END OF s_combobox.
-
- TYPES ty_t_combo TYPE STANDARD TABLE OF s_combobox WITH EMPTY KEY.
-
- CLASS-METHODS encode_base64
- IMPORTING
- val TYPE string
- RETURNING
- VALUE(result) TYPE string.
-
- TYPES:
- BEGIN OF ty_S_db_layout,
- selkz TYPE ABap_bool,
- name TYPE string,
- user TYPE string,
- default TYPE abap_bool,
- data TYPE string,
- END OF ty_S_db_layout.
- DATA mt_db_layout TYPE STANDARD TABLE OF ty_S_db_layout.
-
- DATA mv_layout_name TYPE string.
-
- PROTECTED SECTION.
-
- DATA client TYPE REF TO z2ui5_if_client.
- DATA:
- BEGIN OF app,
- check_initialized TYPE abap_bool,
- view_main TYPE string,
- view_popup TYPE string,
- get TYPE z2ui5_if_client=>ty_s_get,
- next TYPE z2ui5_if_client=>ty_s_next,
- END OF app.
-
-
- METHODS z2ui5_on_init.
- METHODS z2ui5_on_event.
- METHODS z2ui5_on_render.
- METHODS init_table_output.
- METHODS z2ui5_on_render_main.
- METHODS z2ui5_on_render_detail.
- METHODS z2ui5_on_render_pop_setup.
- METHODS z2ui5_on_render_pop_filter.
- METHODS z2ui5_on_render_pop_detail.
- METHODS z2ui5_on_render_pop_layout.
- METHODS z2ui5_set_download_csv
- IMPORTING
- i_view TYPE REF TO z2ui5_cl_xml_view.
- METHODS z2ui5_set_search.
- METHODS z2ui5_set_detail.
- METHODS z2ui5_set_sort.
- METHODS z2ui5_set_filter
- IMPORTING
- io_box TYPE REF TO z2ui5_cl_xml_view.
- METHODS z2ui5_set_data.
-
-ENDCLASS.
-
-
-
-CLASS Z2UI5_CL_APP_DEMO_49 IMPLEMENTATION.
-
-
- METHOD encode_base64.
-
- TRY.
- CALL METHOD ('CL_WEB_HTTP_UTILITY')=>encode_base64
- EXPORTING
- unencoded = val
- RECEIVING
- encoded = result.
-
- CATCH cx_sy_dyn_call_illegal_class.
-
- DATA(classname) = 'CL_HTTP_UTILITY'.
- CALL METHOD (classname)=>encode_base64
- EXPORTING
- unencoded = val
- RECEIVING
- encoded = result.
-
- ENDTRY.
-
- ENDMETHOD.
-
-
- METHOD init_table_output.
-
- " CLEAR ms_layout-s_table.
- " CLEAR mt_cols.
- " CLEAR ms_layout-t_cols.
-
- ms_view-headerexpanded = abap_true.
- ms_view-headerpinned = abap_true.
-
- DATA(lt_cols) = lcl_db=>get_fieldlist_by_table( mt_table ).
- LOOP AT lt_cols REFERENCE INTO DATA(lr_col) FROM 2.
-
- INSERT VALUE #(
- name = lr_col->*
- ) INTO TABLE ms_layout-t_filter_show.
-
- INSERT VALUE #(
- visible = abap_true
- name = lr_col->*
- " length = `10px`
- title = lr_col->*
- ) INTO TABLE ms_layout-t_cols.
-
-* INSERT VALUE #(
-* " selkz = abap_true
-* name = lr_col->*
-* " length = `10px`
-* ) INTO TABLE ms_layout-t_cols.
-
- ENDLOOP.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_if_app~main.
-
- me->client = client.
- app-get = client->get( ).
- app-view_popup = ``.
- app-next-path = `/z2ui5_cl_app_demo_49`.
- app-next-title = `List Report`.
-
-
- IF app-check_initialized = abap_false.
- app-check_initialized = abap_true.
- z2ui5_on_init( ).
- ENDIF.
-
- IF app-get-event IS NOT INITIAL.
- z2ui5_on_event( ).
- ENDIF.
-
- z2ui5_on_render( ).
-
-
- client->set_next( app-next ).
- CLEAR app-get.
- CLEAR app-next.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_event.
-
- CASE app-get-event.
-
- WHEN 'SORT_ADD'.
- INSERT VALUE #( ) INTO TABLE ms_layout-t_sort.
- app-view_popup = 'POPUP_SETUP'.
-
- WHEN `SORT_DELETE`.
- DELETE ms_layout-t_sort WHERE name = app-get-event_data.
- app-view_popup = 'POPUP_SETUP'.
-
- WHEN 'BUTTON_DELETE'.
- DELETE ms_view-t_tab WHERE selkz = abap_true.
-
- WHEN 'BUTTON_CUSTOM'.
- client->popup_message_box( `custom action called` ).
-
- WHEN 'BUTTON_START'.
- z2ui5_set_data( ).
-
- WHEN 'BUTTON_DOWNLOAD'.
- mv_check_download_csv = abap_true.
-
- WHEN `POPUP_LAYOUT_LOAD`.
- DATA(ls_layout2) = mt_db_layout[ selkz = abap_true ].
- z2ui5_lcl_utility=>trans_xml_2_object(
- EXPORTING
- xml = ls_layout2-data
- IMPORTING
- data = ms_layout
- ).
- ms_view-title = ls_layout2-name.
-
- WHEN `BUTTON_SAVE_LAYOUT`.
- DATA(ls_layout) = VALUE ty_s_db_layout(
- data = z2ui5_lcl_utility=>trans_data_2_xml( ms_layout )
- name = mv_layout_name
- ).
- INSERT ls_layout INTO TABLE mt_db_layout.
-
- WHEN 'BUTTON_SEARCH'.
- app-next-s_cursor-id = 'SEARCH'.
- app-next-s_cursor-cursorpos = '99'.
- app-next-s_cursor-selectionend = '99'.
- app-next-s_cursor-selectionstart = '99'.
- z2ui5_set_search( ).
-
- WHEN 'MAIN'.
- app-view_main = 'MAIN'.
-
- WHEN 'DETAIL'.
- z2ui5_set_detail( ).
- app-view_main = 'DETAIL'.
-
- WHEN 'POPUP_DETAIL'.
- app-next-popover_open_by_id = app-get-event_data.
- app-view_popup = 'POPUP_LAYOUT'.
-
- WHEN 'POPUP_LAYOUT'.
- app-next-popover_open_by_id = `btn_layout`.
- app-view_popup = 'POPUP_LAYOUT'.
-
- WHEN 'POPUP_FILTER'.
- app-view_popup = 'POPUP_FILTER'.
-
- WHEN 'BUTTON_SETUP'.
- app-view_popup = 'POPUP_SETUP'.
-
- WHEN 'POPUP_FILTER_CONTINUE'.
- " app-view_popup = 'POPUP_FILTER'.
-
- WHEN 'BUTTON_INIT'.
- init_table_output( ).
-
- WHEN 'BUTTON_CANCEL'.
- client->popup_message_toast( |cancel| ).
- app-view_popup = ''.
-
- WHEN 'BACK'.
- " app-next-path = `test`.
- client->nav_app_leave( client->get_app( app-get-id_prev_app_stack ) ).
-
- ENDCASE.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_init.
-
-
- init_table_output( ).
-
- ms_view-title = `Standart`.
- ms_layout-selmode = 'MultiSelect'.
- ms_layout-check_zebra = abap_true.
- ms_view-t_tab = CORRESPONDING #( mt_table ).
- ms_layout-sticky_header = `HeaderToolbar,InfoToolbar,ColumnHeaders`.
- ms_layout-title = `Drafts`.
-
- app-next-t_scroll = VALUE #( ( name = `page_main` ) ).
-
- mt_token = VALUE #(
- ( key = 'VAL1' text = 'value_1' selkz = abap_true visible = abap_true )
- ( key = 'VAL3' text = 'value_3' selkz = abap_false visible = abap_true )
- ( key = 'VAL4' text = 'value_4' selkz = abap_true )
- ( key = '<500' text = '<500' selkz = abap_true )
- ).
-
-
-
- " IF app-view_main IS INITIAL.
- DATA(lv_url) = z2ui5_cl_http_handler=>client-t_header[ name = `referer` ]-value.
- SPLIT lv_url AT `/z2ui5_cl_app_demo_49/` INTO DATA(lv_dummy1) DATA(lv_dummy2).
- SPLIT lv_dummy2 AT `(` INTO DATA(lv_view) DATA(lv_token).
- IF lv_view IS NOT INITIAL.
- app-view_main = lv_view.
- SPLIT lv_token AT `(` INTO DATA(lv_token2) lv_dummy1.
- SPLIT lv_token2 AT `)` INTO lv_token lv_dummy1.
- ms_detail-uuid = lv_token.
- IF ms_detail-uuid IS NOT INITIAL.
- z2ui5_set_data( ).
-
- ms_detail = mt_table[ uuid = ms_detail-uuid ].
-
- SELECT SINGLE FROM z2ui5_t_draft
- FIELDS *
- WHERE uuid = @ms_detail-uuid
- INTO CORRESPONDING FIELDS OF @ms_detail
- .
-
- ENDIF.
- " ENDIF.
- ELSE.
- app-view_main = 'MAIN'.
- ENDIF.
-
-
-* mt_token_sugg = VALUE #(
-* ( key = 'VAL1' text = 'value_1' )
-* ( key = 'VAL2' text = 'value_2' )
-* ( key = 'VAL3' text = 'value_3' )
-* ( key = 'VAL4' text = 'value_4' )
-* ).
-
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render.
-
- CASE app-view_popup.
- WHEN `POPUP_FILTER`.
- z2ui5_on_render_pop_filter( ).
- WHEN `POPUP_SETUP`.
- z2ui5_on_render_pop_setup( ).
- WHEN `POPUP_LAYOUT`.
- z2ui5_on_render_pop_layout( ).
- WHEN `POPUP_DETAIL`.
- z2ui5_on_render_pop_detail( ).
- ENDCASE.
-
- app-next-path = app-next-path && `/` && app-view_main.
-
- CASE app-view_main.
- WHEN 'MAIN'.
- z2ui5_on_render_main( ).
- WHEN 'DETAIL'.
- z2ui5_on_render_detail( ).
- ENDCASE.
-
-
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render_detail.
-
- app-next-path = app-next-path && `(` && ms_detail-uuid && `)`.
-
- DATA(view) = z2ui5_cl_xml_view=>factory(
- )->page(
- title = 'abap2UI5 - List Report'
- navbuttonpress = client->_event( 'MAIN' )
- shownavbutton = abap_true
- )->header_content(
- )->link(
- text = 'Demo' target = '_blank'
- href = 'https://twitter.com/OblomovDev/status/1637163852264624139'
- )->link(
- text = 'Source_Code' target = '_blank' href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent( ).
-
- DATA(page) = view->object_page_layout(
- showtitleinheadercontent = abap_true
- showeditheaderbutton = abap_true
- editheaderbuttonpress = client->_event( 'EDIT_HEADER_PRESS' )
- uppercaseanchorbar = abap_false
- ).
-
- DATA(header_title) = page->header_title( )->object_page_dyn_header_title( ).
-
- header_title->expanded_heading(
- )->hbox(
- )->title( text = 'Draft' wrapping = abap_true ).
-
- header_title->snapped_heading(
- )->flex_box( alignitems = `Center`
- )->avatar( src = `` class = 'sapUiTinyMarginEnd'
- )->title( text = 'Draft' wrapping = abap_true ).
-
- header_title->expanded_content( ns = `uxap` )->text( `Details` ).
- header_title->snapped_Content( ns = `uxap` )->text( `Details` ).
- header_title->snapped_Title_On_Mobile( )->title( `Details` ).
-
- DATA(header_content) = page->header_Content( ns = 'uxap' ).
-
- header_content->flex_box( wrap = 'Wrap'
- )->avatar( src = `` class = 'sapUiSmallMarginEnd' displaySize = 'layout'
- )->vertical_layout( class = 'sapUiSmallMarginBeginEnd'
- )->label( text = `UUID`
- )->label( text = ms_detail-uuid
- )->get_parent(
- )->horizontal_layout( class = 'sapUiSmallMarginBeginEnd'
- )->vertical_layout(
- )->label( text = 'UUID PRevious'
- )->label( text = ms_detail-uuid_prev
- )->get_parent(
- )->get_parent(
- )->vertical_layout( class = 'sapUiSmallMarginBeginEnd'
- )->label( text = 'Info'
- )->vbox(
- )->label( 'Timestampl'
- )->label( CONV #( ms_detail-timestampl )
- )->get_parent( )->get_parent(
- )->vertical_layout( class = 'sapUiSmallMarginBeginEnd'
- )->label( text = 'User'
- )->label( text = ms_detail-uname
- )->get_parent(
- ).
-
- DATA(sections) = page->sections( ).
-
- sections->object_page_section( titleuppercase = abap_false id = 'goalsSectionSS1' title = '2014 Goals Plan'
- )->heading( ns = `uxap`
- )->get_parent(
- )->sub_sections(
- )->object_page_sub_section( id = 'goalssubSectionSS1' title = 'XML'
- )->blocks(
- )->code_editor(
- type = `XML`
- " editable = mv_check_editable
- value = client->_bind_one( ms_detail-data ) ).
-
- app-next-xml_main = view->get_root( )->xml_get( ).
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render_main.
-
- z2ui5_set_sort( ).
-
- " DATA(view) = z2ui5_cl_xml_view=>factory( )->shell( ).
-
- DATA(view) = z2ui5_cl_xml_view=>factory(
- )->page( id = `page_main`
- title = 'abap2UI5 - List Report'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link(
- text = 'Demo' target = '_blank'
- href = 'https://twitter.com/OblomovDev/status/1637163852264624139'
- )->link(
- text = 'Source_Code' target = '_blank' href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
- )->get_parent( ).
-
- IF mv_check_download_csv = abap_true.
- z2ui5_set_download_csv( view ).
- ENDIF.
-
- DATA(page) = view->dynamic_page(
- headerexpanded = client->_bind( ms_view-headerexpanded )
- headerpinned = client->_bind( ms_view-headerpinned ) ).
-
- DATA(header_title) = page->title( ns = 'f'
- )->get( )->dynamic_page_title( ).
-
- header_title->heading( ns = 'f' )->hbox( )->title( ms_view-title
- )->button( id = `btn_layout` press = client->_event( `POPUP_LAYOUT` ) type = `Transparent` icon = `sap-icon://dropdown` ).
-
- header_title->expanded_content( 'f'
- )->label( text = 'Drafts of abap2UI5' ).
-
- header_title->snapped_content( ns = 'f'
- )->label( text = 'Drafts of abap2UI5' ).
-
- header_title->actions( ns = 'f' )->overflow_toolbar(
- )->button( text = `Custom Function` press = client->_event( `BUTTON_CUSTOM` )
- ).
-
- DATA(lo_box) = page->header( )->dynamic_page_header( pinnable = abap_true
- )->flex_box( alignitems = `Start` justifycontent = `SpaceBetween` )->flex_box( alignItems = `Start` ).
-
- z2ui5_set_filter( lo_box ).
-
-
- DATA(cont) = page->content( ns = 'f' ).
-
-
- DATA(tab) = cont->table(
- items = client->_bind( val = ms_view-t_tab )
- alternaterowcolors = ms_layout-check_zebra
- sticky = ms_layout-sticky_header
- autopopinmode = abap_true
- mode = ms_layout-selmode ).
-
- tab->header_toolbar(
- )->toolbar(
- )->title( text = ms_layout-title && ` (` && shift_right( CONV string( lines( ms_view-t_tab ) ) ) && `)` level = `H2`
- )->toolbar_spacer(
- )->button(
- icon = 'sap-icon://refresh'
- press = client->_event( 'BUTTON_REFRESH' )
- )->multi_input(
- tokens = client->_bind( mt_token )
- showclearicon = abap_true
-* showvaluehelp = abap_true
-* suggestionitems = client->_bind( mt_token_sugg )
- )->item(
- key = `{KEY}`
- text = `{TEXT}`
- )->tokens(
- )->token(
- key = `{KEY}`
- text = `{TEXT}`
- selected = `{SELKZ}`
-* visible = `{VISIBLE}`
- )->get_parent( )->get_parent(
-
- )->toolbar_spacer(
-* )->button(
-* text = `Custom Action`
-* press = client->_event( 'BUTTON_CUSTOM' )
-
- )->button(
- text = `Anlegen`
- enabled = abap_false
- press = client->_event( 'BUTTON_CREATE' )
- )->button(
- text = `Löschen`
- press = client->_event( 'BUTTON_DELETE' )
- )->button(
- icon = 'sap-icon://action-settings'
- press = client->_event( 'BUTTON_SETUP' )
- )->button(
- icon = 'sap-icon://download'
- press = client->_event( 'BUTTON_DOWNLOAD' )
- ).
-
-
- data(lv_width) = 10.
- DATA(lo_columns) = tab->columns( ).
- LOOP AT ms_layout-t_cols REFERENCE INTO DATA(lr_field)
- WHERE visible = abap_true.
- lo_columns->column(
- minscreenwidth = shift_right( conv string( lv_width ) ) && `px`
- demandpopin = abap_true width = lr_field->length )->text( text = CONV char10( lr_field->title )
- )->footer(
- )->object_number( number = `Summe` unit = 'ST' state = `Warning` ).
- lv_width = lv_width + 10.
- ENDLOOP.
-
- DATA(lo_cells) = tab->items( )->column_list_item(
- press = client->_event( val = 'DETAIL' data = `${UUID}` )
- selected = `{SELKZ}`
- type = `Navigation` )->cells( ).
- LOOP AT ms_layout-t_cols REFERENCE INTO lr_field
- WHERE visible = abap_true.
- IF lr_field->editable = abap_true.
- lo_cells->input( `{` && lr_field->name && `}` ).
- ELSE.
- " lo_cells->text( `{` && lr_field->name && `}` ).
- lo_cells->link( text = `{` && lr_field->name && `}`
- " press = client->_event( val = `POPUP_DETAIL` data = `${` && lr_field->name && `}` ) ).
- press = client->_event( val = `POPUP_DETAIL` data = `${$source>/id}` ) ).
- " press = client->_event( val = `POPUP_DETAIL` data = `$event` ) ).
- ENDIF.
- ENDLOOP.
-
- app-next-xml_main = page->get_root( )->xml_get( ).
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render_pop_detail.
-
- DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ).
-
- lo_popup->popover( placement = `Bottom` title = 'abap2UI5 - Layout' contentwidth = `50%`
- )->input( description = `Name` value = client->_bind( mv_layout_name )
- )->button( text = `Save` press = client->_event( `BUTTON_SAVE_LAYOUT` )
- )->table(
- mode = 'SingleSelectLeft'
- items = client->_bind( mt_db_layout )
- )->columns(
- )->column( )->text( 'Name' )->get_parent(
- )->column( )->text( 'User' )->get_parent(
- )->column( )->text( 'Default' )->get_parent(
- " )->column( )->text( 'Description' )->get_parent(
- )->get_parent(
- )->items( )->column_list_item( selected = '{SELKZ}'
- )->cells(
- " )->checkbox( '{SELKZ}'
- )->text( '{NAME}'
- )->text( '{USER}'
- )->text( '{DEFAULT}'
- " )->text( '{DESCR}'
- )->get_parent( )->get_parent( )->get_parent( )->get_parent(
- )->footer( )->overflow_toolbar(
- )->toolbar_spacer(
- )->button(
- text = 'load'
- press = client->_event( 'POPUP_LAYOUT_LOAD' )
- type = 'Emphasized'
- )->button(
- text = 'close'
- press = client->_event( 'POPUP_LAYOUT_CONTINUE' )
- type = 'Emphasized' ).
-
- app-next-xml_popup = lo_popup->get_root( )->xml_get( ).
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render_pop_filter.
-
- DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ).
-
- lo_popup->dialog( 'abap2UI5 - Popup to select entry'
- )->table(
- mode = 'MultiSelect'
- items = client->_bind( ms_layout-t_filter_show )
- )->columns(
- )->column( )->text( 'Title' )->get_parent(
- )->column( )->text( 'Color' )->get_parent(
- )->column( )->text( 'Info' )->get_parent(
- )->column( )->text( 'Description' )->get_parent(
- )->get_parent(
- )->items( )->column_list_item( selected = '{SELKZ}'
- )->cells(
- " )->checkbox( '{SELKZ}'
- )->text( '{NAME}'
- )->text( '{VALUE}'
- " )->text( '{DESCR}'
- )->get_parent( )->get_parent( )->get_parent( )->get_parent(
- )->footer( )->overflow_toolbar(
- )->toolbar_spacer(
- )->button(
- text = 'continue'
- press = client->_event( 'POPUP_FILTER_CONTINUE' )
- type = 'Emphasized' ).
-
- app-next-xml_popup = lo_popup->get_root( )->xml_get( ).
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render_pop_layout.
-
- DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ).
-
- lo_popup->popover( placement = `Bottom` title = 'abap2UI5 - Layout' contentwidth = `50%`
- )->input( description = `Name` value = client->_bind( mv_layout_name )
- )->button( text = `Save` press = client->_event( `BUTTON_SAVE_LAYOUT` )
- )->table(
- mode = 'SingleSelectLeft'
- items = client->_bind( mt_db_layout )
- )->columns(
- )->column( )->text( 'Name' )->get_parent(
- )->column( )->text( 'User' )->get_parent(
- )->column( )->text( 'Default' )->get_parent(
- " )->column( )->text( 'Description' )->get_parent(
- )->get_parent(
- )->items( )->column_list_item( selected = '{SELKZ}'
- )->cells(
- " )->checkbox( '{SELKZ}'
- )->text( '{NAME}'
- )->text( '{USER}'
- )->text( '{DEFAULT}'
- " )->text( '{DESCR}'
- )->get_parent( )->get_parent( )->get_parent( )->get_parent(
- )->footer( )->overflow_toolbar(
- )->toolbar_spacer(
- )->button(
- text = 'load'
- press = client->_event( 'POPUP_LAYOUT_LOAD' )
- type = 'Emphasized'
- )->button(
- text = 'close'
- press = client->_event( 'POPUP_LAYOUT_CONTINUE' )
- type = 'Emphasized' ).
-
- app-next-xml_popup = lo_popup->get_root( )->xml_get( ).
-
- ENDMETHOD.
-
-
- METHOD z2ui5_on_render_pop_setup.
-
- DATA(ro_popup) = z2ui5_cl_xml_view=>factory_popup( ).
-
- ro_popup = ro_popup->dialog( title = 'View Setup' resizable = abap_true
- contentheight = client->_bind( mv_contentheight ) contentwidth = client->_bind( mv_contentwidth ) ).
-
- ro_popup->custom_header(
- )->bar(
- )->content_right(
- )->button( text = `zurücksetzten` press = client->_event( 'BUTTON_INIT' ) ).
-
-
- DATA(lo_tab) = ro_popup->tab_container( ).
-
- lo_tab->tab( text = 'Table' selected = client->_bind( mv_check_table )
- )->simple_form( editable = abap_true
- )->content( 'form'
- )->label( 'zebra mode'
- )->checkbox( client->_bind( ms_layout-check_zebra )
- )->label( 'sticky header'
- )->input( client->_bind( ms_layout-sticky_header )
- )->label( text = `Title`
- )->Input( value = client->_bind( ms_layout-title )
- )->label( 'sel mode'
- )->combobox(
- selectedkey = client->_bind( ms_layout-selmode )
- items = client->_bind_one( VALUE ty_t_combo(
- ( key = 'None' text = 'None' )
- ( key = 'SingleSelect' text = 'SingleSelect' )
- ( key = 'SingleSelectLeft' text = 'SingleSelectLeft' )
- ( key = 'MultiSelect' text = 'MultiSelect' ) ) )
- )->item(
- key = '{KEY}'
- text = '{TEXT}' ).
-
-
-
- lo_tab->tab(
- text = 'Columns'
- selected = client->_bind( mv_check_columns )
- )->table(
- " mode = 'MultiSelect'
- items = client->_bind( ms_layout-t_cols )
- )->columns(
- )->column( )->text( 'Visible' )->get_parent(
- )->column( )->text( 'Name' )->get_parent(
- )->column( )->text( 'Title' )->get_parent(
- )->column( )->text( 'Editable' )->get_parent(
- )->column( )->text( 'Length' )->get_parent(
- )->get_parent(
- )->items( )->column_list_item(
- )->cells(
- )->checkbox( '{VISIBLE}'
- )->text( '{NAME}'
- )->Input( '{TITLE}'
- )->checkbox( '{EDITABLE}'
- )->Input( '{LENGTH}'
- " )->text( '{DESCR}'
- )->get_parent( )->get_parent( )->get_parent( )->get_parent( )->get_parent( ).
-
- DATA(lo_tab_sort) = lo_tab->tab(
- text = 'Sort'
- selected = client->_bind( mv_check_sort ) ).
-
- lo_tab_sort->button( icon = `sap-icon://add` press = client->_event( `SORT_ADD` ) ).
-
- DATA(lo_hbox) = lo_tab_sort->list(
- items = client->_bind( ms_layout-t_sort )
- selectionchange = client->_event( 'SELCHANGE' )
- )->custom_list_item(
- )->hbox( ).
-
- lo_hbox->combobox(
- selectedkey = `{NAME}`
- items = client->_bind( ms_layout-t_cols )
-* ( key = 'BLUE' text = 'green' )
-* ( key = 'GREEN' text = 'blue' )
-* ( key = 'BLACK' text = 'red' )
-* ( key = 'GRAY' text = 'gray' ) ) )
- )->item(
- key = '{NAME}'
- text = '{NAME}'
- )->get_parent(
- )->segmented_button( `{TYPE}`
-)->items(
- )->segmented_button_item(
- key = 'DESCENDING'
- icon = 'sap-icon://sort-descending'
- )->segmented_button_item(
- key = 'ASCENDING'
- icon = 'sap-icon://sort-ascending'
-)->get_parent( )->get_parent(
-)->button( type = `Transparent` icon = 'sap-icon://decline' press = client->_event( val = `SORT_DELETE` data = `${NAME}` ) ).
-* )->get_parent( )->get_parent( )->get_parent(
-
-* )->button(
-* text = 'counter descending'
-* icon = 'sap-icon://sort-descending'
-* press = client->_event( 'SORT_DESCENDING' )
-* )->button(
-* text = 'counter ascending'
-* icon = 'sap-icon://sort-ascending'
-* press = client->_event( 'SORT_ASCENDING' )
-* )->get_parent( ).
-
-
-* lo_tab->tab(
-* text = 'Group'
-* selected = client->_bind( mv_check_group )
-* )->get_parent( )->get_parent( ).
-
- ro_popup->footer( )->overflow_toolbar(
- )->toolbar_spacer(
- )->button(
- text = 'continue'
- press = client->_event( 'POPUP_FILTER_CONTINUE' )
- type = 'Emphasized' ).
-
- app-next-xml_popup = ro_popup->get_root( )->xml_get( ).
-
- ENDMETHOD.
-
-
- METHOD z2ui5_set_data.
-
- "dirty solution
- "todo: map filters to rangetab and make a nice select
-
- IF ms_layout-s_filter-uuid IS INITIAL.
-
- SELECT FROM z2ui5_t_draft
- FIELDS uuid, uuid_prev, timestampl, uname
- INTO CORRESPONDING FIELDS OF TABLE @mt_table
- UP TO 50 ROWS.
-
- ELSE.
-
- SELECT FROM z2ui5_t_draft
- FIELDS uuid, uuid_prev, timestampl, uname
- WHERE uuid = @ms_layout-s_filter-uuid
- INTO CORRESPONDING FIELDS OF TABLE @mt_table
- UP TO 50 ROWS.
-
- ENDIF.
-
- ms_view-t_tab = CORRESPONDING #( mt_table ).
-
- ENDMETHOD.
-
-
- METHOD z2ui5_set_detail.
-
- ms_detail = mt_table[ uuid = client->get( )-event_data ].
-
- SELECT SINGLE FROM z2ui5_t_draft
- FIELDS *
- WHERE uuid = @ms_detail-uuid
- INTO CORRESPONDING FIELDS OF @ms_detail
- .
-
- ENDMETHOD.
-
-
- METHOD z2ui5_set_download_csv.
-
- DATA(lo_struc) = CAST cl_abap_structdescr( cl_abap_structdescr=>describe_by_data( ms_view-t_tab[ 1 ] ) ).
- DATA(lt_components) = lo_struc->get_components( ).
-
- DATA(lv_row) = ``.
- LOOP AT lt_components INTO DATA(lv_name) FROM 2.
- lv_row = lv_row && lv_name-name && `;`.
- ENDLOOP.
- lv_row = lv_row && cl_abap_char_utilities=>cr_lf.
-
-
- LOOP AT ms_view-t_tab REFERENCE INTO DATA(lr_row) FROM 2.
-
- DATA(lv_index) = 2.
- DO.
- ASSIGN COMPONENT lv_index OF STRUCTURE lr_row->* TO FIELD-SYMBOL().
- IF sy-subrc <> 0.
- EXIT.
- ENDIF.
- lv_row = lv_row && .
- lv_index = lv_index + 1.
- lv_row = lv_row && `;`.
- ENDDO.
-
- lv_row = lv_row && cl_abap_char_utilities=>cr_lf.
- ENDLOOP.
-
- DATA lv_bas64enc TYPE string.
-
- lv_bas64enc = encode_base64( lv_row ).
-
- i_view->zz_plain( ``).
-
- mv_check_download_csv = abap_false.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_set_filter.
-
- io_box->search_field(
- value = client->_bind( ms_view-search_val )
- search = client->_event( 'BUTTON_SEARCH' )
- change = client->_event( 'BUTTON_SEARCH' )
- width = `17.5rem`
- id = `SEARCH`
- ).
-
- IF line_exists( ms_layout-t_filter_show[ name = `UUID` selkz = abap_true ] ).
- io_box->input( value = client->_bind( ms_layout-s_filter-uuid ) description = `UUID` ).
- ENDIF.
-
- IF line_exists( ms_layout-t_filter_show[ name = `UUID_PREV` selkz = abap_true ] ).
- io_box->input( value = client->_bind( ms_layout-s_filter-uuid_prev ) description = `UUID_PREV` ).
- ENDIF.
-
- "todo other columns...
-
- DATA(rt_filter) = ms_layout-t_filter_show.
- DELETE rt_filter WHERE selkz = abap_false.
-
- io_box->get_parent( )->hbox( justifycontent = `End`
- )->button( text = `Go` press = client->_event( `BUTTON_START` ) type = `Emphasized`
- )->button( text = `Adapt Filters (` && shift_right( CONV string( lines( rt_filter ) ) ) && `)` press = client->_event( `POPUP_FILTER` )
- ).
-
- ENDMETHOD.
-
-
- METHOD z2ui5_set_search.
-
- ms_view-t_tab = CORRESPONDING #( mt_table ).
- IF ms_view-search_val IS NOT INITIAL.
- LOOP AT ms_view-t_tab REFERENCE INTO DATA(lr_row).
- DATA(lv_row) = ``.
- DATA(lv_index) = 1.
- DO.
- ASSIGN COMPONENT lv_index OF STRUCTURE lr_row->* TO FIELD-SYMBOL().
- IF sy-subrc <> 0.
- EXIT.
- ENDIF.
- lv_row = lv_row && .
- lv_index = lv_index + 1.
- ENDDO.
-
- IF lv_row NS ms_view-search_val.
- DELETE ms_view-t_tab.
- ENDIF.
- ENDLOOP.
- ENDIF.
-
- ENDMETHOD.
-
-
- METHOD z2ui5_set_sort.
-
- "quick and dirty - todo
- "only works for 2 conditions
- TRY.
- IF ms_layout-t_sort IS NOT INITIAL.
- DATA(ls_field1) = VALUE #( ms_layout-t_sort[ 1 ] OPTIONAL ).
- DATA(ls_field2) = VALUE #( ms_layout-t_sort[ 2 ] OPTIONAL ).
-
- SORT ms_view-t_tab BY
- (ls_field1-name) (ls_field1-type)
- (ls_field2-name) (ls_field2-type).
-
- ENDIF.
- CATCH cx_root.
- ENDTRY.
-
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/00/z2ui5_cl_app_demo_49.clas.locals_imp.abap b/src/00/z2ui5_cl_app_demo_49.clas.locals_imp.abap
deleted file mode 100644
index d38f1b36..00000000
--- a/src/00/z2ui5_cl_app_demo_49.clas.locals_imp.abap
+++ /dev/null
@@ -1,747 +0,0 @@
-CLASS lcl_db DEFINITION.
-
-
- PUBLIC SECTION.
-
-
- TYPES ty_t_table TYPE z2ui5_cl_app_demo_13=>ty_t_table.
-
- CLASS-DATA app TYPE REF TO z2ui5_cl_app_demo_13.
- "CLASS-DATA st_table TYPE ty_t_table.
-
- CLASS-METHODS generate_test_data.
-
- CLASS-METHODS get_table_by_json
- IMPORTING
- val TYPE string
- RETURNING
- VALUE(result) TYPE ty_t_table.
-
- CLASS-METHODS get_table_by_xml
- IMPORTING
- val TYPE string
- RETURNING
- VALUE(result) TYPE ty_t_table.
-
- CLASS-METHODS get_table_by_csv
- IMPORTING
- val TYPE string
- RETURNING
- VALUE(result) TYPE ty_t_table.
-
- CLASS-METHODS get_csv_by_table
- IMPORTING
- val TYPE ty_t_table
- RETURNING
- VALUE(result) TYPE string.
-
- CLASS-METHODS get_xml_by_table
- IMPORTING
- val TYPE ty_t_table
- RETURNING
- VALUE(result) TYPE string.
-
- CLASS-METHODS get_json_by_table
- IMPORTING
- val TYPE ty_t_table
- RETURNING
- VALUE(result) TYPE string.
-
- CLASS-METHODS get_fieldlist_by_table
- IMPORTING
- it_table TYPE table
- RETURNING
- VALUE(result) TYPE string_table.
-
- CLASS-METHODS db_save
- IMPORTING
- value TYPE ty_t_table.
-
- CLASS-METHODS db_read
- RETURNING
- VALUE(result) TYPE ty_t_table.
- CLASS-METHODS get_test_data_json
- RETURNING
- VALUE(result) TYPE string.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-
-ENDCLASS.
-
-CLASS lcl_db IMPLEMENTATION.
-
- METHOD generate_test_data.
-
- app->st_db = VALUE #(
- ( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
- ( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
- ( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
- ( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
- ( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
- ( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
- ( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
- ( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
- ).
-
- ENDMETHOD.
-
-
- METHOD get_table_by_json.
-
- DATA lt_tab TYPE ty_t_table.
-
- /ui2/cl_json=>deserialize(
- EXPORTING
- json = val
-* jsonx =
-* pretty_name =
-* assoc_arrays =
-* assoc_arrays_opt =
-* name_mappings =
-* conversion_exits =
-* hex_as_base64 =
- CHANGING
- data = lt_tab
- ).
-
- result = lt_tab.
-
- ENDMETHOD.
-
-
- METHOD get_table_by_xml.
-
- DATA lt_tab TYPE ty_t_table.
-
- CALL TRANSFORMATION id SOURCE xml = val RESULT data = lt_tab.
-
- result = lt_tab.
-
- ENDMETHOD.
-
- METHOD get_table_by_csv.
-
- SPLIT val AT ';' INTO TABLE DATA(lt_cols).
-
- LOOP AT lt_cols INTO DATA(lv_field).
-
- DATA(ls_row) = VALUE z2ui5_cl_app_demo_13=>ty_s_spfli( ).
- DATA(lv_index) = 1.
- DO.
- ASSIGN COMPONENT lv_index OF STRUCTURE ls_row TO FIELD-SYMBOL().
- IF sy-subrc <> 0.
- EXIT.
- ENDIF.
- = lv_field.
- lv_index = lv_index + 1.
- ENDDO.
- INSERT ls_row INTO TABLE result.
-
- ENDLOOP.
-
- ENDMETHOD.
-
- METHOD db_save.
-
- "normally modify database here
-
- "test scenario, therefore write internal table instead
- app->st_db = value.
-
- ENDMETHOD.
-
- METHOD db_read.
-
- "normally read database here
-
- "test scenario, therefore read internal table instead
-
- result = app->st_db.
-
- ENDMETHOD.
-
- METHOD get_csv_by_table.
-
- LOOP AT val INTO DATA(ls_row).
-
- DATA(lv_index) = 1.
- DO.
- ASSIGN COMPONENT lv_index OF STRUCTURE ls_row TO FIELD-SYMBOL().
- IF sy-subrc <> 0.
- EXIT.
- ENDIF.
- lv_index = lv_index + 1.
- result = result && && ';'.
- ENDDO.
- result = result && cl_abap_char_utilities=>cr_lf.
- ENDLOOP.
-
-
- ENDMETHOD.
-
- METHOD get_json_by_table.
-
- result = /ui2/cl_json=>serialize(
- val
-* compress =
-* name =
-* pretty_name =
-* type_descr =
-* assoc_arrays =
-* ts_as_iso8601 =
-* expand_includes =
-* assoc_arrays_opt =
-* numc_as_string =
-* name_mappings =
-* conversion_exits =
- " format_output = abap_true
-* hex_as_base64 =
- ).
-
-
- ENDMETHOD.
-
- METHOD get_xml_by_table.
-
- CALL TRANSFORMATION id SOURCE values = val RESULT XML result.
-
- ENDMETHOD.
-
- METHOD get_fieldlist_by_table.
-
- DATA(lo_tab) = CAST cl_abap_tabledescr( cl_abap_datadescr=>describe_by_data( it_table ) ).
- DATA(lo_struc) = CAST cl_abap_structdescr( lo_tab->get_table_line_type( ) ).
-
- DATA(lt_comp) = lo_struc->get_components( ).
-
- LOOP AT lt_comp INTO DATA(ls_comp).
- INSERT ls_comp-name INTO TABLE result.
- ENDLOOP.
-
- ENDMETHOD.
-
-
- METHOD get_test_data_json.
-
- result = `[` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` },` && |\n| &&
- ` {` && |\n| &&
- ` "CARRID": "DL",` && |\n| &&
- ` "CONNID": 106,` && |\n| &&
- ` "COUNTRYFR": "US",` && |\n| &&
- ` "CITYFROM": "NEW YORK",` && |\n| &&
- ` "AIRPFROM": "JFK",` && |\n| &&
- ` "COUNTRYTO": "DE",` && |\n| &&
- ` "CITYTO": "FRANKFURT",` && |\n| &&
- ` "AIRPTO": "FR"` && |\n| &&
- ` }` && |\n| &&
- `]`.
-
- ENDMETHOD.
-
-ENDCLASS.
-
-CLASS z2ui5_lcl_utility DEFINITION INHERITING FROM cx_no_check.
-
- PUBLIC SECTION.
-
- TYPES:
- BEGIN OF ty_attri,
- name TYPE string,
- type_kind TYPE string,
- type TYPE string,
- bind_type TYPE string,
- data_stringify TYPE string,
- gen_type_kind TYPE string,
- gen_type TYPE string,
- gen_kind TYPE string,
- END OF ty_attri.
- TYPES ty_T_attri TYPE STANDARD TABLE OF ty_attri WITH EMPTY KEY.
-
- DATA:
- BEGIN OF ms_error,
- x_root TYPE REF TO cx_root,
- uuid TYPE string,
- s_msg TYPE LINE OF bapirettab,
- END OF ms_error.
-
- METHODS constructor
- IMPORTING
- val TYPE any OPTIONAL
- previous TYPE REF TO cx_root OPTIONAL
- PREFERRED PARAMETER val.
-
- METHODS get_text REDEFINITION.
-
- CLASS-METHODS raise
- IMPORTING
- v TYPE clike DEFAULT `CX_SY_SUBRC`
- when TYPE abap_bool DEFAULT abap_true
- PREFERRED PARAMETER v.
-
- CLASS-METHODS get_header_val
- IMPORTING
- v TYPE clike
- RETURNING
- VALUE(result) TYPE z2ui5_if_client=>ty_s_name_value-value.
-
- CLASS-METHODS get_param_val
- IMPORTING
- v TYPE clike
- RETURNING
- VALUE(result) TYPE z2ui5_if_client=>ty_s_name_value-value.
-
- CLASS-METHODS get_uuid
- RETURNING
- VALUE(result) TYPE string.
-
- CLASS-METHODS get_uuid_session
- RETURNING
- VALUE(result) TYPE string.
-
- CLASS-METHODS get_user_tech
- RETURNING
- VALUE(result) TYPE string.
-
- CLASS-METHODS get_timestampl
- RETURNING
- VALUE(result) TYPE timestampl.
-
- CLASS-METHODS trans_any_2_json
- IMPORTING
- any TYPE any
- RETURNING
- VALUE(result) TYPE string.
-
- CLASS-METHODS trans_xml_2_object
- IMPORTING
- xml TYPE clike
- EXPORTING
- data TYPE data.
-
- CLASS-METHODS get_t_attri_by_ref
- IMPORTING
- io_app TYPE REF TO object
- RETURNING
- VALUE(result) TYPE ty_t_attri ##NEEDED.
-
- CLASS-METHODS trans_data_2_xml
- IMPORTING
- data TYPE data
- RETURNING
- VALUE(result) TYPE string.
-
- CLASS-METHODS get_abap_2_json
- IMPORTING
- val TYPE any
- RETURNING
- VALUE(result) TYPE string.
-
- CLASS-METHODS check_is_boolean
- IMPORTING
- val TYPE any
- RETURNING
- VALUE(result) TYPE abap_bool.
-
- CLASS-METHODS get_json_boolean
- IMPORTING
- val TYPE any
- RETURNING
- VALUE(result) TYPE string.
-
- CLASS-METHODS trans_ref_tab_2_tab
- IMPORTING
- ir_tab_from TYPE REF TO data
- EXPORTING
- t_result TYPE STANDARD TABLE.
-
- CLASS-METHODS get_trim_upper
- IMPORTING
- val TYPE any
- RETURNING
- VALUE(result) TYPE string.
-
- PROTECTED SECTION.
-
- CLASS-DATA mv_counter TYPE i.
-
- CLASS-METHODS _get_t_attri
- IMPORTING
- io_app TYPE REF TO object
- iv_attri TYPE csequence
- RETURNING
- VALUE(result) TYPE abap_attrdescr_tab.
-
- PRIVATE SECTION.
-
-ENDCLASS.
-
-
-CLASS z2ui5_lcl_utility IMPLEMENTATION.
-
- METHOD get_trim_upper.
- result = CONV #( val ).
- result = to_upper( shift_left( shift_right( result ) ) ).
- ENDMETHOD.
-
-
- METHOD constructor.
-
- super->constructor( previous = previous ).
- CLEAR textid.
-
- TRY.
- ms_error-x_root ?= val.
- CATCH cx_root ##CATCH_ALL.
- ms_error-s_msg-message = val.
- ENDTRY.
-
- TRY.
- ms_error-uuid = get_uuid( ).
- CATCH cx_root ##CATCH_ALL.
- ENDTRY.
- ENDMETHOD.
-
-
- METHOD get_abap_2_json.
-
- IF check_is_boolean( val ).
- result = COND #( WHEN val = abap_true THEN `true` ELSE `false` ).
- ELSE.
- result = |"{ escape( val = val format = cl_abap_format=>e_json_string ) }"|.
- ENDIF.
-
- ENDMETHOD.
-
-
- METHOD check_is_boolean.
-
- TRY.
- DATA(lo_ele) = CAST cl_abap_elemdescr( cl_abap_elemdescr=>describe_by_data( val ) ).
- CASE lo_ele->get_relative_name( ).
- WHEN `ABAP_BOOL` OR `ABAP_BOOLEAN` OR `XSDBOOLEAN`.
- result = abap_true.
- ENDCASE.
- CATCH cx_root.
- ENDTRY.
-
- ENDMETHOD.
-
-
- METHOD get_json_boolean.
-
- IF check_is_boolean( val ).
- result = COND #( WHEN val = abap_true THEN `true` ELSE `false` ).
- ELSE.
- result = val.
- ENDIF.
-
- ENDMETHOD.
-
-
- METHOD get_timestampl.
-
- GET TIME STAMP FIELD result.
-
- ENDMETHOD.
-
-
- METHOD get_user_tech.
-
- result = sy-uname.
-
- ENDMETHOD.
-
-
- METHOD get_uuid.
- TRY.
-
- DATA uuid TYPE c LENGTH 32.
-
- TRY.
- CALL METHOD (`CL_SYSTEM_UUID`)=>if_system_uuid_static~create_uuid_c32
- RECEIVING
- uuid = uuid.
-
- CATCH cx_sy_dyn_call_illegal_class.
-
- DATA(lv_fm) = `GUID_CREATE`.
- CALL FUNCTION lv_fm
- IMPORTING
- ev_guid_32 = uuid.
-
- ENDTRY.
-
- result = uuid.
-
- CATCH cx_root.
- ASSERT 1 = 0.
- ENDTRY.
- ENDMETHOD.
-
-
- METHOD get_uuid_session.
-
- mv_counter = mv_counter + 1.
- result = get_trim_upper( mv_counter ).
-
- ENDMETHOD.
-
-
- METHOD get_header_val.
-
- result = z2ui5_cl_http_handler=>client-t_header[ name = v ]-value.
-
- ENDMETHOD.
-
-
- METHOD get_param_val.
-
- DATA(lt_param) = VALUE z2ui5_if_client=>ty_t_name_value( LET tab = z2ui5_cl_http_handler=>client-t_param IN FOR row IN tab
- ( name = to_upper( row-name ) value = to_upper( row-value ) ) ).
- TRY.
- result = lt_param[ name = get_trim_upper( v ) ]-value.
- CATCH cx_root.
- ENDTRY.
-
- ENDMETHOD.
-
-
- METHOD get_t_attri_by_ref.
-
- DATA(lt_attri) = CAST cl_abap_classdescr( cl_abap_objectdescr=>describe_by_object_ref( io_app ) )->attributes.
-
- DELETE lt_attri WHERE visibility <> cl_abap_classdescr=>public.
-
- LOOP AT lt_attri INTO DATA(ls_attri)
- WHERE type_kind = cl_abap_classdescr=>typekind_struct2
- OR type_kind = cl_abap_classdescr=>typekind_struct1.
-
- DELETE lt_attri INDEX sy-tabix.
-
- INSERT LINES OF _get_t_attri(
- io_app = io_app
- iv_attri = ls_attri-name ) INTO TABLE lt_attri.
-
- ENDLOOP.
-
- LOOP AT lt_attri INTO ls_attri.
-
- DATA(ls_attri2) = VALUE ty_attri( ).
- ls_attri2 = CORRESPONDING #( ls_attri ).
-
- FIELD-SYMBOLS TYPE any.
- UNASSIGN .
- DATA(lv_assign) = `IO_APP->` && ls_attri-name.
- ASSIGN (lv_assign) TO .
- DATA(lo_descr) = cl_abap_datadescr=>describe_by_data( ).
- CASE lo_descr->kind.
- WHEN lo_descr->kind_elem.
- ls_attri2-type = CAST cl_abap_elemdescr( lo_descr )->get_relative_name( ).
- ENDCASE.
-
- APPEND ls_attri2 TO result.
- ENDLOOP.
-
- ENDMETHOD.
-
- METHOD _get_t_attri.
-
- CONSTANTS c_prefix TYPE string VALUE `IO_APP->`.
- FIELD-SYMBOLS TYPE any.
-
- DATA(lv_name) = c_prefix && to_upper( iv_attri ).
- ASSIGN (lv_name) TO .
- raise( when = xsdbool( sy-subrc <> 0 ) ).
-
- DATA(lo_type) = cl_abap_structdescr=>describe_by_data( ).
- DATA(lo_struct) = CAST cl_abap_structdescr( lo_type ).
-
- LOOP AT lo_struct->get_components( ) REFERENCE INTO DATA(lr_comp).
-
- DATA(lv_element) = iv_attri && `-` && lr_comp->name.
-
- IF lr_comp->as_include = abap_true.
- INSERT LINES OF _get_t_attri( io_app = io_app
- iv_attri = lv_element ) INTO TABLE result.
-
- ELSE.
- INSERT VALUE #( name = lv_element
- type_kind = lr_comp->type->type_kind ) INTO TABLE result.
- ENDIF.
-
- ENDLOOP.
- ENDMETHOD.
-
- METHOD trans_any_2_json.
-
- result = /ui2/cl_json=>serialize( any ).
-
- ENDMETHOD.
-
-
- METHOD trans_data_2_xml.
-
- " FIELD-SYMBOLS