bugfixes, bootstrapping (#141)

* bugfixes

* Update abaplint.jsonc

* bugfixes

* bugfix scrolling

* multiinput

* bugfix title

* bugfoxes page

* bugifxes bootstrapping

* abalint fixes
This commit is contained in:
oblomov 2023-04-03 19:29:48 +02:00
parent 98d0749d0c
commit 6e010febb6
10 changed files with 844 additions and 151 deletions

View File

@ -40,7 +40,7 @@
},
"check_ddic": true,
"check_include": true,
"check_subrc": true,
"check_subrc": false,
"check_syntax": true,
"check_text_elements": true,
"check_transformation_exists": true,
@ -225,7 +225,7 @@
},
"superclass_final": true,
"superfluous_value": true,
"sy_modification": true,
"sy_modification": false,
"tabl_enhancement_category": true,
"try_without_catch": true,
"type_form_parameters": true,

View File

@ -10,7 +10,7 @@ ENDCLASS.
CLASS Z2UI5_CL_APP_DEMO_00 IMPLEMENTATION.
CLASS z2ui5_cl_app_demo_00 IMPLEMENTATION.
METHOD z2ui5_if_app~controller.
@ -82,7 +82,7 @@ CLASS Z2UI5_CL_APP_DEMO_00 IMPLEMENTATION.
DATA(form) = page->grid( 'L9 M12 S12'
)->content( 'l'
)->simple_form( 'Applications and Examples'
)->simple_form( 'Demos I'
)->vbox( ).
form->flex_box( class = 'columns'
@ -133,6 +133,12 @@ CLASS Z2UI5_CL_APP_DEMO_00 IMPLEMENTATION.
growfactor = '3'
styleclass = 'sapUiTinyMargin' ).
form = page->grid( 'L9 M12 S12'
)->content( 'l'
)->simple_form( 'Demos II'
)->vbox( ).
form->text( `These demos are based on controls that are not part of openUI5. Please make sure to switch the bootstrapping to UI5 first.` ).
form->flex_box( class = 'columns'
)->button(
text = 'Visualization'

View File

@ -23,6 +23,17 @@ CLASS z2ui5_cl_app_demo_05 DEFINITION PUBLIC.
text_area TYPE string,
END OF screen.
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.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
@ -41,6 +52,13 @@ CLASS Z2UI5_CL_APP_DEMO_05 IMPLEMENTATION.
IF screen-check_initialized = abap_false.
screen-check_initialized = abap_true.
mt_token = value #(
( key = 'VAL1' text = 'value_1' selkz = abap_true visible = abap_true )
( key = 'VAL2' text = 'value_2' selkz = abap_false )
( key = 'VAL3' text = 'value_3' selkz = abap_false visible = abap_true )
( key = 'VAL4' text = 'value_4' selkz = abap_true )
).
screen = VALUE #(
check_initialized = abap_true
check_is_active = abap_true
@ -76,9 +94,8 @@ CLASS Z2UI5_CL_APP_DEMO_05 IMPLEMENTATION.
DATA(page) = client->factory_view(
)->page(
title = 'abap2UI5 - Selection-Screen more Controls'
navbuttonpress = client->_event( 'BACK' )
class = `class="sapUiContentPadding sapUiResponsivePadding--header sapUiResponsivePadding--subHeader sapUiResponsivePadding--content sapUiResponsivePadding--footer"`
title = 'abap2UI5 - Selection-Screen more Controls'
navbuttonpress = client->_event( 'BACK' )
)->header_content(
)->link(
text = 'Source_Code'
@ -86,11 +103,11 @@ CLASS Z2UI5_CL_APP_DEMO_05 IMPLEMENTATION.
)->get_parent( ).
page->generic_tag(
arialabelledby = 'genericTagLabel'
text = 'Project Cost'
design = 'StatusIconHidden'
status = 'Error'
class = 'sapUiSmallMarginBottom'
arialabelledby = 'genericTagLabel'
text = 'Project Cost'
design = 'StatusIconHidden'
status = 'Error'
class = 'sapUiSmallMarginBottom'
)->object_number(
state = 'Error'
emphasized = 'false'
@ -149,7 +166,23 @@ CLASS Z2UI5_CL_APP_DEMO_05 IMPLEMENTATION.
showtickmarks = abap_true
labelinterval = '2'
width = '80%'
class = 'sapUiTinyMargin' ).
class = 'sapUiTinyMargin'
)->label( 'MultiInput'
)->multi_input(
tokens = client->_bind( mt_token )
showclearicon = abap_true
showvaluehelp = abap_true
suggestionitems = client->_bind_one_way( mt_token )
)->item(
key = `{KEY}`
text = `{TEXT}`
)->tokens(
)->token(
key = `{KEY}`
text = `{TEXT}`
selected = `{SELKZ}`
visible = `{VISIBLE}`
).
grid->simple_form( 'Text Area' )->content( 'f'
)->label( 'text area'

View File

@ -0,0 +1,308 @@
CLASS z2ui5_cl_app_demo_17 DEFINITION PUBLIC.
PUBLIC SECTION.
INTERFACES z2ui5_if_app.
DATA check_initialized TYPE abap_bool.
METHODS get_avatar
RETURNING
VALUE(result) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_app_demo_17 IMPLEMENTATION.
METHOD z2ui5_if_app~controller.
CASE client->get( )-lifecycle_method.
WHEN client->cs-lifecycle_method-on_event.
IF check_initialized = abap_false.
check_initialized = abap_true.
RETURN.
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( )-id_prev_app_stack ).
ENDCASE.
WHEN client->cs-lifecycle_method-on_rendering.
DATA(view) = client->factory_view( ).
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 = 'Denise Smith' wrapping = abap_true ).
header_title->snapped_heading(
)->flex_box( alignitems = `Center`
)->avatar( src = get_avatar( ) class = 'sapUiTinyMarginEnd'
)->title( text = 'Denise Smith' ).
header_title->expanded_content( )->text( `Senior UI Developer` ).
header_title->snapped_Content( )->text( `Senior UI Developer` ).
header_title->snapped_Title_On_Mobile( )->title( `Senior UI Developer` ).
header_title->actions( )->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 = 'Toggle Footer'
press = client->_event( 'TOGGLE_FOOTER' )
).
DATA(header_content) = page->header_Content( ns = 'uxap' ).
header_content->flex_box(
)->link( text = '+33 6 4512 5158'
)->link( text = 'DeniseSmith@sap.com'
)->label( text = 'Hello! I am Denise and I use UxAP'
)->label( text = 'San Jose, USA'
)->image( src = get_avatar( )
).
ENDCASE.
ENDMETHOD.
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.

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_APP_DEMO_17</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>layout 1</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -93,7 +93,7 @@ CLASS Z2UI5_CL_APP_DEMO_22 IMPLEMENTATION.
WHEN client->cs-lifecycle_method-on_rendering.
DATA(view) = client->factory_view( ).
DATA(page) = view->page( id = 'id_page' title = 'abap2ui5 - Scrolling and Cursor' navbuttonpress = client->_event( 'BACK' ) ).
DATA(page) = view->page( id = 'id_page' title = 'abap2ui5 - Scrolling and Cursor (use the browser Chrome to avoid incompatibilities)' navbuttonpress = client->_event( 'BACK' ) ).
page->header_content( )->link( text = 'Source_Code' href = client->get( )-s_request-url_source_code ).

View File

@ -19,7 +19,7 @@ CLASS z2ui5_cl_http_handler DEFINITION
CLASS-METHODS main_index_html
IMPORTING
library_path TYPE clike DEFAULT `https://ui5.sap.com/resources/sap-ui-core.js`
library_path TYPE clike DEFAULT `https://sdk.openui5.org/resources/sap-ui-core.js`
theme TYPE clike DEFAULT `sap_horizon`
title TYPE clike DEFAULT `abap2UI5`
RETURNING
@ -38,9 +38,52 @@ ENDCLASS.
CLASS z2ui5_cl_http_handler IMPLEMENTATION.
METHOD main_roundtrip.
DATA(lo_runtime) = z2ui5_lcl_system_runtime=>request_begin( ).
DO.
TRY.
DATA(li_client) = lo_runtime->app_before_event( ).
ROLLBACK WORK.
CAST z2ui5_if_app( lo_runtime->ms_db-o_app )->controller( li_client ).
ROLLBACK WORK.
CATCH cx_root INTO DATA(x).
lo_runtime = lo_runtime->set_app_system_error( x ).
CONTINUE.
ENDTRY.
IF lo_runtime->ms_next-s_nav_app_call_new IS NOT INITIAL.
lo_runtime = lo_runtime->set_app_call_new( ).
CONTINUE.
ENDIF.
IF lo_runtime->ms_next-nav_app_leave_to_id IS NOT INITIAL.
lo_runtime = lo_runtime->set_app_leave_to_id( ).
CONTINUE.
ENDIF.
TRY.
li_client = lo_runtime->app_before_rendering( ).
ROLLBACK WORK.
CAST z2ui5_if_app( lo_runtime->ms_db-o_app )->controller( li_client ).
ROLLBACK WORK.
result = lo_runtime->request_end( ).
CATCH cx_root INTO x.
lo_runtime = lo_runtime->set_app_system_error( x ).
CONTINUE.
ENDTRY.
RETURN.
ENDDO.
ENDMETHOD.
METHOD main_index_html.
"`https://ui5.sap.com/resources/sap-ui-core.js`
client-t_param = VALUE #( LET tab = client-t_param IN FOR row IN tab
( name = to_upper( row-name ) value = to_upper( row-value ) ) ).
@ -80,7 +123,7 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
` sap.ui.define(["sap/ui/core/mvc/Controller", "sap/ui/model/odata/v2/ODataModel", "sap/ui/model/json/JSONModel", "sap/m/MessageBox", "sap/ui/core/Fragment"], function (Controller, ODataModel, JSONModel, MessageBox, Fragment) {` && |\n| &&
` "use strict";` && |\n| &&
` return Controller.extend("MyController", {` && |\n| &&
` return Controller.extend("z2ui5_controller", {` && |\n| &&
|\n| &&
` onAfterRendering: function () {` && |\n| &&
` var oView = this.getView();` && |\n| &&
@ -251,7 +294,7 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
` });` && |\n| &&
` });` && |\n| &&
` var oView = sap.ui.xmlview({` && |\n| &&
` viewContent: "<mvc:View controllerName='MyController' xmlns:mvc='sap.ui.core.mvc' />"` && |\n| &&
` viewContent: "<mvc:View controllerName='z2ui5_controller' xmlns:mvc='sap.ui.core.mvc' />"` && |\n| &&
` });` && |\n| &&
` sap.z2ui5 = {};` && |\n| &&
` oView.getController().Roundtrip();` && |\n| &&
@ -383,47 +426,4 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
`</html>`.
ENDMETHOD.
METHOD main_roundtrip.
DATA(lo_runtime) = z2ui5_lcl_system_runtime=>request_begin( ).
DO.
TRY.
DATA(li_client) = lo_runtime->app_before_event( ).
ROLLBACK WORK.
CAST z2ui5_if_app( lo_runtime->ms_db-o_app )->controller( li_client ).
ROLLBACK WORK.
CATCH cx_root INTO DATA(x).
lo_runtime = lo_runtime->set_app_system_error( x ).
CONTINUE.
ENDTRY.
IF lo_runtime->ms_next-s_nav_app_call_new IS NOT INITIAL.
lo_runtime = lo_runtime->set_app_call_new( ).
CONTINUE.
ENDIF.
IF lo_runtime->ms_next-nav_app_leave_to_id IS NOT INITIAL.
lo_runtime = lo_runtime->set_app_leave_to_id( ).
CONTINUE.
ENDIF.
TRY.
li_client = lo_runtime->app_before_rendering( ).
ROLLBACK WORK.
CAST z2ui5_if_app( lo_runtime->ms_db-o_app )->controller( li_client ).
ROLLBACK WORK.
result = lo_runtime->request_end( ).
CATCH cx_root INTO x.
lo_runtime = lo_runtime->set_app_system_error( x ).
CONTINUE.
ENDTRY.
RETURN.
ENDDO.
ENDMETHOD.
ENDCLASS.

View File

@ -10,7 +10,7 @@ CLASS z2ui5_lcl_utility DEFINITION INHERITING FROM cx_no_check.
data_stringify TYPE string,
END OF ty_attri.
types ty_T_attri TYPE STANDARD TABLE OF ty_attri WITH EMPTY KEY.
TYPES ty_T_attri TYPE STANDARD TABLE OF ty_attri WITH EMPTY KEY.
TYPES ty_tt_string TYPE STANDARD TABLE OF string_table WITH EMPTY KEY.
@ -1058,6 +1058,10 @@ CLASS z2ui5_lcl_system_runtime DEFINITION.
RETURNING
VALUE(result) TYPE REF TO z2ui5_lcl_system_runtime.
METHODS request_end_get_view
RETURNING
VALUE(rr_view) TYPE REF TO s_view.
PRIVATE SECTION.
@ -1093,11 +1097,11 @@ CLASS z2ui5_lcl_if_view IMPLEMENTATION.
METHOD xml_get_begin.
result = COND #( WHEN check_popup_active = abap_true THEN `<core:FragmentDefinition` ELSE `<mvc:View controllerName="MyController"` ).
result = COND #( WHEN check_popup_active = abap_true THEN `<core:FragmentDefinition` ELSE `<mvc:View controllerName="z2ui5_controller"` ).
result = result && ` displayBlock="true" height="100%" xmlns:core="sap.ui.core" xmlns:l="sap.ui.layout" xmlns:html="http://www.w3.org/1999/xhtml"` &&
` xmlns:f="sap.ui.layout.form" xmlns:mvc="sap.ui.core.mvc" xmlns:editor="sap.ui.codeeditor" xmlns:ui="sap.ui.table" ` &&
`xmlns="sap.m" xmlns:mchart="sap.suite.ui.microchart" xmlns:z2ui5="z2ui5" xmlns:webc="sap.ui.webc.main" xmlns:text="sap.ui.richtexteditor" > `.
`xmlns="sap.m" xmlns:uxap="sap.uxap" xmlns:mchart="sap.suite.ui.microchart" xmlns:z2ui5="z2ui5" xmlns:webc="sap.ui.webc.main" xmlns:text="sap.ui.richtexteditor" > `.
result = result && COND #( WHEN cs_config-letterboxing = abap_true AND check_popup_active = abap_false THEN `<Shell>` ).
@ -1198,6 +1202,7 @@ CLASS z2ui5_lcl_if_view IMPLEMENTATION.
( n = `enabled` v = _=>get_json_boolean( enabled ) )
( n = `icon` v = icon )
( n = `type` v = type )
( n = `tooltip` v = tooltip )
) ).
ENDMETHOD.
@ -1381,7 +1386,7 @@ CLASS z2ui5_lcl_if_view IMPLEMENTATION.
result = _generic(
name = `HBox`
t_prop = VALUE #(
( n = `class` v = `sapUiSmallMargin` )
( n = `class` v = class )
) ).
ENDMETHOD.
@ -1393,8 +1398,7 @@ CLASS z2ui5_lcl_if_view IMPLEMENTATION.
ns = `f`
t_prop = VALUE #(
( n = `title` v = title )
( n = `editable` v = `true` )
( n = `layout` v = `ResponsiveGridLayout` )
( n = `layout` v = layout )
) ).
ENDMETHOD.
@ -1413,8 +1417,9 @@ CLASS z2ui5_lcl_if_view IMPLEMENTATION.
_generic(
name = `Title`
t_prop = VALUE #(
( n = `text` v = title ) )
).
( n = `text` v = text )
( n = `wrapping` v = _=>get_json_boolean( wrapping ) )
) ).
ENDMETHOD.
@ -1532,6 +1537,17 @@ CLASS z2ui5_lcl_if_view IMPLEMENTATION.
ENDMETHOD.
METHOD z2ui5_if_view~image.
result = me.
_generic(
name = `Image`
t_prop = VALUE #(
( n = `src` v = src )
) ).
ENDMETHOD.
METHOD z2ui5_if_view~link.
result = me.
@ -1793,7 +1809,10 @@ CLASS z2ui5_lcl_if_view IMPLEMENTATION.
METHOD z2ui5_if_view~header_content.
result = _generic( `headerContent` ).
result = _generic(
name = `headerContent`
ns = ns
).
ENDMETHOD.
@ -1946,7 +1965,6 @@ CLASS z2ui5_lcl_if_view IMPLEMENTATION.
METHOD z2ui5_if_view~flex_box.
result = _generic(
name = `FlexBox`
t_prop = VALUE #(
@ -1955,6 +1973,7 @@ CLASS z2ui5_lcl_if_view IMPLEMENTATION.
( n = `width` v = width )
( n = `height` v = height )
( n = `alignItems` v = alignitems )
( n = `fitContainer` v = _=>get_json_boolean( fitContainer ) )
( n = `justifyContent` v = justifycontent )
) ).
@ -2172,6 +2191,198 @@ CLASS z2ui5_lcl_if_view IMPLEMENTATION.
ENDMETHOD.
METHOD z2ui5_if_view~multi_input.
result = _generic(
name = `MultiInput`
t_prop = VALUE #(
( n = `tokens` v = tokens )
( n = `showClearIcon` v = _=>get_json_boolean( showclearicon ) )
( n = `showValueHelp` v = _=>get_json_boolean( showvaluehelp ) )
( n = `suggestionItems` v = suggestionitems )
( n = `width` v = width )
) ).
ENDMETHOD.
METHOD z2ui5_if_view~token.
result = me.
_generic(
name = `Token`
t_prop = VALUE #(
( n = `key` v = key )
( n = `text` v = text )
( n = `selected` v = selected )
( n = `visible` v = visible )
) ).
ENDMETHOD.
METHOD z2ui5_if_view~tokens.
result = _generic( `tokens` ).
ENDMETHOD.
METHOD z2ui5_if_view~actions.
result = _generic(
name = `actions`
ns = `uxap`
).
ENDMETHOD.
METHOD z2ui5_if_view~avatar.
result = me.
_generic(
name = `Avatar`
t_prop = VALUE #(
( n = `src` v = src )
( n = `class` v = class )
) ).
ENDMETHOD.
METHOD z2ui5_if_view~blocks.
result = _generic(
name = `blocks`
ns = `uxap`
).
ENDMETHOD.
METHOD z2ui5_if_view~expanded_heading.
result = _generic(
name = `expandedHeading`
ns = `uxap`
).
ENDMETHOD.
METHOD z2ui5_if_view~heading.
result = me.
result = _generic(
name = `heading`
ns = `uxap`
).
ENDMETHOD.
METHOD z2ui5_if_view~object_page_dyn_header_title.
result = _generic(
name = `ObjectPageDynamicHeaderTitle`
ns = `uxap`
).
ENDMETHOD.
METHOD z2ui5_if_view~object_page_layout.
result = _generic(
name = `ObjectPageLayout`
ns = `uxap`
t_prop = VALUE #(
( n = `showTitleInHeaderContent` v = _=>get_json_boolean( showTitleInHeaderContent ) )
( n = `showEditHeaderButton` v = _=>get_json_boolean( showEditHeaderButton ) )
( n = `editHeaderButtonPress` v = editHeaderButtonPress )
( n = `upperCaseAnchorBar` v = upperCaseAnchorBar )
) ).
ENDMETHOD.
METHOD z2ui5_if_view~object_page_section.
result = _generic(
name = `ObjectPageSection`
ns = `uxap`
t_prop = VALUE #(
( n = `titleUppercase` v = titleUppercase )
( n = `title` v = title )
) ).
ENDMETHOD.
METHOD z2ui5_if_view~object_page_sub_section.
result = _generic(
name = `ObjectPageSubSection`
ns = `uxap`
).
ENDMETHOD.
METHOD z2ui5_if_view~sections.
result = _generic(
name = `sections`
ns = `uxap`
).
ENDMETHOD.
METHOD z2ui5_if_view~snapped_heading.
result = me.
result = _generic(
name = `snappedHeading`
ns = `uxap`
).
ENDMETHOD.
METHOD z2ui5_if_view~sub_sections.
result = me.
result = _generic(
name = `subSections`
ns = `uxap`
).
ENDMETHOD.
METHOD z2ui5_if_view~header_title.
result = _generic(
name = `headerTitle`
ns = `uxap`
).
ENDMETHOD.
METHOD z2ui5_if_view~expanded_content.
result = _generic(
name = `expandedContent`
ns = `uxap`
).
ENDMETHOD.
METHOD z2ui5_if_view~snapped_content.
result = _generic(
name = `snappedContent`
ns = `uxap`
).
ENDMETHOD.
METHOD z2ui5_if_view~snapped_title_on_mobile.
result = _generic(
name = `snappedTitleOnMobile`
ns = `uxap`
).
ENDMETHOD.
ENDCLASS.
CLASS z2ui5_lcl_system_app DEFINITION.
@ -2497,28 +2708,7 @@ CLASS z2ui5_lcl_system_runtime IMPLEMENTATION.
METHOD request_end.
_=>raise( when = xsdbool( lines( ms_next-t_view ) = 0 ) ).
IF ms_next-view IS NOT INITIAL.
IF ms_next-check_set_prev_view = abap_true.
_=>raise( `New view_show called and set_prev_view active - both not possible` ).
ENDIF.
TRY.
DATA(lr_view) = REF #( ms_next-t_view[ name = ms_next-view ] ).
CATCH cx_root.
_=>raise( `View with the name ` && ms_next-view && ` not found - check the rendering` ).
ENDTRY.
ELSEIF ms_actual-view_active IS NOT INITIAL AND ms_next-view_popup IS INITIAL.
TRY.
lr_view = REF #( ms_next-t_view[ name = ms_actual-view_active ] ).
ms_next-view = ms_actual-view_active.
CATCH cx_root.
_=>raise( `View with the name ` && ms_actual-view_active && ` not found - check the rendering` ).
ENDTRY.
ELSEIF ms_next-view_popup IS INITIAL.
lr_view = REF #( ms_next-t_view[ 1 ] ).
ms_next-view = lr_view->name.
ENDIF.
DATA(lr_view) = request_end_get_view( ).
DATA(lo_ui5_model) = z2ui5_lcl_utility_tree_json=>factory( ).
@ -2812,6 +3002,33 @@ CLASS z2ui5_lcl_system_runtime IMPLEMENTATION.
ENDMETHOD.
METHOD request_end_get_view.
_=>raise( when = xsdbool( lines( ms_next-t_view ) = 0 ) ).
IF ms_next-view IS NOT INITIAL.
IF ms_next-check_set_prev_view = abap_true.
_=>raise( `New view_show called and set_prev_view active - both not possible` ).
ENDIF.
TRY.
rr_view = REF #( ms_next-t_view[ name = ms_next-view ] ).
CATCH cx_root.
_=>raise( `View with the name ` && ms_next-view && ` not found - check the rendering` ).
ENDTRY.
ELSEIF ms_actual-view_active IS NOT INITIAL AND ms_next-view_popup IS INITIAL.
TRY.
rr_view = REF #( ms_next-t_view[ name = ms_actual-view_active ] ).
ms_next-view = ms_actual-view_active.
CATCH cx_root.
_=>raise( `View with the name ` && ms_actual-view_active && ` not found - check the rendering` ).
ENDTRY.
ELSEIF ms_next-view_popup IS INITIAL.
rr_view = REF #( ms_next-t_view[ 1 ] ).
ms_next-view = rr_view->name.
ENDIF.
ENDMETHOD.
ENDCLASS.
CLASS z2ui5_lcl_if_client IMPLEMENTATION.

View File

@ -45,7 +45,6 @@ INTERFACE z2ui5_if_client
END OF s_request,
END OF ty_s_get.
METHODS set
IMPORTING
event TYPE clike OPTIONAL
@ -114,7 +113,6 @@ INTERFACE z2ui5_if_client
RETURNING
VALUE(result) TYPE string.
METHODS _event
IMPORTING
val TYPE clike

View File

@ -1,6 +1,146 @@
INTERFACE z2ui5_if_view
PUBLIC .
METHODS horizontal_layout
IMPORTING
class TYPE clike OPTIONAL
width TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS flex_box
IMPORTING
class TYPE clike OPTIONAL
rendertype TYPE clike OPTIONAL
width TYPE clike OPTIONAL
fitContainer TYPE clike OPTIONAL
height TYPE clike OPTIONAL
alignitems TYPE clike OPTIONAL
justifycontent TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS list_item
IMPORTING
text TYPE clike OPTIONAL
additionaltext TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS table
IMPORTING
items TYPE clike OPTIONAL
growing TYPE clike OPTIONAL
growingthreshold TYPE clike OPTIONAL
growingscrolltoload TYPE clike OPTIONAL
headertext TYPE clike OPTIONAL
sticky TYPE clike OPTIONAL
mode TYPE clike OPTIONAL
width TYPE clike OPTIONAL
PREFERRED PARAMETER items
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS message_strip
IMPORTING
text TYPE clike OPTIONAL
type TYPE clike OPTIONAL
showicon TYPE clike OPTIONAL
class TYPE clike OPTIONAL
PREFERRED PARAMETER text
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS footer
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS message_page
IMPORTING
show_header TYPE clike OPTIONAL
text TYPE clike OPTIONAL
enableformattedtext TYPE clike OPTIONAL
description TYPE clike OPTIONAL
icon TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS object_page_layout
IMPORTING
showTitleInHeaderContent TYPE clike OPTIONAL
showEditHeaderButton TYPE clike OPTIONAL
editHeaderButtonPress TYPE clike OPTIONAL
upperCaseAnchorBar TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS Object_Page_Dyn_Header_Title
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS expanded_heading
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS snapped_heading
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS expanded_content
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS snapped_content
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS snapped_Title_On_Mobile
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS actions
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS avatar
IMPORTING
src TYPE clike OPTIONAL
class TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS header_title
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS sections
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS Object_Page_Section
IMPORTING
titleUppercase TYPE clike OPTIONAL
title TYPE clike OPTIONAL
importance TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS heading
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS sub_sections
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS Object_page_Sub_Section
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS blocks
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS layout_data
IMPORTING
ns TYPE clike OPTIONAL
@ -37,30 +177,28 @@ INTERFACE z2ui5_if_view
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS horizontal_layout
METHODS multi_input
IMPORTING
class TYPE clike OPTIONAL
width TYPE clike OPTIONAL
showclearicon TYPE clike OPTIONAL
showValueHelp TYPE clike OPTIONAL
suggestionitems TYPE clike OPTIONAL
width TYPE clike OPTIONAL
tokens TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS tokens
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS flex_box
METHODS token
IMPORTING
class TYPE clike OPTIONAL
rendertype TYPE clike OPTIONAL
width TYPE clike OPTIONAL
height TYPE clike OPTIONAL
alignitems TYPE clike OPTIONAL
justifycontent TYPE clike OPTIONAL
key TYPE clike OPTIONAL
text TYPE clike OPTIONAL
selected TYPE clike OPTIONAL
visible TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS list_item
IMPORTING
text TYPE clike OPTIONAL
additionaltext TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS input
IMPORTING
@ -82,34 +220,6 @@ INTERFACE z2ui5_if_view
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS message_strip
IMPORTING
text TYPE clike OPTIONAL
type TYPE clike OPTIONAL
showicon TYPE clike OPTIONAL
class TYPE clike OPTIONAL
PREFERRED PARAMETER text
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS table
IMPORTING
items TYPE clike OPTIONAL
growing TYPE clike OPTIONAL
growingthreshold TYPE clike OPTIONAL
growingscrolltoload TYPE clike OPTIONAL
headertext TYPE clike OPTIONAL
sticky TYPE clike OPTIONAL
mode TYPE clike OPTIONAL
width TYPE clike OPTIONAL
PREFERRED PARAMETER items
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS footer
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS dialog
IMPORTING
title TYPE clike OPTIONAL
@ -126,16 +236,6 @@ INTERFACE z2ui5_if_view
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS message_page
IMPORTING
show_header TYPE clike OPTIONAL
text TYPE clike OPTIONAL
enableformattedtext TYPE clike OPTIONAL
description TYPE clike OPTIONAL
icon TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS get_parent
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
@ -259,6 +359,8 @@ INTERFACE z2ui5_if_view
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS header_content
IMPORTING
ns TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
@ -319,6 +421,8 @@ INTERFACE z2ui5_if_view
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS hbox
IMPORTING
class TYPE clike optional
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
@ -336,6 +440,8 @@ INTERFACE z2ui5_if_view
METHODS simple_form
IMPORTING
title TYPE clike OPTIONAL
layout TYPE clike DEFAULT `ResponsiveGridLayout`
PREFERRED PARAMETER title
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
@ -353,7 +459,9 @@ INTERFACE z2ui5_if_view
METHODS title
IMPORTING
title TYPE clike OPTIONAL
text TYPE clike OPTIONAL
wrapping TYPE clike OPTIONAL
PREFERRED PARAMETER text
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
@ -379,6 +487,7 @@ INTERFACE z2ui5_if_view
type TYPE clike OPTIONAL
enabled TYPE clike OPTIONAL
press TYPE clike OPTIONAL
tooltip TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
@ -392,6 +501,12 @@ INTERFACE z2ui5_if_view
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS image
IMPORTING
src TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view.
METHODS date_picker
IMPORTING
value TYPE clike OPTIONAL