[DCOS_OSS-4222] Unhandled HTTP Errors from Cosmos are not reflected in the UI keeping it in the loading state Created: 01/Oct/18  Updated: 11/Dec/18  Resolved: 08/Oct/18

Status: Resolved
Project: DC/OS
Component/s: dcos-ui
Affects Version/s: None
Fix Version/s: DC/OS 1.12

Type: Bug Priority: Blocker
Reporter: Ken Sipe (Inactive) Assignee: Dima Rozhkov (Inactive)
Resolution: Done  
Labels: automation:frontend-on-call-notification, flag:added-after-sprint-start, post-ga
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Issue Links:
Relates
relates to DCOS_OSS-3679 Marathon task JSON no longer available Resolved
Sub-Tasks:
Key
Summary
Type
Status
Assignee
DCOS_OSS-4230 Check which versions are affected Subtask Resolved Dima Rozhkov  
DCOS_OSS-4273 cherry-pick to master Subtask Resolved Dima Rozhkov  
Team: DELETE Frontend (Mesosphere) Team
Watchers:
Automation Bot, Dima Rozhkov (Inactive), Ken Sipe (Inactive), Philipp Hinrichsen (Inactive)
Sprint: RI-6/1: DC/OS UI Sprint 30
Story Points: 1

 Description   
  1. Create an app with the following definition.
  2. Try editing it
  3. Notice Form isn't loading
  4. Notice Error 400 Status in the Networking console
 {
"id": "/mom-1",
"backoffFactor": 1.15,
"backoffSeconds": 1,
"cmd": "unset MESOS_NATIVE_JAVA_LIBRARY && unset MESOS_NATIVE_LIBRARY && LIBPROCESS_PORT=$PORT1 && ./bin/start --checkpoint --decline_offer_duration \"120000\" --default_accepted_resource_roles \"*\" --enable_features \"vips,task_killing,external_volumes\" --event_stream_max_outstanding_messages \"1024\" --executor \"//cmd\" --failover_timeout \"604800\" --framework_name mom-1 --ha --hostname $LIBPROCESS_IP --http_compression --http_port $PORT0 --http_realm \"Mesosphere\" --launch_token_refresh_interval \"30000\" --launch_tokens \"100\" --leader_proxy_connection_timeout \"5000\" --leader_proxy_read_timeout \"10000\" --local_port_max \"20000\" --local_port_min \"10000\" --master \"zk://master.mesos:2181/mesos\" --max_instances_per_offer \"100\" --disable_mesos_authentication --mesos_authentication_principal mom-1 --mesos_bridge_name \"mesos-bridge\" --mesos_leader_ui_url \"/mesos\" --mesos_role mom-1 --min_revive_offers_interval \"5000\" --offer_matching_timeout \"3000\" --on_elected_prepare_timeout \"180000\" --reconciliation_initial_delay \"15000\" --reconciliation_interval \"600000\" --revive_offers_repetitions \"3\" --scale_apps_initial_delay \"15000\" --scale_apps_interval \"300000\" --store_cache --task_launch_confirm_timeout \"1800000\" --task_launch_timeout \"1800000\" --task_lost_expunge_initial_delay \"300000\" --task_lost_expunge_interval \"30000\" --task_reservation_timeout \"900000\" --zk zk://master.mesos:2181/universe/mom-1 --zk_compression --zk_compression_threshold \"65536\" --zk_connection_timeout \"10000\" --zk_max_node_size \"1024000\" --zk_max_versions \"50\" --zk_session_timeout \"10000\" --zk_timeout \"10000\" --metrics_statsd --metrics_statsd_host \"$STATSD_UDP_HOST\" --metrics_statsd_port \"$STATSD_UDP_PORT\"",
"constraints": [
[
"hostname",
"UNIQUE"
]
],
"container": {
"type": "MESOS",
"volumes": [],
"docker": {
"image": "mesosphere/marathon:v1.7.166",
"forcePullImage": false,
"privileged": false,
"parameters": []
}
},
"cpus": 4,
"disk": 0,
"env": {
"JVM_OPTS": "-Xms256m -Xmx4096m "
},
"healthChecks": [
{
"gracePeriodSeconds": 1800,
"ignoreHttp1xx": false,
"intervalSeconds": 10,
"maxConsecutiveFailures": 3,
"portIndex": 0,
"timeoutSeconds": 5,
"delaySeconds": 15,
"protocol": "HTTP",
"path": "/ping"
}
],
"instances": 1,
"labels": {
"DCOS_PACKAGE_OPTIONS": "eyJzZXJ2aWNlIjp7Im5hbWUiOiJwbGF5Z3JvdW5kIiwiY3B1cyI6MiwibWVtIjoxNTM2LCJpbnN0YW5jZXMiOjEsInVyaXMiOltdfSwianZtIjp7ImhlYXAtbWluIjoyNTYsImhlYXAtbWF4Ijo3Njh9LCJtYXJhdGhvbiI6eyJjaGVja3BvaW50Ijp0cnVlLCJkZWNsaW5lLW9mZmVyLWR1cmF0aW9uIjoxMjAwMDAsImRlZmF1bHQtYWNjZXB0ZWQtcmVzb3VyY2Utcm9sZXMiOiIqIiwiZGlzYWJsZS1odHRwIjpmYWxzZSwiZW5hYmxlLWZlYXR1cmVzIjoidmlwcyx0YXNrX2tpbGxpbmciLCJldmVudC1zdHJlYW0tbWF4LW91dHN0YW5kaW5nLW1lc3NhZ2VzIjoxMDI0LCJleGVjdXRvciI6Ii8vY21kIiwiZmFpbG92ZXItdGltZW91dCI6NjA0ODAwLCJoYSI6dHJ1ZSwiaHR0cC1jb21wcmVzc2lvbiI6dHJ1ZSwiaHR0cC1yZWFsbSI6Ik1lc29zcGhlcmUiLCJsYXVuY2gtdG9rZW4tcmVmcmVzaC1pbnRlcnZhbCI6MzAwMDAsImxhdW5jaC10b2tlbnMiOjEwMCwibGVhZGVyLXByb3h5LWNvbm5lY3Rpb24tdGltZW91dCI6NTAwMCwibGVhZGVyLXByb3h5LXJlYWQtdGltZW91dCI6MTAwMDAsImxlYWRlci1wcm94eS1zc2wtaWdub3JlLWhvc3RuYW1lIjpmYWxzZSwibG9jYWwtcG9ydC1tYXgiOjIwMDAwLCJsb2NhbC1wb3J0LW1pbiI6MTAwMDAsIm1hc3RlciI6InprOi8vbWFzdGVyLm1lc29zOjIxODEvbWVzb3MiLCJtYXgtaW5zdGFuY2VzLXBlci1vZmZlciI6MSwibWVzb3MtYXV0aGVudGljYXRpb24iOmZhbHNlLCJtZXNvcy1icmlkZ2UtbmFtZSI6Im1lc29zLWJyaWRnZSIsIm1lc29zLWxlYWRlci11aS11cmwiOiIvbWVzb3MiLCJtZXRyaWNzIjpmYWxzZSwibWluLXJldml2ZS1vZmZlcnMtaW50ZXJ2YWwiOjUwMDAsIm9mZmVyLW1hdGNoaW5nLXRpbWVvdXQiOjMwMDAsIm9uLWVsZWN0ZWQtcHJlcGFyZS10aW1lb3V0IjoxODAwMDAsInJlY29uY2lsaWF0aW9uLWluaXRpYWwtZGVsYXkiOjE1MDAwLCJyZWNvbmNpbGlhdGlvbi1pbnRlcnZhbCI6NjAwMDAwLCJyZXZpdmUtb2ZmZXJzLXJlcGV0aXRpb25zIjozLCJzY2FsZS1hcHBzLWluaXRpYWwtZGVsYXkiOjE1MDAwLCJzY2FsZS1hcHBzLWludGVydmFsIjozMDAwMDAsInN0b3JlLWNhY2hlIjp0cnVlLCJ0YXNrLWxhdW5jaC1jb25maXJtLXRpbWVvdXQiOjMwMDAwMCwidGFzay1sYXVuY2gtdGltZW91dCI6MzAwMDAwLCJ0YXNrLWxvc3QtZXhwdW5nZS1pbml0aWFsLWRlbGF5IjozMDAwMDAsInRhc2stbG9zdC1leHB1bmdlLWludGVydmFsIjozMDAwMCwidGFzay1yZXNlcnZhdGlvbi10aW1lb3V0IjoyMDAwMCwiemstY29tcHJlc3Npb24iOnRydWUsInprLWNvbXByZXNzaW9uLXRocmVzaG9sZCI6NjU1MzYsInprLWNvbm5lY3Rpb24tdGltZW91dCI6MTAwMDAsInprLW1heC1ub2RlLXNpemUiOjEwMjQwMDAsInprLW1heC12ZXJzaW9ucyI6NTAsInprLXNlc3Npb24tdGltZW91dCI6MTAwMDAsInprLXRpbWVvdXQiOjEwMDAwfX0=",
"DCOS_SERVICE_SCHEME": "http",
"DCOS_PACKAGE_SOURCE": "https://universe.mesosphere.com/repo",
"DCOS_PACKAGE_METADATA": "eyJwYWNrYWdpbmdWZXJzaW9uIjoiMy4wIiwibmFtZSI6Im1hcmF0aG9uIiwidmVyc2lvbiI6IjEuNS44IiwibWFpbnRhaW5lciI6InN1cHBvcnRAbWVzb3NwaGVyZS5pbyIsImRlc2NyaXB0aW9uIjoiQSBjb250YWluZXIgb3JjaGVzdHJhdGlvbiBwbGF0Zm9ybSBmb3IgTWVzb3MgYW5kIERDL09TLiIsInRhZ3MiOlsiaW5pdCIsImxvbmctcnVubmluZyJdLCJzZWxlY3RlZCI6dHJ1ZSwic2NtIjoiaHR0cHM6Ly9naXRodWIuY29tL21lc29zcGhlcmUvbWFyYXRob24uZ2l0IiwiZnJhbWV3b3JrIjp0cnVlLCJwcmVJbnN0YWxsTm90ZXMiOiJXZSByZWNvbW1lbmQgYSBtaW5pbXVtIG9mIG9uZSBub2RlIHdpdGggYXQgbGVhc3QgMiBDUFUgc2hhcmVzIGFuZCAxR0Igb2YgUkFNIGF2YWlsYWJsZSBmb3IgdGhlIE1hcmF0aG9uIERDL09TIFNlcnZpY2UuIiwicG9zdEluc3RhbGxOb3RlcyI6Ik1hcmF0aG9uIERDL09TIFNlcnZpY2UgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCFcblxuXHREb2N1bWVudGF0aW9uOiBodHRwczovL2RvY3MubWVzb3NwaGVyZS5jb20vIGFuZCBodHRwczovL21lc29zcGhlcmUuZ2l0aHViLmlvL21hcmF0aG9uXG5cdElzc3VlczogaHR0cHM6Ly9naXRodWIuY29tL21lc29zcGhlcmUvbWFyYXRob24vaXNzdWVzXG4iLCJwb3N0VW5pbnN0YWxsTm90ZXMiOiJUaGUgTWFyYXRob24gREMvT1MgU2VydmljZSBoYXMgYmVlbiB1bmluc3RhbGxlZCBhbmQgd2lsbCBubyBsb25nZXIgcnVuLlxuUGxlYXNlIGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGF0IGh0dHBzOi8vZG9jcy5tZXNvc3BoZXJlLmNvbS9kZXBsb3lpbmctc2VydmljZXMvdW5pbnN0YWxsLyB0byBjbGVhbiB1cCBhbnkgcGVyc2lzdGVkIHN0YXRlIiwibGljZW5zZXMiOlt7Im5hbWUiOiJBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCIsInVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9tZXNvc3BoZXJlL21hcmF0aG9uL2Jsb2IvbWFzdGVyL0xJQ0VOU0UifV0sImltYWdlcyI6eyJpY29uLXNtYWxsIjoiaHR0cHM6Ly9kb3dubG9hZHMubWVzb3NwaGVyZS5jb20vYXNzZXRzL3VuaXZlcnNlLzAwMC9tYXJhdGhvbi1pY29uLXNtYWxsLnBuZyIsImljb24tbWVkaXVtIjoiaHR0cHM6Ly9kb3dubG9hZHMubWVzb3NwaGVyZS5jb20vYXNzZXRzL3VuaXZlcnNlLzAwMC9tYXJhdGhvbi1pY29uLW1lZGl1bS5wbmciLCJpY29uLWxhcmdlIjoiaHR0cHM6Ly9kb3dubG9hZHMubWVzb3NwaGVyZS5jb20vYXNzZXRzL3VuaXZlcnNlLzAwMC9tYXJhdGhvbi1pY29uLWxhcmdlLnBuZyJ9fQ==",
"DCOS_SERVICE_NAME": "mom-1",
"DCOS_PACKAGE_FRAMEWORK_NAME": "mom-1",
"DCOS_SERVICE_PORT_INDEX": "0",
"DCOS_PACKAGE_DEFINITION": "eyJtZXRhZGF0YSI6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi92bmQuZGNvcy51bml2ZXJzZS5wYWNrYWdlK2pzb247Y2hhcnNldD11dGYtODt2ZXJzaW9uPXYzIiwiQ29udGVudC1FbmNvZGluZyI6Imd6aXAifSwiZGF0YSI6Ikg0c0lBQUFBQUFBQUFNVmRDM2ZheUpMK0sxcWYzWjFrMXRnSVFtYnd1WHQzYmNkZ1BKaEp3QWJNWkRhakZ5Q2oxNVVFR09ibXYyOVZkYmNlcUNXVDdOM2RtY2tFbys3cTZ1cXFyeDdkYXY5NUVtakdTbHZZM21Kc2haSHRleWNYSjgyeitzbnBpYWU1RnZ6Z2FxRVdMK0g3MDVOTjBrSTlhNTM5RE4rRWxtTnBrWlYwYmZ4MENoMXNMNFkvVmdnTm8zVVErR0g4bjY0VitWR3d0RUxyelBhaG8ybEZSbWdITVNOM3FSZys3NlA0b2JHMG9oZ0doV2RLNEdqeDNBOWRCZjZuM0NNUlJmTk01Y1AxK2Erak02QVRhNHZvNU9LM0U5dXpZL2pSOGIxRkxWeDdIc3puNVBmVGt3ajRNMkxMUExtSXc3VUZQeHN1RExlTTR5QzZPRDlmMlBGeXJaOFp2bnVlOG5jdUpueTJJSkpiUzQvc0dDVGhyUjNuOUdRZWdsaTJmcmdTSklQUTZubFJyRG5Pd0k4dFlPWmtZaW1oQlVSZEN6alZGQmQ0YzlldTRzOFYzN01VenpjdFpRc2pLMXFzb1BSaXBhRmNmM3hVb3FVV1dteDZhdmNLbXc4djd4VnRvOW1PcGpzV1NTQmVXc285NTQ4SlFSbFo0Y1kyTEJSRzRFZnhBUy95eHNwU2l4VGRzandsV2h1R0ZVVnptTnRPc1ZsZnkveW56eDc4RzMvd2pUVk1JcWFsdUZDRTJFemZpTTR5QzRyeUk3WkZnOHd6TG1MYlQ4U0toSHRSdExhaWxHTDFRcHpiMVB5eng2ZjQ2Tm41U1Q2VVNpV2Q2TnBMWmtlOGJtM0hnYlZRVUdOQTYwQm56ajU3SDBtYlFkS080MjlKMk5ncFhCc29nQWdYckVvR3BoVTQvZzQwcnhheDBhUHpaTlJ6SmZZVkE4Z0RKd0V3c0ZNQ3RKa0lkRk9CQnFCZm9MelF4WXR3UnIvOUthenZFc3dUMk9pelJ3bzNOS1ZCRnJvT25hTzErVngzZkIxK2doSEQ4Mzd2K21Zd3VqbjVDaVlDNnZuQjhLUGhnU1dEaWFzNFJtTCtGMytlYkJxWFFYQy9CbjZCcHdmTFJlTkVKcSs5NkpmZTlhV3RUVDdadjlxWHR0V01ubzNHZUdlNnp2TnMxUElNdDYwYXQycmJhc2I3MmZTdW9VMEdUdDgxZDNwenZKMVA2eHRvdjNtOWZXdXBUOGJ0K2FnWFhkdVhpNTQ3MkpyVGV4anY2aWVyT1hBTWJ4WThOUjdYVDgwcjFXaXE3ZjZsditoZDM4V3pTYjNRQnVqRU1DNm40NnlONW5DcHUvQjgxM3ZmdTQxL3l2QVM2TjZnL2pScFBjK21BeGg3Uy9OOGFyU3h6KzVwNHF6TlcrSkJuK3p1ZkwwNXFPdHVKNTRCanpEMitHSGxETWVQai9aMHpNZnlyamFHTjl6M252M0ZaSXY4WFM1UVZ2cWtzM3VhRG4yOThXNnQzUTdyeHJXNjFadDM5ZmxVL2NscXFFdkQ3ZFMxYm52ZGQ1ZDE4L1l5TnJydG5VbnlpVGFWZmRWVy9EUzlXNXJkNVVhM1c3NTVPOXoycDhSRGUvNEFNdG0xeTU5L1l2ejFyeSszeFBzMXRoOWsyKytOeGpiV0d1TVd5R0pqdUkvQUYvQUpmSDFEKzczUk5PRnpkcnhDUCtMTDJGWEo1R3FmOEQyTmYrcS84bnpxVmp3dmtVczZmaDExWUlGNmtodkhHK3oxYXpXY1RaMjlDZXN6RzZuYnArbGdiemJnYzA0bTdhTmxPT1g2Wms3dkFvbHVxb2JyN0ZNOVhqcFBrNWU2ZGpQd1o1TkJTTzA3RWVlVi80MS93TzZld0o0ZXUrT2RObW12SGh2alo3M1JXbEg3RHpmdjdqOWNNbnJVL2c3MGY0aDJzOVE3QXdmMWZrYjZmdmx5ZjczTjBGU1gxczFnQTdiaVBEWEhkVzA2YzRadUo5QnZ4N3NaMmVqbG50a2p0YmRwanRjdzNuVnZZM1NkOVd6WHk0NUpjaDVOV3F2WmRJRjl0N20rdDNjYmtDL3d2Q1dzR1hXR2o0L1h1ZjUxYmFJNmdDMzEvTndldVN4dy9hNU1qZy80dkk1MlBKdjJDQ2M0SGR1OGRiWmd4OERqM2MxRGZkQWZqbnQyd29jNzNEdzFZc2V3Y1UyeXNuWGlwNG5wb0gzM1BGZ3JkN3dIUG5hRVM2QUxzK2x3MzNkUlRzT2xObWxCLzlaS2J3eEFaM3ByNEhrNWEyVHdqYzBGK0JvMlFSNGgwVnd0UHo2cW4yeXVTNlFqQXBObWsxWUQyMWdjVjNxcllQSXdibjk4N0F3ZnFLK3RQdW5UQWRoTzBOQkhMZENSenJZL1VXRjkxYlkrdW93blhmVWQ0TzNmVExlKzFycmpKZUFJNk9teVBaL1VDYU0wYnhiMzNmYld2QjJRRFIzKzNHZDBOOGJ0RUhYU3p2TDIxRkJYalArWHUwL08xUWprMlhsVUIvUEhtL1pvL0tHK1luL2ZMTzdzcDBYZmJvTWZlYmRCVERhOFR3VjhCTjFGTE43M0p5VEhIZWdCeVB3bDBwdEdESElLWmcxbkRlUEgvVW5uK2FreDNodHFtOVlZZkVvMGJYUWl2ZHR1VHNFbXRZa1o2UGFWZ2V2MDdmUlY2cGZIR1Q3ZVRrM0dBeDVvdlA2RWp3ZXlSaHZ1NWZyZExVR1hWSkIzQkxvQXVPQnNzRjEvcE5yQVMyaE9yK1pBNHhuNEM0Qy94ZlQ2N2dELzVQMnBYUjVyT0wzTE9LWFhBbjByNE8wenJQK3oxcnphZ0k0aTNpMkFsOXgzaDM3bnFRSFkwNGkzZWdQOUlmbHRxK281MEZ0cDA4SHl5WDF4cGcyT1Y5MDJZczBoendWZUR2VmhCczkxeEpDUnVwbTVNN0FwZFdWUy8wU09LNkFmb2IzQnVyc3pkN3liTm9ZcXlXL1NYdmM2VzRoWDR1eVlTWHRZTjJyZm42VHQ1V3MvaFBtOUJEcmd0OTRBTHFhOWVBYllWeUZqR0dPMk5BR3Z1WjV1emU1NDFaL2VPVVlEWWgrSVJlRHpSdStPOTB5WGg4N003YWo2N1hETzlQT3FQcHNNNXltK2pPZW9iNEMxRXYwUWZUL0ZhZDlQY1FhYll0WVg3SGlNc3NpdkxjalhmWnFPSS9OYUJUMkRHT2tXNkYycmdPdUREY2daL0pBS052TGlZTXhWMU8xMGJOMGQxOUVYYWpzVmJFeDFEdWVWUEZmYjlGeStMa0ptTGNlOHhiZ2hpaW5lbWtyMXZiSzloTmZBYUhSc3Zmc1lVeHhWMEZPS0V3cGppT2Y5Q1QyWHJiVURZeEpkMEtXbFNUNFJZOGs2eEtZdFRudm1nTHhWWEJQSnZPWDlaV3ZGNmZVbktUMnB6WUN2NkU5bmdLLzNNZmhUV0FQbkhWdVA4ZHAwMmcwWWV6OXRYdTFBZm9GMVhjUkllWCtaWFFBOVd5VjZFRjh4ZXJjeTJZOGJRTFBlbnc0QU44ZExmWVMrWnhHakQyZXhPZGlSQy9nN0FYeHRkTHhFZmhCbkFHYk1NUllIZnhaUGdhYlZhWU5lRGlFRzY0RHVBaTZvN1JqeEhQMnlzWlBNaFdpQVBYQWE0Qk9YMXJXYXA3RlRVeHBOcWE0NUpzNzFXdDJiSUkrblNSMTQ3YndEL0ZEQlAyTCtzQUk4OFlBMjlCK2duNWV2eTNSSjhSUDRHVDQvOFhOUFl0ZmpkNEJUS3NhYUpiTFBQSmVNaGZGWnQ5MUFyQUtzQkYxRVhrbm5YWWlId044QmxqcnRKSmFTNkdYYXpsYVRkbkplWmhEdnZHeE14RkxFeE1rWTVRdHp2QVI1ejNabzd6bmJMK2hIcGsyQ0g0ZDVRRW1iL0RxNUJ0bC9IZ3NPL2RYTXU4TmNrK0l1d0E2V2QwNXpzZmMzMFMvT1o3bmtmdFYvS3VZclMxbnU5alF0NE5HeWtQOTFPMXltUzR5ZlNtU1pQcFBrVXZsbkIzbFFrdDlLWkFiOXdWNUVqajY4SHozZWZYcGN0VDhNeDRPSGFkMzVWT1ExMjE2ZTg0RnZYTTNBbnNCbXlCNElsenZ0NWF3N1JBeVVZV1d4bndRbmVaNmMwSkhaQjI4RHNaeTZSUncxR2l5ZTZGMG5mQnc4aytXZGx6SGtUSVNSd0F1TEJhVDVwNlFkMm4vWEFjeTVpMmJqTnMwTFlxV05qamdLUEdNc1VqS3ZJczlGSFdCak5nRzd1NEJiWFdlcDMrWmsvQXo5VjRqSkdzU3dNdHdVWStYYXliR1JyOGtBOEhXSWVCMUFQRjBsYzhKK3pEVUIrM1lHdzFXWWMwZWRvWDlva2gxd2VSRGVZN3o5RExISUR2bVl3cHlNNlJqa09LelFEOEw0WEQrS3ZYZy9PWVl4bVRGY2gzVndCNnJoM1RIZjRZNWZUUEJObEFzeCs4TllZRTUxbXBKNlJyWWVVVm5EcWFyUmxPaVNxQS8xcm9lZkh0Uzd4L3RpM1NGUHA4eitwdWpMWG1JV0cvQTVvWC91MWlYK2lJOU56OVVxdTBNL0crbHlYR1MxR0puZDN3NGc5aDJ1U0svTDlQSDJQazdhVk9naTVHaVZ0Zy9qUXU0V094Ym9HNndEeE9KWDJEL0hTOVhhL3AvVnFrYVhQSGZ1TGFTeUJubVUxUXJMNTFpWVV3VHhQK1J3QzRnVDJ1RnM4ZzdYMkVVWmE5ZHFXaDlpc1FOdnU1eXp0cTE1MHJiVFR0dEtZa3E5QzNtQU8vQWhQdGhvamZFYWRRLzhNT1JEaXhoelA2d0RneTVLOWVyb3ZxL09yY1h6clJmSUd5RDM3TFRyZWlNR0c1ZmxWYnpOdGNyYnlIM05JVy95UE9rRjdHeUljUlRnZHZ1ZE5TSnNnamg3UURsblBtYUMyTEk3QnYyRlBCWmlkTDI1YkpGZmNGc1FLMUsrT1UvaU9hbWNXVitNeDdFdnd6TFI5MTB1RnBUWVR6UkQyNFNZRWV0dzF1MktjQnB5dDJmS3QzTnhZTkd1Q21NVHZudzZqRC81R0hkek5vWkRtRFByVk1haUJiNm96L1ZyY1dsQjdvaE5xN3k4aXpwVEdJdHN5ZkYwbCtxK3VUaEpPaDlvUDIzdzl1RGIwMzJESTlaclNuWG1ZTlpvVWIwNEYwZEo5ZThiK2t2bWlqVWxuZnNqOHB0OGplajdUcHUrSno4czFiWDI4OU5reXpCSTFCT2xQRXJhdmM1THdPczdoN3hJNjNxSFl3QXVITVVMdFpQeVlub3NwM3ZCM0MvaXVMR1pOVXpJVmMwNXlCMXkycTBNTjNnYkkyWnR5akN0N1dHdEVYTFBpSEpVYWQ0TXRFQjNucVlEUHhtZi95eXpFZUFaYzlxOVZtTGIyZWZGc2VCekUvR2JaQTc5Qm9DcnNydzBiU2NaZy9lN2s4bVV4WDNUcXkyUDhWQVA1dlN6eE4rek9LeXpOVzVMY0RmN3ZHUXNXRC9LOGJGdUMvYUJPTUJxaUY0NmZyWU40QzNteEx6T1dNWlRkajlSM1NKT3NKcmdYUVdmRlgwa3ZHUHREV01Zd0NlZnhkNXAzUmZ6RTZ5VEFLYUE3TWF3SmhUZmkzcHZZVDJxYUIzbWVJd3V4RmhGdW9mNUNxT3J0aVYwRHpGWXhab254bndxOE1UeWc0YW90VktPWEU3TGFRTnVPN0Eyemhac3R1aHZTdmw5aDlnTk5qZ0lqRzRuS3NacDVUd2hqbXJvOXlGZTBpVngxVGVObWMveHk5ZUMvSk9ZNTh1eHRZamo2WDJManRucWZvYTVuSWhGeW5WdERqeGlmaWp6MThmUmw5cExoWHo1ZU5MWTQ0aCsvY2tzQUV3K2VsN1RCclovbEdGZ2hmN2dIdW1kQTc3RjFjQjN5T09TYitsZk1WZnZMcGgxVFNlcFlXWG54WjlORy9pc2FnNTNvTzlERCtJYW9XY1YvQjYyTGVjdGpVdkdBZnpaOGZ4QjJIb1NNNWtUWnc0NWVsU2hRMGs4Wms1V01iYXQ1akdKK1ZSdHBLcUcrOEp6ZHZaODJzUjlsOGRTdnRsZUNXR2pqQmZhQzZtd3hmUzUzUGJUNTluektrbk5UVzRMZ2llSnoyWnpubzczekplazYyK0NIc2w5R0tOSnowdDhPT2RWUlF3cVdlTTY0TXN6NVRyTUgvR2ZpMnRpQWlZK05RZVNYRGZ6ck9CYmhxQm5nNzFFSHVtNFJWbEFYSWgxcEZsZ0p2dDBkM3YwdldZWHNiVERZemhvNTdSNXUvRmN0SnMyMG5ZeVhkUllYdHpBc3c5aTN4QmtsTXVQWmJJOHBsOXhMbUpmRXZDek8vQXBEajNNRVJuZmM1QlBIZkp4aWtrcjgwSytiNW0yTjE3TEJjVitLM3czZk5iWVBrbDEvZ2RZTzBQN2E5SWVJdFlvdDBEUEtmTGVtaWZ0T3UyazNiUXAybjJTNEJYOG1Zd2p6SmxwZnhQclI5ME81bU92NUlESDlKUFVpTG92S3NibkxIK2VFZC9pTzVhUFB4VjU5SzRpazg0ZFVIN3ZTdmtwdEtrYWV4andXSFdyMzQ0eEg1bURuZXdrK3NtZnYwTTdrdThYcGVPdU5IbmNDYmt4MVQzQjV6bkNWNE9lT0ZUN3hiMWN2ZHRwa1ExaFhvLzEyNFlUd1RQeVcyZy8ycFJxdjhEak9IcWFyaVR5S2ZaRCsyVDl0akhyNTBqakF0QVJxdWVDVHd5RVh3ZDVCRlRidnNZekFDOUxTNGFSSldQbU1LRmtQaFY0SUpkVk5SYTgya2ZHTytXcFhUcWpBSDA2SzhqaG1DNkN6V0ErakJndzY0Sk5UNGFibVNTUFN0djE0cVNkdkhZS21FaDFSenBqQWYzQmY3YzlxWDVtYVRidmxrWjNDZXN3THZLVlBKUEVIN201bVVEN3lnYzlrTWNmcFcybHZCMWlMYzdMQVhuVHV2TGNzNGovdUsvUXhiTnRGQVBLOWhhS3ZtV2E3MVBHTzhUeGplVDhDdTZwZzR6QXh3VXNYNUxtcjN1SUJ5UG9zelNvWGk2eEVaUTExa1c2WTVaRHErM0VWcWNOWnF1U09ieE9WMlo3Tk00ank5MTNVa3dvcnNOaG4zd2RtZkV4YmhNZnI5aGFnZWZVZG1YeUhqd0RCam1zTm5EL1duMTRqN21KNFFsNVFoNXdleWVWVzlKT0toL1dUeTRIOXF5UDlzUmpIZkVkK0R2NFRsSjc5Z2FZRSt3czhGRlBFN05Fcnc3YkhMZlBBZC9odnZlSzRkNWdyM2ZhNlpuV2NUczkweXFKSWFycFNYbXNQRE5ieER0Wis2RmZ6dXRRVmdjclBYTXJ3YnpTdGhMZTJKd2hqOFh6YnJ4MklYZ0JuUnY0czhQOW5rS2ZRbDRnNXNuN0g1d0JhTEwrRUc5US8rSWVEK01aN0FQUDBjbjBHMnVGWWJMZndmWkVYZkQvOFdGTVJuVkJ5TXZFL2c2ZEJYYWRuVDZ1ck1zZlIxOWlNelRlVGszMlo1THhYb25MRHZzZDdDMFFQOU5HdXIvekRieFh4NUhlY0drMG9qaXozMU8xaHlCb2I0em1KenpuczRVeE1HOHVpYWVRZG96blFQZG1wKzFZdDFjd0J1YnV4OFJVZ2kvb2U2MG1mWS9GZGlGUDNLT0FPUG1kY1R0ZXp4cVBSOFpXNVdQbjQ2dnkrVlhnZnJrTXErT3NvL3FWelFYM01zbGZUSXY3WllsK1lheEE5VGtlSzFibExVZlFMWjNETkQvT0t6clhuRTN1TWpVUHNPbkcySzZvcitUYnkzU0Qrb3VhQytIZGUyMVhHUGU5MWl6VVMvaDNlWHFXR3hmckFGNFFncjI5MS9iK2h1d045eFpFRFdMdjcrNGZGaS85NW5pTk1aMEJQcS9mUEtvMlN1TVgxemdJS1ovTG5MRko1cVcrY3Q1SDJyZUE1eUNmNHZtY1BLWUg0V3ZuZkN3M2twd1hrc2o5Y0N6Y244VStEWGplWmJnT01wOGYwSnBEZnh3YnhucFpTZlRpZGJvU1hTbnlqRHFlamlQRGN0Nm5iSDhaY0lQTDZzaTk3MnA2TWt6bmExcXlQeTdYSHpwYnROWWh4b2FZSkxEY2NTSm4zT3VaTmxvYndOczV5TzI5Ykw4WGVXUjdRdGdPNGcxc0p6L2ZqT3ZBenNtNjdSWGcxMTZiQnRLY0o2SEpiSVRuSWtKK2RJYXFnZmtLNVQrU0hGSGV2MHhlTlArVVhwbWRZWDB4MFlNY2hxS3Q3WVh1VjJObk9aMFNlU1YwWDhGS2JGdlV0VmQ1cVk1cFVJNDUvYkhaK3pIZzUyM3dvZnY4K3p2RER3LzBqa3pudzZqZXVSMk8yOTNIVldjd0hKc2ZIMWZ4L0FFL3MvZVREbmt2TytONlJKdUQ4K1FsNTJEemRkcVNjN2RIMUsrbDlOUDNuK3poemVEam85cCtHSTd2SnFQSFFXZGFiMTA5UEQ3eWQwd3IzZzJWOVZVSEgwWTNZeUV6T3FmRjVZL3ZXZDE4cXJjZm9FM24wWm5kZmFxUDJidEpuZmJkdzJyWW1iQjMxYmE5aFUvdmo4MC8rYitjZk1XMzN5Ti9IUm9Xdmh1clJaRVZSL2hwSGRxUmVGczhlYTBkSDVpK3NXS2ZiRmRiMEx2MXhmZDBMemJzM2ZxdlgyRUFha2RFYmFCVWkxek55Yjd4YS9wYnovRTFzL0FtTW1NRzN6N0dWL2F0ODNxOW5neFFTMG1kQmQ3aTVKVFJkaTNUWHJ2L0dPS01WcGE2bzRVMDRYOEFjU0xGYVVkR2FGbGV0UFJqTG5HUW1lSFk2V2ZmbTlzTFdoN1R0UEVsYnMzNUdQcUJGY1kyeW5XdU9aRjFlQmxCeVp2a1Fkb1BYL3BQaWZ4NXdsLzMvdDV4dENCUUdLZHJjZXRCMHZlc01CaDdNZnpQQTJMNENqdyt3V3NENHFVZHBlL0RjK2J3VFhiYnRQaWtkSHpOWFRRNSsrejE1b3JueDBvVVdJWTl0eTFUOFdOWWtxME5YRE55Ukp2ZW1ZZXArSXB1S2VzSW1vazdDWkpiRWFqaHFXSWFmcFNNekw3YXI1UkF3MXNQUEZPaFJWZEMzN0ZnN0FkZmdXWFVZa3ZSRk0raU4rS3g0YWtTc0xmeEdWTTdlTG9JL1hWQXR6N3NBdFNtS0E1dDBnUFRtbXRySjg3Y1ZsRUQ5a0tVblJiSFZvZ1MrcTgzYjM3VGF2dDZyZjM3MzhVSC92Zm56N1hmZnhUZnZmMzgrZXp0ajBlMi9XZUVBV0pMdmlUMDZMdldSSUVsNFROV29Ddk1FR0RFUEdXWEVwZ0pTVUdKbGtibkE1NlRqaFRGbEJIR2IrZS8vMGNxa0xkdnBMT0RyODkvZjczVjJ4OUpERWF3anBnVStHSTBEalUrYzh0RjdJTWlPYjZCeXc2ZkxjMVlwdUtoT3hNOGRxY0Z2ejNqNUtLZXpNZGJ1em9zTGd6cFdtNXVSTFhWZkY4d004djF3NTN5NXY3cTdYZU0ybElia25GRjAveDgxY09oQjlRQjE2b3dDRWtBTDUyUVQ5SDJZbXZCeG1MdUpEUE1iNzhmanRPM294aEhlUnoyZ081U2l4TjFFRGpMTDcxdzRWUG1SaEhiSTNVeTFtRm9lZEFKN0JjVVJUSHQwREppRkZxRzh6T2xBN1p1dldndW1DWFRQVVB6RWlDQTJZaXhRRzN2WUF4bFplMGlvQUxnWVBQYlMwYWpmaDdvY1BZMmhNWTB3YXgyZnY0Yy9mNXZCUTMrbW55aGhhRzJPL2xLUHZodmErRFh4RXRnU0FPWlZtVFg2UGVrbTY4L3c4eVF6dlBHL1VhNHZodmZsNkowQWFTWGxoYlVZRjN6OXRDcVZFNWdOd1FJdHZmcFZTODRKcEk2VXg0SWhKaytnYjliT3lhS0h2NXpyQ2hTY0dYK3RnYXVjZlhab2pJT3RKZlhGVXkwelBINjAvdWZxM2lGNXQvR0tiR1pNT2N5VXNJV1NYMXlWOXVJeFZQZWRDMklualFIYk1XeExwUlcvVi9ldmo0alA0aWpJaDVmNHFVdWtaSXVPVEw5NWRlUER5TWNIbmdFUCt5UTcxdkhCTXVFc1JhdWkyZHFJVmpQQ3pPaXFPaUNEalV4V2YrTWVHVnFtTDFkUmE2TDdKS2hrc2dCTHhsQ2xoendEY3JjMFJZUnl0OENQd0lneTVoSHYwMVBHRERnOXdFR1dTRHpKZmlLeFJJbm54RGNMaTFQY2JTMVp5d1JDWUE0YUpXekEvL3V1d3dyTWlPZVFXd0VFR05CaEF1YWh5SGN4WEZYQU5IdE9lZWNWQTFKMVJqenk5aDFDcmFrMFExRk5ReWxJV0tvb2RKc2EzNW9MNFI1SFRwZDl1eE5sT0Q5RnBFdUJiSUJSanBXck9nN2hldjdtWExEZ1cyak9XdThoQW5FOVBua3g4OG5wMmhibnlsdWhWbWh1anBMUDRvdmZvWi9UaFgrdGVuam5WY1l2MzQra1lHV3JobXJkVkFqWmJmOUVxN0ZVd1VBWDZnZTYwaFhCMUdFSkZFODhMdEx5MWdGUHVoL2tmQ05oMEJ2WGlodlByQ1p2bFhZVjByYUN4Y2F4OU9pRmFqUGtHbHhkTkRBWW9RVURGNGNiUU9CcWNMdGlmb1JpejQyWFZzS3YzOUxNZGNoS1JHcVFvMTZLVUFZVVk3ZGNyVU9GaUU0cEVqNVlFZWNUZjZwakx0MCtycnY0MlZLMmRnUExlVXIvbXlRUnZuenVSWFdUQTdXUmRFSWlWd29hcU1PK2dEc202QXl1QlNpay9MR0JUOXFKODhRN0xaTDJ5Q2I0ZU1vTkU2VVVhYVRBaVJsbUlTeDRKK3Z5VGMxMU80QUlMQW1rc2thaHNVUytPTHNKb2pMQ1Z6eS9rUGVmWWk5RlhDbG9hMnZZd0l4RGFOMnlERW9oclQ1VlZid0h6UG1XbVFGYUJvV0dqV0xJNWh1UlJ6TCtVQWlacU93UGNyS0loZmFKc2lOQVFKM2x3emdJYWl3SUt2akFxc080Mzg4eVlqSXMySU1UV3J5ekdmQW52SXN3L2FlNmNJMytJRHNJcUl6czRwK1NPK1lxN2w0QnhzbisrZFh5akE0UHBvK0pVSXMzRVk1MnhDL2JUMmlMclUrazJsc0RhRkFzbWhjbjFHeUZoa0Z5dTMyNGVHamd1NENyQUdsaE1nVFc4N3VqSjZNVUhSclR3TXg0VXlxbFo1Q0ZXQ0QyV2R0RGlnQjhwWjV2OUxWRm4zQW90Tzc1dmgzQ0lRWGFCd2haT1ZLVFlBSHY5V1BKaU1lWmlCV2VXTzlBSURiZEhlYzgvWVV3a2FNN0RUbnk4WjMxb0FIS1NYeFJCRlBCT2tNdVZObFl3ZVpQbnpoVUpyajNzZEllZXlkS290Zy9VVllVQW1qWGNnK3FwaEVpUG15UW9NSHdna0ZORFUvNEFIRHcrWG9seSsvOVByOTNxRExybTA3ellmVDdJYkMrbG5qWjBJNHZCOHRyRlIwbk5scGR1UVRXc3hOYmFPRlVTMElRUTlmaW92NWtiNUhvMXBITEFhRExuYm9lemdaOEdHaGpReEZxVFZvNnhoOFZBeTJ3Tzc1NDZaTVlJeldlWUN1cVhwYkc2QllnNTh0emNVb3BvYkJFUVpFZU0wZHJGY2tDbFJGaDBaZEZkWlYwZGNNSnVuTDZEUU5SdERhTkFmYW1EczAwQWlVd0VRd0JYREZsdmw0a3BsbFJJdmlKY2tWbzhsSUx0Q3YwMWpNV1ZFTUJEa3lCcU1RMDUxQ25EZkhuRVN3VGp5WUVHOEVPVXVUSVhlOThRNEY4bUlaSU14UTRtdjVFN0VzRkV0NWVPVWo1dW1pc2tLSmZRb3hKb3Q3U1cxRWJDV0dJQnlJbURoRW9GS3BUT2ZuaG12aXFzMUJKWDJZY3kwRzlZWVZxL1IreXRheVZzenhpWDVmZUQ5U0xWYXNzVDNoSTZ2RjlMNys3bWR5Y0VsSnFBUzNVdzU0RGVNTTI3MVZPcmxTRW5NY0M0VFBrTjJhU2JLUzZ1cFNPeW9BR3E2OXJMdFNiaThWTjdtVEUvRFZoSkhvMmxCTVVFV1VRNWFDd0FBWmpCYnFkaHhxa01Da09rajFzb1FzaEFQcm1Dek1zNWp6MDYzRTJOSWh1WExUNktHSXU3UWtmcHI1L2krV0JSaVZDWkFPbVkrZ29jTXZGU1dTeDRSSUdNR1dseEUxYzRQQk55cWVhTWhzUzZpamlFQlFYOWNlOTY5TWZLa3lzNXNtS1IxaFFUVjJwOW9oRlFWTVVYd1ExMkFTVktCbFFndk5ZK0lrb0FIbFJ6YW8yZ0Q5cURZaDhrVit1eXRmTmJsU2dGK3VRV29Gb2kzQktmNFFhVEkzamJoUmNOT2x0TkY5WTM5cGtGa2VmMk5mSmRQM1RCSUZGOXNjdGJyRUZZZ0taR3FEeEl0Y1hhY1BhYUlzdzBLVm84b0JqaXBzRXRIS2NvTjRkNHFYbGlLWTRUcXdEdFNhaEdSNUpnWHJZQzZvSWlIcXpBV21tV0RIV00yMUNjdlEzOUp5YlRFdnBONmlzZUt1WVlrUkZubVFwdnh3OGNNWmFQb3VxVGVudGVsRTAvNjR2eG45T3ZwNGV6TzgrWUo4ZkxrZTNueTRHVHowTHZ1alA2UXVNU3ZCZzNWRTV3YUQ4MkpZTFZsM2VhazlNZnkweTBGWWwzZzR5a0FSeFpubkNTMzB5VEN5QkVjRkx4aXp5QWVtYU9aWVRUMGtDMTdXY2VWMEFkc2hXNHQzQ3JWUjNtZ3JUZmtCdU5kK2VBdTVRdVFiTnNXTWllaXorbFhsa3U2VE9vRGdJdm9mV09Nb21XU3ByVWZmSmJ4UnRmUllSYVFXK3l2TEF5bk9nY05sRForSEFHM3lzY1JUeUNFaGM3UzlOSEhrL1VtTWpMQkNoR25PdFJyNzZndDk5Y1h3MTE1MVF0bmsrV1NXUllsbys3bUIwS2NrN0ZjSFBVU2I0QldpVWY5bGh6YmlNZWRZSGwzY2F5OTA1VFUyd0p4TXllYlJwempQcldhejZFS1FRL0R4YytYb3hNMXhuMHcxS09FYXBGWDc4bm0wNnNXSllNejUzVk5BMXBFQXBYUkpjVXpPK1d0eHBZUzNLSEpxOXNJRHZLaVZPK3NQTEZjRmI0M2JZNFEzaE4vQ2FmTWkwcUVjSVEvQUc5WlpadU1sdXdCVW5FZkhQN2RwZjRUQ1YrSUc1M2o1c1plQnR2eENGV1paa2FkU0JZMU1OQzA1SDRpZG1TbEgyR3dzRFRnRU1rRnVGbzZ2VXlZRDRRZndsT3lDWVU5V3B3aUNWK0pVVVlmSk1pUXJLTjZEZVA1UEdFcjB3Ri9nYmZ3MUI5SWFDYmFNSU1IaFRSUnFndFI5cWtOZFlHa0ZrdTB3OU1OVHNMRFFROFdkKzZlUVBlanJCZGhkcUJtWXNUcU9ERDJCS3BoU3RKU0FCendCR2hGWUtZdjFIb2M5VkJ1OG1CK1U3czNhRFA0ZUc4SGZRV3ZmWHB5Zi93VTE4SzhYZjhISi8xVTJFb3NONWJqNU9Pd25pcHNKSkN1ZHpINkZGV2NXY0ZLMmN0RlFmMVpaRFpxTjkxTERCWkNQNkhKTFQzMTZ0bXpFN01xRlFFUzNlQlZXbGlqeVVaSk5weHBBTEN0QnluVTgzUWNNYU13NXhzcmNvTmxHa090VGpFUTdKbWtHekxqRG9uVGdteGtxZUl4QUpBT01Xcld5MGVZcDFtVzFOWWphaSsyeTBuUVN3VTV3UzVIS0RVbUNsdStMSHM2eGttd05GVFJOMk5qSEFMNDE3QUM4SXVhNVNWbUZsWkN5RVhBYUx2TjcrdVB2SC9vNFlKSkpvNWJ3ZTN6NnltWjdtV2Z2bzZBakRWdWtRek9aU0pSSFJuL0VCUGlOeEd1NE1Tc3BMdUVwRFlRc3RuSExBM0tSSFh6ZitIcG9td3VycEJLUVA3c2locmdlOUVTbEw2bUNVTHhmd3pIU1l1NWhtUm4xaEExblppcUYxWWRHTWp5bVBIT0h2TFpyOUhzV1pGeFRZb3FxVEI3aWpYVzJPRXMzaTRqS0Y5b3RhdFZiOWM4bmIyWEE5a3BGSjhVdzRnbHI3OStxaTlpSDUreUFJNGtKVVdvWFdmRnBHaUR3Q24ya2lFcXEyTndRR1grYWd4RlJjQUZpMDVJRnRxTCttcVFKMUF5WUJUZkpOT1dISDMrb1VCTTZ0Rk9pOHZoTU5nMDVOZmhvU1BBK200OURWazJiejIrVkhrVmFaaDUvQ28rUGd4RWJFNFFOU0pHaGYxU1JKbkM0MTZJVnk4SUI2TGk4MzFEU0s4cWlrVVhKaWdWNUJEa0ZmNDdaUytvYWNxbkdVWEV3Mnh1alFCQkRqZElnK0Zkc3A0aDJpcWdLMGpqS0tQWURDQ2wyUEhTblZ0bmRkYll4bUt3WWphbG9jeXprMFJkSXJacmJKdWZXcS9GQ0R4YkVBOGhLeXpsR3E4d1dMMW1IQkx3S3UxUVV4NGt5a2hZZEY3SC96RU8xd0ZsREhJWVowYndrNGFRR0I4ZEdFRldsV3N2Sm1iYkVCbEpRcG9BMWMwWW5nODk4dUdkTnRyMUdKeFN3V21FN052TUN0QmtJd2E5cE9kcE9OZ0hVTFpZbk9KYTNBQVlRditUNUVDOXVKQUxXd1JXempCYjNXSHlUN3p6QUQvVGJuRkEzbER3N0N1NzVzNWlyV3ZwY2h3dVRLYy9HdjJrZThSYk5yWnJCMTByZ2RjRWkrZ1hjaGRaaXpmUVhSZDR3MnFXalV4aDZ4eEdvNE1MQ01ocDVFZ2lyODJjTzFFYnJQOWlXMEw4bjV4eGpDTXYvRlg4TFZ2TFZ2d3BSL0R2OUFoK0pGbkN1RnFFV0xPbFhXNVd3SlJya3VJSkFQOGNWSkZKTk9WZXY4cEdGU2VES2l0bm1kSkdmSVR5RUtCelNuUkFyVk5pUFFSTlBTUm1ndVBocmxYQmRJOHg0UUtkWjBJRHJYc1BrN2d2citZV04rRVd3OXdvR2ZjVmp4cHBqVVFieC8yRXplQ3pPRGFod1JZd2NrMHR5RzhreC9vKzNqMlBaYVFxRGlFQ05Rb25ZTUo5a2U4bjQvSlFwbWpoSzlKZGdyVU02aGdsbGFHL0FKZi8xUDFrN3RxOTNMdE10MXFER2ZqdGNZY0owR2dxa2pORWJTcFVhVTlCQ1ExL0E3QmJxQmUxYXFLZnd1Y0UrTjZRalJVNU5uSFNzaVpLM0RMOTVNVnlFVXNucFNOeWlkdkpsYmFENVJUei9nbWVoLytDNVVuSThCMUsvdWJTZEhTVUV2Nmw4L3N2TjAramhWL2p3OFhKVVZqcy9ZdnF4cEhvZ1hKY29Nb25tNHJUREcvanliWEppVlJ3MHN2a0JaemJ4L0x5U00wcC8xR29ITW1CUy91Tjc1LzV3K3kxenAwa2IrTXZRdm1YblI4UHdvOGFQUUZMdk5MNEdpb0MxQ21KWEtOc1JZcitTN3FqT3gyd1ZvUlh6Z2pORk1YYm9Wb1JXcnhkek5ZWUxlTFRhWTNHZXhjNU1qQjR1dThtWkNRRjg0cXlGSFI4SkgxbDIvMWZZSEQ0T0J2OG9OZ0ZjYXRaTHNQWWc3LzMvanJRNEg4ckNPRGJLcXB6TXQzc1NlUUhkSVFCR0JuT01IU0Ztd1JpQUFQSlN2UnR4bEVaNDFsYkpVQk5IZ28yVjUyL0JCTEdhc0xFMTNKMW5TYkxKRXhxK0hMQ3lWbnlNbG9pNjg5YlNxeW9MQ0kxdlJtOFZhQ0NxQnRCRFdkdW40aWhJWnNkRXNtTXZCYXo5cWpoWWVzZ0FnejV5d29BalNKeU1nSTc5UTJwM29WQ1JGY21yRnhnL3FxZjR1VUdmRzZkbloyZm5oUDdTVWI5M2p6elREWVd3WDlFNUIxZzZtNS9NeGhQb1hEcDBBZ0owVDdjWEN6SnBmdFE4V3h4YTRyNmI3NWd5WkMwWjZ4Z1V6VSt3bGd4VFZhaDUvMDc1NVFvUDNmQzJxSjc2THNiSlVVcWFaUWNQVHZBWWdTOTR1bWhlL3N5SExCdHB0WnJ2QlpldmI5MWxFMmgycU5makJ5N1NRUTlNNmFodERSZ2VDK1RJYnczWHJmcEkwcjBOd2hGYmNHSURQVDlydHZwdmhOeGVLWHpnNmEwY0kveDNHY3UyU20zWGpnK09tSW5XcCtMMENob0s3cnBnRVRUZXZWWjBZY05HUWtHT0xWNmtFK1pkbys4Vi9YY01tZUx4NGFESDdHTWR2QS9CTjNHS3IwQWN0Qk52VXJJWGRETHZSOGhlbnVEbjVmamJudjhOREMra2NzcDZBQUE9In0=",
"DCOS_PACKAGE_VERSION": "1.7.50",
"DCOS_PACKAGE_NAME": "marathon"
},
"maxLaunchDelaySeconds": 3600,
"mem": 9216,
"gpus": 0,
"networks": [
{
"mode": "host"
}
],
"portDefinitions": [
{
"protocol": "tcp",
"port": 10000
},
{
"protocol": "tcp",
"port": 10001
}
],
"requirePorts": true,
"upgradeStrategy": {
"maximumOverCapacity": 1,
"minimumHealthCapacity": 1
},
"killSelection": "YOUNGEST_FIRST",
"unreachableStrategy": {
"inactiveAfterSeconds": 0,
"expungeAfterSeconds": 0
},
"fetch": []
}

created cluster off `testing/master` on CCM

Then launch a simple app with hostname constraints

Went to edit it and can't.  Then tried to look at configuration of service... 

from browser (developer view)

there is an indication of an HTTP 400 for http://ken-p2tsc-elasticl-8yunizdyjp1s-1249077433.us-west-2.elb.amazonaws.com/cosmos/service/describe?_timestamp=1538445794738

 



 Comments   
Comment by Automation Bot [ 01/Oct/18 ]

Ken Sipe, could you please specify the affected version?

Comment by Philipp Hinrichsen (Inactive) [ 02/Oct/18 ]

Hi Ken Sipe , I have problems to reproduce this. I basically just deployed a nginx docker container used the docker containerizer I set the hostname constraint to unique. The app deploys and I go to edit and it works.

 

Altough I see that the failing request is from cosmos. Are you using any label which makes the service to be a package. like

dcos_*
Comment by Ken Sipe (Inactive) [ 02/Oct/18 ]

let me repo it... I will double check (however it failed twice last night).   I will send the specific JSON.   It could be the case that the task won't land and I was editing an app that was still trying to deploy.  this 1) should still be possible and 2) shouldn't lock up 

details shortly

Comment by Ken Sipe (Inactive) [ 02/Oct/18 ]

ok.. it must be the JSON I have... the following JSON fails to be "Editable"

 

{
"id": "/mom-1",
"backoffFactor": 1.15,
"backoffSeconds": 1,
"cmd": "unset MESOS_NATIVE_JAVA_LIBRARY && unset MESOS_NATIVE_LIBRARY && LIBPROCESS_PORT=$PORT1 && ./bin/start --checkpoint --decline_offer_duration \"120000\" --default_accepted_resource_roles \"*\" --enable_features \"vips,task_killing,external_volumes\" --event_stream_max_outstanding_messages \"1024\" --executor \"//cmd\" --failover_timeout \"604800\" --framework_name mom-1 --ha --hostname $LIBPROCESS_IP --http_compression --http_port $PORT0 --http_realm \"Mesosphere\" --launch_token_refresh_interval \"30000\" --launch_tokens \"100\" --leader_proxy_connection_timeout \"5000\" --leader_proxy_read_timeout \"10000\" --local_port_max \"20000\" --local_port_min \"10000\" --master \"zk://master.mesos:2181/mesos\" --max_instances_per_offer \"100\" --disable_mesos_authentication --mesos_authentication_principal mom-1 --mesos_bridge_name \"mesos-bridge\" --mesos_leader_ui_url \"/mesos\" --mesos_role mom-1 --min_revive_offers_interval \"5000\" --offer_matching_timeout \"3000\" --on_elected_prepare_timeout \"180000\" --reconciliation_initial_delay \"15000\" --reconciliation_interval \"600000\" --revive_offers_repetitions \"3\" --scale_apps_initial_delay \"15000\" --scale_apps_interval \"300000\" --store_cache --task_launch_confirm_timeout \"1800000\" --task_launch_timeout \"1800000\" --task_lost_expunge_initial_delay \"300000\" --task_lost_expunge_interval \"30000\" --task_reservation_timeout \"900000\" --zk zk://master.mesos:2181/universe/mom-1 --zk_compression --zk_compression_threshold \"65536\" --zk_connection_timeout \"10000\" --zk_max_node_size \"1024000\" --zk_max_versions \"50\" --zk_session_timeout \"10000\" --zk_timeout \"10000\" --metrics_statsd --metrics_statsd_host \"$STATSD_UDP_HOST\" --metrics_statsd_port \"$STATSD_UDP_PORT\"",
"constraints": [
[
"hostname",
"UNIQUE"
]
],
"container": {
"type": "MESOS",
"volumes": [],
"docker": {
"image": "mesosphere/marathon:v1.7.166",
"forcePullImage": false,
"privileged": false,
"parameters": []
}
},
"cpus": 4,
"disk": 0,
"env": {
"JVM_OPTS": "-Xms256m -Xmx4096m "
},
"healthChecks": [
{
"gracePeriodSeconds": 1800,
"ignoreHttp1xx": false,
"intervalSeconds": 10,
"maxConsecutiveFailures": 3,
"portIndex": 0,
"timeoutSeconds": 5,
"delaySeconds": 15,
"protocol": "HTTP",
"path": "/ping"
}
],
"instances": 1,
"labels": {
"DCOS_PACKAGE_OPTIONS": "eyJzZXJ2aWNlIjp7Im5hbWUiOiJwbGF5Z3JvdW5kIiwiY3B1cyI6MiwibWVtIjoxNTM2LCJpbnN0YW5jZXMiOjEsInVyaXMiOltdfSwianZtIjp7ImhlYXAtbWluIjoyNTYsImhlYXAtbWF4Ijo3Njh9LCJtYXJhdGhvbiI6eyJjaGVja3BvaW50Ijp0cnVlLCJkZWNsaW5lLW9mZmVyLWR1cmF0aW9uIjoxMjAwMDAsImRlZmF1bHQtYWNjZXB0ZWQtcmVzb3VyY2Utcm9sZXMiOiIqIiwiZGlzYWJsZS1odHRwIjpmYWxzZSwiZW5hYmxlLWZlYXR1cmVzIjoidmlwcyx0YXNrX2tpbGxpbmciLCJldmVudC1zdHJlYW0tbWF4LW91dHN0YW5kaW5nLW1lc3NhZ2VzIjoxMDI0LCJleGVjdXRvciI6Ii8vY21kIiwiZmFpbG92ZXItdGltZW91dCI6NjA0ODAwLCJoYSI6dHJ1ZSwiaHR0cC1jb21wcmVzc2lvbiI6dHJ1ZSwiaHR0cC1yZWFsbSI6Ik1lc29zcGhlcmUiLCJsYXVuY2gtdG9rZW4tcmVmcmVzaC1pbnRlcnZhbCI6MzAwMDAsImxhdW5jaC10b2tlbnMiOjEwMCwibGVhZGVyLXByb3h5LWNvbm5lY3Rpb24tdGltZW91dCI6NTAwMCwibGVhZGVyLXByb3h5LXJlYWQtdGltZW91dCI6MTAwMDAsImxlYWRlci1wcm94eS1zc2wtaWdub3JlLWhvc3RuYW1lIjpmYWxzZSwibG9jYWwtcG9ydC1tYXgiOjIwMDAwLCJsb2NhbC1wb3J0LW1pbiI6MTAwMDAsIm1hc3RlciI6InprOi8vbWFzdGVyLm1lc29zOjIxODEvbWVzb3MiLCJtYXgtaW5zdGFuY2VzLXBlci1vZmZlciI6MSwibWVzb3MtYXV0aGVudGljYXRpb24iOmZhbHNlLCJtZXNvcy1icmlkZ2UtbmFtZSI6Im1lc29zLWJyaWRnZSIsIm1lc29zLWxlYWRlci11aS11cmwiOiIvbWVzb3MiLCJtZXRyaWNzIjpmYWxzZSwibWluLXJldml2ZS1vZmZlcnMtaW50ZXJ2YWwiOjUwMDAsIm9mZmVyLW1hdGNoaW5nLXRpbWVvdXQiOjMwMDAsIm9uLWVsZWN0ZWQtcHJlcGFyZS10aW1lb3V0IjoxODAwMDAsInJlY29uY2lsaWF0aW9uLWluaXRpYWwtZGVsYXkiOjE1MDAwLCJyZWNvbmNpbGlhdGlvbi1pbnRlcnZhbCI6NjAwMDAwLCJyZXZpdmUtb2ZmZXJzLXJlcGV0aXRpb25zIjozLCJzY2FsZS1hcHBzLWluaXRpYWwtZGVsYXkiOjE1MDAwLCJzY2FsZS1hcHBzLWludGVydmFsIjozMDAwMDAsInN0b3JlLWNhY2hlIjp0cnVlLCJ0YXNrLWxhdW5jaC1jb25maXJtLXRpbWVvdXQiOjMwMDAwMCwidGFzay1sYXVuY2gtdGltZW91dCI6MzAwMDAwLCJ0YXNrLWxvc3QtZXhwdW5nZS1pbml0aWFsLWRlbGF5IjozMDAwMDAsInRhc2stbG9zdC1leHB1bmdlLWludGVydmFsIjozMDAwMCwidGFzay1yZXNlcnZhdGlvbi10aW1lb3V0IjoyMDAwMCwiemstY29tcHJlc3Npb24iOnRydWUsInprLWNvbXByZXNzaW9uLXRocmVzaG9sZCI6NjU1MzYsInprLWNvbm5lY3Rpb24tdGltZW91dCI6MTAwMDAsInprLW1heC1ub2RlLXNpemUiOjEwMjQwMDAsInprLW1heC12ZXJzaW9ucyI6NTAsInprLXNlc3Npb24tdGltZW91dCI6MTAwMDAsInprLXRpbWVvdXQiOjEwMDAwfX0=",
"DCOS_SERVICE_SCHEME": "http",
"DCOS_PACKAGE_SOURCE": "https://universe.mesosphere.com/repo",
"DCOS_PACKAGE_METADATA": "eyJwYWNrYWdpbmdWZXJzaW9uIjoiMy4wIiwibmFtZSI6Im1hcmF0aG9uIiwidmVyc2lvbiI6IjEuNS44IiwibWFpbnRhaW5lciI6InN1cHBvcnRAbWVzb3NwaGVyZS5pbyIsImRlc2NyaXB0aW9uIjoiQSBjb250YWluZXIgb3JjaGVzdHJhdGlvbiBwbGF0Zm9ybSBmb3IgTWVzb3MgYW5kIERDL09TLiIsInRhZ3MiOlsiaW5pdCIsImxvbmctcnVubmluZyJdLCJzZWxlY3RlZCI6dHJ1ZSwic2NtIjoiaHR0cHM6Ly9naXRodWIuY29tL21lc29zcGhlcmUvbWFyYXRob24uZ2l0IiwiZnJhbWV3b3JrIjp0cnVlLCJwcmVJbnN0YWxsTm90ZXMiOiJXZSByZWNvbW1lbmQgYSBtaW5pbXVtIG9mIG9uZSBub2RlIHdpdGggYXQgbGVhc3QgMiBDUFUgc2hhcmVzIGFuZCAxR0Igb2YgUkFNIGF2YWlsYWJsZSBmb3IgdGhlIE1hcmF0aG9uIERDL09TIFNlcnZpY2UuIiwicG9zdEluc3RhbGxOb3RlcyI6Ik1hcmF0aG9uIERDL09TIFNlcnZpY2UgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCFcblxuXHREb2N1bWVudGF0aW9uOiBodHRwczovL2RvY3MubWVzb3NwaGVyZS5jb20vIGFuZCBodHRwczovL21lc29zcGhlcmUuZ2l0aHViLmlvL21hcmF0aG9uXG5cdElzc3VlczogaHR0cHM6Ly9naXRodWIuY29tL21lc29zcGhlcmUvbWFyYXRob24vaXNzdWVzXG4iLCJwb3N0VW5pbnN0YWxsTm90ZXMiOiJUaGUgTWFyYXRob24gREMvT1MgU2VydmljZSBoYXMgYmVlbiB1bmluc3RhbGxlZCBhbmQgd2lsbCBubyBsb25nZXIgcnVuLlxuUGxlYXNlIGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGF0IGh0dHBzOi8vZG9jcy5tZXNvc3BoZXJlLmNvbS9kZXBsb3lpbmctc2VydmljZXMvdW5pbnN0YWxsLyB0byBjbGVhbiB1cCBhbnkgcGVyc2lzdGVkIHN0YXRlIiwibGljZW5zZXMiOlt7Im5hbWUiOiJBcGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMCIsInVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9tZXNvc3BoZXJlL21hcmF0aG9uL2Jsb2IvbWFzdGVyL0xJQ0VOU0UifV0sImltYWdlcyI6eyJpY29uLXNtYWxsIjoiaHR0cHM6Ly9kb3dubG9hZHMubWVzb3NwaGVyZS5jb20vYXNzZXRzL3VuaXZlcnNlLzAwMC9tYXJhdGhvbi1pY29uLXNtYWxsLnBuZyIsImljb24tbWVkaXVtIjoiaHR0cHM6Ly9kb3dubG9hZHMubWVzb3NwaGVyZS5jb20vYXNzZXRzL3VuaXZlcnNlLzAwMC9tYXJhdGhvbi1pY29uLW1lZGl1bS5wbmciLCJpY29uLWxhcmdlIjoiaHR0cHM6Ly9kb3dubG9hZHMubWVzb3NwaGVyZS5jb20vYXNzZXRzL3VuaXZlcnNlLzAwMC9tYXJhdGhvbi1pY29uLWxhcmdlLnBuZyJ9fQ==",
"DCOS_SERVICE_NAME": "mom-1",
"DCOS_PACKAGE_FRAMEWORK_NAME": "mom-1",
"DCOS_SERVICE_PORT_INDEX": "0",
"DCOS_PACKAGE_DEFINITION": "eyJtZXRhZGF0YSI6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi92bmQuZGNvcy51bml2ZXJzZS5wYWNrYWdlK2pzb247Y2hhcnNldD11dGYtODt2ZXJzaW9uPXYzIiwiQ29udGVudC1FbmNvZGluZyI6Imd6aXAifSwiZGF0YSI6Ikg0c0lBQUFBQUFBQUFNVmRDM2ZheUpMK0sxcWYzWjFrMXRnSVFtYnd1WHQzYmNkZ1BKaEp3QWJNWkRhakZ5Q2oxNVVFR09ibXYyOVZkYmNlcUNXVDdOM2RtY2tFbys3cTZ1cXFyeDdkYXY5NUVtakdTbHZZM21Kc2haSHRleWNYSjgyeitzbnBpYWU1RnZ6Z2FxRVdMK0g3MDVOTjBrSTlhNTM5RE4rRWxtTnBrWlYwYmZ4MENoMXNMNFkvVmdnTm8zVVErR0g4bjY0VitWR3d0RUxyelBhaG8ybEZSbWdITVNOM3FSZys3NlA0b2JHMG9oZ0doV2RLNEdqeDNBOWRCZjZuM0NNUlJmTk01Y1AxK2Erak02QVRhNHZvNU9LM0U5dXpZL2pSOGIxRkxWeDdIc3puNVBmVGt3ajRNMkxMUExtSXc3VUZQeHN1RExlTTR5QzZPRDlmMlBGeXJaOFp2bnVlOG5jdUpueTJJSkpiUzQvc0dDVGhyUjNuOUdRZWdsaTJmcmdTSklQUTZubFJyRG5Pd0k4dFlPWmtZaW1oQlVSZEN6alZGQmQ0YzlldTRzOFYzN01VenpjdFpRc2pLMXFzb1BSaXBhRmNmM3hVb3FVV1dteDZhdmNLbXc4djd4VnRvOW1PcGpzV1NTQmVXc285NTQ4SlFSbFo0Y1kyTEJSRzRFZnhBUy95eHNwU2l4VGRzandsV2h1R0ZVVnptTnRPc1ZsZnkveW56eDc4RzMvd2pUVk1JcWFsdUZDRTJFemZpTTR5QzRyeUk3WkZnOHd6TG1MYlQ4U0toSHRSdExhaWxHTDFRcHpiMVB5eng2ZjQ2Tm41U1Q2VVNpV2Q2TnBMWmtlOGJtM0hnYlZRVUdOQTYwQm56ajU3SDBtYlFkS080MjlKMk5ncFhCc29nQWdYckVvR3BoVTQvZzQwcnhheDBhUHpaTlJ6SmZZVkE4Z0RKd0V3c0ZNQ3RKa0lkRk9CQnFCZm9MelF4WXR3UnIvOUthenZFc3dUMk9pelJ3bzNOS1ZCRnJvT25hTzErVngzZkIxK2doSEQ4Mzd2K21Zd3VqbjVDaVlDNnZuQjhLUGhnU1dEaWFzNFJtTCtGMytlYkJxWFFYQy9CbjZCcHdmTFJlTkVKcSs5NkpmZTlhV3RUVDdadjlxWHR0V01ubzNHZUdlNnp2TnMxUElNdDYwYXQycmJhc2I3MmZTdW9VMEdUdDgxZDNwenZKMVA2eHRvdjNtOWZXdXBUOGJ0K2FnWFhkdVhpNTQ3MkpyVGV4anY2aWVyT1hBTWJ4WThOUjdYVDgwcjFXaXE3ZjZsditoZDM4V3pTYjNRQnVqRU1DNm40NnlONW5DcHUvQjgxM3ZmdTQxL3l2QVM2TjZnL2pScFBjK21BeGg3Uy9OOGFyU3h6KzVwNHF6TlcrSkJuK3p1ZkwwNXFPdHVKNTRCanpEMitHSGxETWVQai9aMHpNZnlyamFHTjl6M252M0ZaSXY4WFM1UVZ2cWtzM3VhRG4yOThXNnQzUTdyeHJXNjFadDM5ZmxVL2NscXFFdkQ3ZFMxYm52ZGQ1ZDE4L1l5TnJydG5VbnlpVGFWZmRWVy9EUzlXNXJkNVVhM1c3NTVPOXoycDhSRGUvNEFNdG0xeTU5L1l2ejFyeSszeFBzMXRoOWsyKytOeGpiV0d1TVd5R0pqdUkvQUYvQUpmSDFEKzczUk5PRnpkcnhDUCtMTDJGWEo1R3FmOEQyTmYrcS84bnpxVmp3dmtVczZmaDExWUlGNmtodkhHK3oxYXpXY1RaMjlDZXN6RzZuYnArbGdiemJnYzA0bTdhTmxPT1g2Wms3dkFvbHVxb2JyN0ZNOVhqcFBrNWU2ZGpQd1o1TkJTTzA3RWVlVi80MS93TzZld0o0ZXUrT2RObW12SGh2alo3M1JXbEg3RHpmdjdqOWNNbnJVL2c3MGY0aDJzOVE3QXdmMWZrYjZmdmx5ZjczTjBGU1gxczFnQTdiaVBEWEhkVzA2YzRadUo5QnZ4N3NaMmVqbG50a2p0YmRwanRjdzNuVnZZM1NkOVd6WHk0NUpjaDVOV3F2WmRJRjl0N20rdDNjYmtDL3d2Q1dzR1hXR2o0L1h1ZjUxYmFJNmdDMzEvTndldVN4dy9hNU1qZy80dkk1MlBKdjJDQ2M0SGR1OGRiWmd4OERqM2MxRGZkQWZqbnQyd29jNzNEdzFZc2V3Y1UyeXNuWGlwNG5wb0gzM1BGZ3JkN3dIUG5hRVM2QUxzK2x3MzNkUlRzT2xObWxCLzlaS2J3eEFaM3ByNEhrNWEyVHdqYzBGK0JvMlFSNGgwVnd0UHo2cW4yeXVTNlFqQXBObWsxWUQyMWdjVjNxcllQSXdibjk4N0F3ZnFLK3RQdW5UQWRoTzBOQkhMZENSenJZL1VXRjkxYlkrdW93blhmVWQ0TzNmVExlKzFycmpKZUFJNk9teVBaL1VDYU0wYnhiMzNmYld2QjJRRFIzKzNHZDBOOGJ0RUhYU3p2TDIxRkJYalArWHUwL08xUWprMlhsVUIvUEhtL1pvL0tHK1luL2ZMTzdzcDBYZmJvTWZlYmRCVERhOFR3VjhCTjFGTE43M0p5VEhIZWdCeVB3bDBwdEdESElLWmcxbkRlUEgvVW5uK2FreDNodHFtOVlZZkVvMGJYUWl2ZHR1VHNFbXRZa1o2UGFWZ2V2MDdmUlY2cGZIR1Q3ZVRrM0dBeDVvdlA2RWp3ZXlSaHZ1NWZyZExVR1hWSkIzQkxvQXVPQnNzRjEvcE5yQVMyaE9yK1pBNHhuNEM0Qy94ZlQ2N2dELzVQMnBYUjVyT0wzTE9LWFhBbjByNE8wenJQK3oxcnphZ0k0aTNpMkFsOXgzaDM3bnFRSFkwNGkzZWdQOUlmbHRxK281MEZ0cDA4SHl5WDF4cGcyT1Y5MDJZczBoendWZUR2VmhCczkxeEpDUnVwbTVNN0FwZFdWUy8wU09LNkFmb2IzQnVyc3pkN3liTm9ZcXlXL1NYdmM2VzRoWDR1eVlTWHRZTjJyZm42VHQ1V3MvaFBtOUJEcmd0OTRBTHFhOWVBYllWeUZqR0dPMk5BR3Z1WjV1emU1NDFaL2VPVVlEWWgrSVJlRHpSdStPOTB5WGg4N003YWo2N1hETzlQT3FQcHNNNXltK2pPZW9iNEMxRXYwUWZUL0ZhZDlQY1FhYll0WVg3SGlNc3NpdkxjalhmWnFPSS9OYUJUMkRHT2tXNkYycmdPdUREY2daL0pBS052TGlZTXhWMU8xMGJOMGQxOUVYYWpzVmJFeDFEdWVWUEZmYjlGeStMa0ptTGNlOHhiZ2hpaW5lbWtyMXZiSzloTmZBYUhSc3Zmc1lVeHhWMEZPS0V3cGppT2Y5Q1QyWHJiVURZeEpkMEtXbFNUNFJZOGs2eEtZdFRudm1nTHhWWEJQSnZPWDlaV3ZGNmZVbktUMnB6WUN2NkU5bmdLLzNNZmhUV0FQbkhWdVA4ZHAwMmcwWWV6OXRYdTFBZm9GMVhjUkllWCtaWFFBOVd5VjZFRjh4ZXJjeTJZOGJRTFBlbnc0QU44ZExmWVMrWnhHakQyZXhPZGlSQy9nN0FYeHRkTHhFZmhCbkFHYk1NUllIZnhaUGdhYlZhWU5lRGlFRzY0RHVBaTZvN1JqeEhQMnlzWlBNaFdpQVBYQWE0Qk9YMXJXYXA3RlRVeHBOcWE0NUpzNzFXdDJiSUkrblNSMTQ3YndEL0ZEQlAyTCtzQUk4OFlBMjlCK2duNWV2eTNSSjhSUDRHVDQvOFhOUFl0ZmpkNEJUS3NhYUpiTFBQSmVNaGZGWnQ5MUFyQUtzQkYxRVhrbm5YWWlId044QmxqcnRKSmFTNkdYYXpsYVRkbkplWmhEdnZHeE14RkxFeE1rWTVRdHp2QVI1ejNabzd6bmJMK2hIcGsyQ0g0ZDVRRW1iL0RxNUJ0bC9IZ3NPL2RYTXU4TmNrK0l1d0E2V2QwNXpzZmMzMFMvT1o3bmtmdFYvS3VZclMxbnU5alF0NE5HeWtQOTFPMXltUzR5ZlNtU1pQcFBrVXZsbkIzbFFrdDlLWkFiOXdWNUVqajY4SHozZWZYcGN0VDhNeDRPSGFkMzVWT1ExMjE2ZTg0RnZYTTNBbnNCbXlCNElsenZ0NWF3N1JBeVVZV1d4bndRbmVaNmMwSkhaQjI4RHNaeTZSUncxR2l5ZTZGMG5mQnc4aytXZGx6SGtUSVNSd0F1TEJhVDVwNlFkMm4vWEFjeTVpMmJqTnMwTFlxV05qamdLUEdNc1VqS3ZJczlGSFdCak5nRzd1NEJiWFdlcDMrWmsvQXo5VjRqSkdzU3dNdHdVWStYYXliR1JyOGtBOEhXSWVCMUFQRjBsYzhKK3pEVUIrM1lHdzFXWWMwZWRvWDlva2gxd2VSRGVZN3o5RExISUR2bVl3cHlNNlJqa09LelFEOEw0WEQrS3ZYZy9PWVl4bVRGY2gzVndCNnJoM1RIZjRZNWZUUEJObEFzeCs4TllZRTUxbXBKNlJyWWVVVm5EcWFyUmxPaVNxQS8xcm9lZkh0Uzd4L3RpM1NGUHA4eitwdWpMWG1JV0cvQTVvWC91MWlYK2lJOU56OVVxdTBNL0crbHlYR1MxR0puZDN3NGc5aDJ1U0svTDlQSDJQazdhVk9naTVHaVZ0Zy9qUXU0V094Ym9HNndEeE9KWDJEL0hTOVhhL3AvVnFrYVhQSGZ1TGFTeUJubVUxUXJMNTFpWVV3VHhQK1J3QzRnVDJ1RnM4ZzdYMkVVWmE5ZHFXaDlpc1FOdnU1eXp0cTE1MHJiVFR0dEtZa3E5QzNtQU8vQWhQdGhvamZFYWRRLzhNT1JEaXhoelA2d0RneTVLOWVyb3ZxL09yY1h6clJmSUd5RDM3TFRyZWlNR0c1ZmxWYnpOdGNyYnlIM05JVy95UE9rRjdHeUljUlRnZHZ1ZE5TSnNnamg3UURsblBtYUMyTEk3QnYyRlBCWmlkTDI1YkpGZmNGc1FLMUsrT1UvaU9hbWNXVitNeDdFdnd6TFI5MTB1RnBUWVR6UkQyNFNZRWV0dzF1MktjQnB5dDJmS3QzTnhZTkd1Q21NVHZudzZqRC81R0hkek5vWkRtRFByVk1haUJiNm96L1ZyY1dsQjdvaE5xN3k4aXpwVEdJdHN5ZkYwbCtxK3VUaEpPaDlvUDIzdzl1RGIwMzJESTlaclNuWG1ZTlpvVWIwNEYwZEo5ZThiK2t2bWlqVWxuZnNqOHB0OGplajdUcHUrSno4czFiWDI4OU5reXpCSTFCT2xQRXJhdmM1THdPczdoN3hJNjNxSFl3QXVITVVMdFpQeVlub3NwM3ZCM0MvaXVMR1pOVXpJVmMwNXlCMXkycTBNTjNnYkkyWnR5akN0N1dHdEVYTFBpSEpVYWQ0TXRFQjNucVlEUHhtZi95eXpFZUFaYzlxOVZtTGIyZWZGc2VCekUvR2JaQTc5Qm9DcnNydzBiU2NaZy9lN2s4bVV4WDNUcXkyUDhWQVA1dlN6eE4rek9LeXpOVzVMY0RmN3ZHUXNXRC9LOGJGdUMvYUJPTUJxaUY0NmZyWU40QzNteEx6T1dNWlRkajlSM1NKT3NKcmdYUVdmRlgwa3ZHUHREV01Zd0NlZnhkNXAzUmZ6RTZ5VEFLYUE3TWF3SmhUZmkzcHZZVDJxYUIzbWVJd3V4RmhGdW9mNUNxT3J0aVYwRHpGWXhab254bndxOE1UeWc0YW90VktPWEU3TGFRTnVPN0Eyemhac3R1aHZTdmw5aDlnTk5qZ0lqRzRuS3NacDVUd2hqbXJvOXlGZTBpVngxVGVObWMveHk5ZUMvSk9ZNTh1eHRZamo2WDJManRucWZvYTVuSWhGeW5WdERqeGlmaWp6MThmUmw5cExoWHo1ZU5MWTQ0aCsvY2tzQUV3K2VsN1RCclovbEdGZ2hmN2dIdW1kQTc3RjFjQjN5T09TYitsZk1WZnZMcGgxVFNlcFlXWG54WjlORy9pc2FnNTNvTzlERCtJYW9XY1YvQjYyTGVjdGpVdkdBZnpaOGZ4QjJIb1NNNWtUWnc0NWVsU2hRMGs4Wms1V01iYXQ1akdKK1ZSdHBLcUcrOEp6ZHZaODJzUjlsOGRTdnRsZUNXR2pqQmZhQzZtd3hmUzUzUGJUNTluektrbk5UVzRMZ2llSnoyWnpubzczekplazYyK0NIc2w5R0tOSnowdDhPT2RWUlF3cVdlTTY0TXN6NVRyTUgvR2ZpMnRpQWlZK05RZVNYRGZ6ck9CYmhxQm5nNzFFSHVtNFJWbEFYSWgxcEZsZ0p2dDBkM3YwdldZWHNiVERZemhvNTdSNXUvRmN0SnMyMG5ZeVhkUllYdHpBc3c5aTN4QmtsTXVQWmJJOHBsOXhMbUpmRXZDek8vQXBEajNNRVJuZmM1QlBIZkp4aWtrcjgwSytiNW0yTjE3TEJjVitLM3czZk5iWVBrbDEvZ2RZTzBQN2E5SWVJdFlvdDBEUEtmTGVtaWZ0T3UyazNiUXAybjJTNEJYOG1Zd2p6SmxwZnhQclI5ME81bU92NUlESDlKUFVpTG92S3NibkxIK2VFZC9pTzVhUFB4VjU5SzRpazg0ZFVIN3ZTdmtwdEtrYWV4andXSFdyMzQ0eEg1bURuZXdrK3NtZnYwTTdrdThYcGVPdU5IbmNDYmt4MVQzQjV6bkNWNE9lT0ZUN3hiMWN2ZHRwa1ExaFhvLzEyNFlUd1RQeVcyZy8ycFJxdjhEak9IcWFyaVR5S2ZaRCsyVDl0akhyNTBqakF0QVJxdWVDVHd5RVh3ZDVCRlRidnNZekFDOUxTNGFSSldQbU1LRmtQaFY0SUpkVk5SYTgya2ZHTytXcFhUcWpBSDA2SzhqaG1DNkN6V0ErakJndzY0Sk5UNGFibVNTUFN0djE0cVNkdkhZS21FaDFSenBqQWYzQmY3YzlxWDVtYVRidmxrWjNDZXN3THZLVlBKUEVIN201bVVEN3lnYzlrTWNmcFcybHZCMWlMYzdMQVhuVHV2TGNzNGovdUsvUXhiTnRGQVBLOWhhS3ZtV2E3MVBHTzhUeGplVDhDdTZwZzR6QXh3VXNYNUxtcjN1SUJ5UG9zelNvWGk2eEVaUTExa1c2WTVaRHErM0VWcWNOWnF1U09ieE9WMlo3Tk00ank5MTNVa3dvcnNOaG4zd2RtZkV4YmhNZnI5aGFnZWZVZG1YeUhqd0RCam1zTm5EL1duMTRqN21KNFFsNVFoNXdleWVWVzlKT0toL1dUeTRIOXF5UDlzUmpIZkVkK0R2NFRsSjc5Z2FZRSt3czhGRlBFN05Fcnc3YkhMZlBBZC9odnZlSzRkNWdyM2ZhNlpuV2NUczkweXFKSWFycFNYbXNQRE5ieER0Wis2RmZ6dXRRVmdjclBYTXJ3YnpTdGhMZTJKd2hqOFh6YnJ4MklYZ0JuUnY0czhQOW5rS2ZRbDRnNXNuN0g1d0JhTEwrRUc5US8rSWVEK01aN0FQUDBjbjBHMnVGWWJMZndmWkVYZkQvOFdGTVJuVkJ5TXZFL2c2ZEJYYWRuVDZ1ck1zZlIxOWlNelRlVGszMlo1THhYb25MRHZzZDdDMFFQOU5HdXIvekRieFh4NUhlY0drMG9qaXozMU8xaHlCb2I0em1KenpuczRVeE1HOHVpYWVRZG96blFQZG1wKzFZdDFjd0J1YnV4OFJVZ2kvb2U2MG1mWS9GZGlGUDNLT0FPUG1kY1R0ZXp4cVBSOFpXNVdQbjQ2dnkrVlhnZnJrTXErT3NvL3FWelFYM01zbGZUSXY3WllsK1lheEE5VGtlSzFibExVZlFMWjNETkQvT0t6clhuRTN1TWpVUHNPbkcySzZvcitUYnkzU0Qrb3VhQytIZGUyMVhHUGU5MWl6VVMvaDNlWHFXR3hmckFGNFFncjI5MS9iK2h1d045eFpFRFdMdjcrNGZGaS85NW5pTk1aMEJQcS9mUEtvMlN1TVgxemdJS1ovTG5MRko1cVcrY3Q1SDJyZUE1eUNmNHZtY1BLWUg0V3ZuZkN3M2twd1hrc2o5Y0N6Y244VStEWGplWmJnT01wOGYwSnBEZnh3YnhucFpTZlRpZGJvU1hTbnlqRHFlamlQRGN0Nm5iSDhaY0lQTDZzaTk3MnA2TWt6bmExcXlQeTdYSHpwYnROWWh4b2FZSkxEY2NTSm4zT3VaTmxvYndOczV5TzI5Ykw4WGVXUjdRdGdPNGcxc0p6L2ZqT3ZBenNtNjdSWGcxMTZiQnRLY0o2SEpiSVRuSWtKK2RJYXFnZmtLNVQrU0hGSGV2MHhlTlArVVhwbWRZWDB4MFlNY2hxS3Q3WVh1VjJObk9aMFNlU1YwWDhGS2JGdlV0VmQ1cVk1cFVJNDUvYkhaK3pIZzUyM3dvZnY4K3p2RER3LzBqa3pudzZqZXVSMk8yOTNIVldjd0hKc2ZIMWZ4L0FFL3MvZVREbmt2TytONlJKdUQ4K1FsNTJEemRkcVNjN2RIMUsrbDlOUDNuK3poemVEam85cCtHSTd2SnFQSFFXZGFiMTA5UEQ3eWQwd3IzZzJWOVZVSEgwWTNZeUV6T3FmRjVZL3ZXZDE4cXJjZm9FM24wWm5kZmFxUDJidEpuZmJkdzJyWW1iQjMxYmE5aFUvdmo4MC8rYitjZk1XMzN5Ti9IUm9Xdmh1clJaRVZSL2hwSGRxUmVGczhlYTBkSDVpK3NXS2ZiRmRiMEx2MXhmZDBMemJzM2ZxdlgyRUFha2RFYmFCVWkxek55Yjd4YS9wYnovRTFzL0FtTW1NRzN6N0dWL2F0ODNxOW5neFFTMG1kQmQ3aTVKVFJkaTNUWHJ2L0dPS01WcGE2bzRVMDRYOEFjU0xGYVVkR2FGbGV0UFJqTG5HUW1lSFk2V2ZmbTlzTFdoN1R0UEVsYnMzNUdQcUJGY1kyeW5XdU9aRjFlQmxCeVp2a1Fkb1BYL3BQaWZ4NXdsLzMvdDV4dENCUUdLZHJjZXRCMHZlc01CaDdNZnpQQTJMNENqdyt3V3NENHFVZHBlL0RjK2J3VFhiYnRQaWtkSHpOWFRRNSsrejE1b3JueDBvVVdJWTl0eTFUOFdOWWtxME5YRE55Ukp2ZW1ZZXArSXB1S2VzSW1vazdDWkpiRWFqaHFXSWFmcFNNekw3YXI1UkF3MXNQUEZPaFJWZEMzN0ZnN0FkZmdXWFVZa3ZSRk0raU4rS3g0YWtTc0xmeEdWTTdlTG9JL1hWQXR6N3NBdFNtS0E1dDBnUFRtbXRySjg3Y1ZsRUQ5a0tVblJiSFZvZ1MrcTgzYjM3VGF2dDZyZjM3MzhVSC92Zm56N1hmZnhUZnZmMzgrZXp0ajBlMi9XZUVBV0pMdmlUMDZMdldSSUVsNFROV29Ddk1FR0RFUEdXWEVwZ0pTVUdKbGtibkE1NlRqaFRGbEJIR2IrZS8vMGNxa0xkdnBMT0RyODkvZjczVjJ4OUpERWF3anBnVStHSTBEalUrYzh0RjdJTWlPYjZCeXc2ZkxjMVlwdUtoT3hNOGRxY0Z2ejNqNUtLZXpNZGJ1em9zTGd6cFdtNXVSTFhWZkY4d004djF3NTN5NXY3cTdYZU0ybElia25GRjAveDgxY09oQjlRQjE2b3dDRWtBTDUyUVQ5SDJZbXZCeG1MdUpEUE1iNzhmanRPM294aEhlUnoyZ081U2l4TjFFRGpMTDcxdzRWUG1SaEhiSTNVeTFtRm9lZEFKN0JjVVJUSHQwREppRkZxRzh6T2xBN1p1dldndW1DWFRQVVB6RWlDQTJZaXhRRzN2WUF4bFplMGlvQUxnWVBQYlMwYWpmaDdvY1BZMmhNWTB3YXgyZnY0Yy9mNXZCUTMrbW55aGhhRzJPL2xLUHZodmErRFh4RXRnU0FPWlZtVFg2UGVrbTY4L3c4eVF6dlBHL1VhNHZodmZsNkowQWFTWGxoYlVZRjN6OXRDcVZFNWdOd1FJdHZmcFZTODRKcEk2VXg0SWhKaytnYjliT3lhS0h2NXpyQ2hTY0dYK3RnYXVjZlhab2pJT3RKZlhGVXkwelBINjAvdWZxM2lGNXQvR0tiR1pNT2N5VXNJV1NYMXlWOXVJeFZQZWRDMklualFIYk1XeExwUlcvVi9ldmo0alA0aWpJaDVmNHFVdWtaSXVPVEw5NWRlUER5TWNIbmdFUCt5UTcxdkhCTXVFc1JhdWkyZHFJVmpQQ3pPaXFPaUNEalV4V2YrTWVHVnFtTDFkUmE2TDdKS2hrc2dCTHhsQ2xoendEY3JjMFJZUnl0OENQd0lneTVoSHYwMVBHRERnOXdFR1dTRHpKZmlLeFJJbm54RGNMaTFQY2JTMVp5d1JDWUE0YUpXekEvL3V1d3dyTWlPZVFXd0VFR05CaEF1YWh5SGN4WEZYQU5IdE9lZWNWQTFKMVJqenk5aDFDcmFrMFExRk5ReWxJV0tvb2RKc2EzNW9MNFI1SFRwZDl1eE5sT0Q5RnBFdUJiSUJSanBXck9nN2hldjdtWExEZ1cyak9XdThoQW5FOVBua3g4OG5wMmhibnlsdWhWbWh1anBMUDRvdmZvWi9UaFgrdGVuam5WY1l2MzQra1lHV3JobXJkVkFqWmJmOUVxN0ZVd1VBWDZnZTYwaFhCMUdFSkZFODhMdEx5MWdGUHVoL2tmQ05oMEJ2WGlodlByQ1p2bFhZVjByYUN4Y2F4OU9pRmFqUGtHbHhkTkRBWW9RVURGNGNiUU9CcWNMdGlmb1JpejQyWFZzS3YzOUxNZGNoS1JHcVFvMTZLVUFZVVk3ZGNyVU9GaUU0cEVqNVlFZWNUZjZwakx0MCtycnY0MlZLMmRnUExlVXIvbXlRUnZuenVSWFdUQTdXUmRFSWlWd29hcU1PK2dEc202QXl1QlNpay9MR0JUOXFKODhRN0xaTDJ5Q2I0ZU1vTkU2VVVhYVRBaVJsbUlTeDRKK3Z5VGMxMU80QUlMQW1rc2thaHNVUytPTHNKb2pMQ1Z6eS9rUGVmWWk5RlhDbG9hMnZZd0l4RGFOMnlERW9oclQ1VlZid0h6UG1XbVFGYUJvV0dqV0xJNWh1UlJ6TCtVQWlacU93UGNyS0loZmFKc2lOQVFKM2x3emdJYWl3SUt2akFxc080Mzg4eVlqSXMySU1UV3J5ekdmQW52SXN3L2FlNmNJMytJRHNJcUl6czRwK1NPK1lxN2w0QnhzbisrZFh5akE0UHBvK0pVSXMzRVk1MnhDL2JUMmlMclUrazJsc0RhRkFzbWhjbjFHeUZoa0Z5dTMyNGVHamd1NENyQUdsaE1nVFc4N3VqSjZNVUhSclR3TXg0VXlxbFo1Q0ZXQ0QyV2R0RGlnQjhwWjV2OUxWRm4zQW90Tzc1dmgzQ0lRWGFCd2haT1ZLVFlBSHY5V1BKaU1lWmlCV2VXTzlBSURiZEhlYzgvWVV3a2FNN0RUbnk4WjMxb0FIS1NYeFJCRlBCT2tNdVZObFl3ZVpQbnpoVUpyajNzZEllZXlkS290Zy9VVllVQW1qWGNnK3FwaEVpUG15UW9NSHdna0ZORFUvNEFIRHcrWG9seSsvOVByOTNxRExybTA3ellmVDdJYkMrbG5qWjBJNHZCOHRyRlIwbk5scGR1UVRXc3hOYmFPRlVTMElRUTlmaW92NWtiNUhvMXBITEFhRExuYm9lemdaOEdHaGpReEZxVFZvNnhoOFZBeTJ3Tzc1NDZaTVlJeldlWUN1cVhwYkc2QllnNTh0emNVb3BvYkJFUVpFZU0wZHJGY2tDbFJGaDBaZEZkWlYwZGNNSnVuTDZEUU5SdERhTkFmYW1EczAwQWlVd0VRd0JYREZsdmw0a3BsbFJJdmlKY2tWbzhsSUx0Q3YwMWpNV1ZFTUJEa3lCcU1RMDUxQ25EZkhuRVN3VGp5WUVHOEVPVXVUSVhlOThRNEY4bUlaSU14UTRtdjVFN0VzRkV0NWVPVWo1dW1pc2tLSmZRb3hKb3Q3U1cxRWJDV0dJQnlJbURoRW9GS3BUT2ZuaG12aXFzMUJKWDJZY3kwRzlZWVZxL1IreXRheVZzenhpWDVmZUQ5U0xWYXNzVDNoSTZ2RjlMNys3bWR5Y0VsSnFBUzNVdzU0RGVNTTI3MVZPcmxTRW5NY0M0VFBrTjJhU2JLUzZ1cFNPeW9BR3E2OXJMdFNiaThWTjdtVEUvRFZoSkhvMmxCTVVFV1VRNWFDd0FBWmpCYnFkaHhxa01Da09rajFzb1FzaEFQcm1Dek1zNWp6MDYzRTJOSWh1WExUNktHSXU3UWtmcHI1L2krV0JSaVZDWkFPbVkrZ29jTXZGU1dTeDRSSUdNR1dseEUxYzRQQk55cWVhTWhzUzZpamlFQlFYOWNlOTY5TWZLa3lzNXNtS1IxaFFUVjJwOW9oRlFWTVVYd1ExMkFTVktCbFFndk5ZK0lrb0FIbFJ6YW8yZ0Q5cURZaDhrVit1eXRmTmJsU2dGK3VRV29Gb2kzQktmNFFhVEkzamJoUmNOT2x0TkY5WTM5cGtGa2VmMk5mSmRQM1RCSUZGOXNjdGJyRUZZZ0taR3FEeEl0Y1hhY1BhYUlzdzBLVm84b0JqaXBzRXRIS2NvTjRkNHFYbGlLWTRUcXdEdFNhaEdSNUpnWHJZQzZvSWlIcXpBV21tV0RIV00yMUNjdlEzOUp5YlRFdnBONmlzZUt1WVlrUkZubVFwdnh3OGNNWmFQb3VxVGVudGVsRTAvNjR2eG45T3ZwNGV6TzgrWUo4ZkxrZTNueTRHVHowTHZ1alA2UXVNU3ZCZzNWRTV3YUQ4MkpZTFZsM2VhazlNZnkweTBGWWwzZzR5a0FSeFpubkNTMzB5VEN5QkVjRkx4aXp5QWVtYU9aWVRUMGtDMTdXY2VWMEFkc2hXNHQzQ3JWUjNtZ3JUZmtCdU5kK2VBdTVRdVFiTnNXTWllaXorbFhsa3U2VE9vRGdJdm9mV09Nb21XU3ByVWZmSmJ4UnRmUllSYVFXK3l2TEF5bk9nY05sRForSEFHM3lzY1JUeUNFaGM3UzlOSEhrL1VtTWpMQkNoR25PdFJyNzZndDk5Y1h3MTE1MVF0bmsrV1NXUllsbys3bUIwS2NrN0ZjSFBVU2I0QldpVWY5bGh6YmlNZWRZSGwzY2F5OTA1VFUyd0p4TXllYlJwempQcldhejZFS1FRL0R4YytYb3hNMXhuMHcxS09FYXBGWDc4bm0wNnNXSllNejUzVk5BMXBFQXBYUkpjVXpPK1d0eHBZUzNLSEpxOXNJRHZLaVZPK3NQTEZjRmI0M2JZNFEzaE4vQ2FmTWkwcUVjSVEvQUc5WlpadU1sdXdCVW5FZkhQN2RwZjRUQ1YrSUc1M2o1c1plQnR2eENGV1paa2FkU0JZMU1OQzA1SDRpZG1TbEgyR3dzRFRnRU1rRnVGbzZ2VXlZRDRRZndsT3lDWVU5V3B3aUNWK0pVVVlmSk1pUXJLTjZEZVA1UEdFcjB3Ri9nYmZ3MUI5SWFDYmFNSU1IaFRSUnFndFI5cWtOZFlHa0ZrdTB3OU1OVHNMRFFROFdkKzZlUVBlanJCZGhkcUJtWXNUcU9ERDJCS3BoU3RKU0FCendCR2hGWUtZdjFIb2M5VkJ1OG1CK1U3czNhRFA0ZUc4SGZRV3ZmWHB5Zi93VTE4SzhYZjhISi8xVTJFb3NONWJqNU9Pd25pcHNKSkN1ZHpINkZGV2NXY0ZLMmN0RlFmMVpaRFpxTjkxTERCWkNQNkhKTFQzMTZ0bXpFN01xRlFFUzNlQlZXbGlqeVVaSk5weHBBTEN0QnluVTgzUWNNYU13NXhzcmNvTmxHa090VGpFUTdKbWtHekxqRG9uVGdteGtxZUl4QUpBT01Xcld5MGVZcDFtVzFOWWphaSsyeTBuUVN3VTV3UzVIS0RVbUNsdStMSHM2eGttd05GVFJOMk5qSEFMNDE3QUM4SXVhNVNWbUZsWkN5RVhBYUx2TjcrdVB2SC9vNFlKSkpvNWJ3ZTN6NnltWjdtV2Z2bzZBakRWdWtRek9aU0pSSFJuL0VCUGlOeEd1NE1Tc3BMdUVwRFlRc3RuSExBM0tSSFh6ZitIcG9td3VycEJLUVA3c2locmdlOUVTbEw2bUNVTHhmd3pIU1l1NWhtUm4xaEExblppcUYxWWRHTWp5bVBIT0h2TFpyOUhzV1pGeFRZb3FxVEI3aWpYVzJPRXMzaTRqS0Y5b3RhdFZiOWM4bmIyWEE5a3BGSjhVdzRnbHI3OStxaTlpSDUreUFJNGtKVVdvWFdmRnBHaUR3Q24ya2lFcXEyTndRR1grYWd4RlJjQUZpMDVJRnRxTCttcVFKMUF5WUJUZkpOT1dISDMrb1VCTTZ0Rk9pOHZoTU5nMDVOZmhvU1BBK200OURWazJiejIrVkhrVmFaaDUvQ28rUGd4RWJFNFFOU0pHaGYxU1JKbkM0MTZJVnk4SUI2TGk4MzFEU0s4cWlrVVhKaWdWNUJEa0ZmNDdaUytvYWNxbkdVWEV3Mnh1alFCQkRqZElnK0Zkc3A0aDJpcWdLMGpqS0tQWURDQ2wyUEhTblZ0bmRkYll4bUt3WWphbG9jeXprMFJkSXJacmJKdWZXcS9GQ0R4YkVBOGhLeXpsR3E4d1dMMW1IQkx3S3UxUVV4NGt5a2hZZEY3SC96RU8xd0ZsREhJWVowYndrNGFRR0I4ZEdFRldsV3N2Sm1iYkVCbEpRcG9BMWMwWW5nODk4dUdkTnRyMUdKeFN3V21FN052TUN0QmtJd2E5cE9kcE9OZ0hVTFpZbk9KYTNBQVlRditUNUVDOXVKQUxXd1JXempCYjNXSHlUN3p6QUQvVGJuRkEzbER3N0N1NzVzNWlyV3ZwY2h3dVRLYy9HdjJrZThSYk5yWnJCMTByZ2RjRWkrZ1hjaGRaaXpmUVhSZDR3MnFXalV4aDZ4eEdvNE1MQ01ocDVFZ2lyODJjTzFFYnJQOWlXMEw4bjV4eGpDTXYvRlg4TFZ2TFZ2d3BSL0R2OUFoK0pGbkN1RnFFV0xPbFhXNVd3SlJya3VJSkFQOGNWSkZKTk9WZXY4cEdGU2VES2l0bm1kSkdmSVR5RUtCelNuUkFyVk5pUFFSTlBTUm1ndVBocmxYQmRJOHg0UUtkWjBJRHJYc1BrN2d2citZV04rRVd3OXdvR2ZjVmp4cHBqVVFieC8yRXplQ3pPRGFod1JZd2NrMHR5RzhreC9vKzNqMlBaYVFxRGlFQ05Rb25ZTUo5a2U4bjQvSlFwbWpoSzlKZGdyVU02aGdsbGFHL0FKZi8xUDFrN3RxOTNMdE10MXFER2ZqdGNZY0owR2dxa2pORWJTcFVhVTlCQ1ExL0E3QmJxQmUxYXFLZnd1Y0UrTjZRalJVNU5uSFNzaVpLM0RMOTVNVnlFVXNucFNOeWlkdkpsYmFENVJUei9nbWVoLytDNVVuSThCMUsvdWJTZEhTVUV2Nmw4L3N2TjAramhWL2p3OFhKVVZqcy9ZdnF4cEhvZ1hKY29Nb25tNHJUREcvanliWEppVlJ3MHN2a0JaemJ4L0x5U00wcC8xR29ITW1CUy91Tjc1LzV3K3kxenAwa2IrTXZRdm1YblI4UHdvOGFQUUZMdk5MNEdpb0MxQ21KWEtOc1JZcitTN3FqT3gyd1ZvUlh6Z2pORk1YYm9Wb1JXcnhkek5ZWUxlTFRhWTNHZXhjNU1qQjR1dThtWkNRRjg0cXlGSFI4SkgxbDIvMWZZSEQ0T0J2OG9OZ0ZjYXRaTHNQWWc3LzMvanJRNEg4ckNPRGJLcXB6TXQzc1NlUUhkSVFCR0JuT01IU0Ztd1JpQUFQSlN2UnR4bEVaNDFsYkpVQk5IZ28yVjUyL0JCTEdhc0xFMTNKMW5TYkxKRXhxK0hMQ3lWbnlNbG9pNjg5YlNxeW9MQ0kxdlJtOFZhQ0NxQnRCRFdkdW40aWhJWnNkRXNtTXZCYXo5cWpoWWVzZ0FnejV5d29BalNKeU1nSTc5UTJwM29WQ1JGY21yRnhnL3FxZjR1VUdmRzZkbloyZm5oUDdTVWI5M2p6elREWVd3WDlFNUIxZzZtNS9NeGhQb1hEcDBBZ0owVDdjWEN6SnBmdFE4V3h4YTRyNmI3NWd5WkMwWjZ4Z1V6VSt3bGd4VFZhaDUvMDc1NVFvUDNmQzJxSjc2THNiSlVVcWFaUWNQVHZBWWdTOTR1bWhlL3N5SExCdHB0WnJ2QlpldmI5MWxFMmgycU5makJ5N1NRUTlNNmFodERSZ2VDK1RJYnczWHJmcEkwcjBOd2hGYmNHSURQVDlydHZwdmhOeGVLWHpnNmEwY0kveDNHY3UyU20zWGpnK09tSW5XcCtMMENob0s3cnBnRVRUZXZWWjBZY05HUWtHT0xWNmtFK1pkbys4Vi9YY01tZUx4NGFESDdHTWR2QS9CTjNHS3IwQWN0Qk52VXJJWGRETHZSOGhlbnVEbjVmamJudjhOREMra2NzcDZBQUE9In0=",
"DCOS_PACKAGE_VERSION": "1.7.50",
"DCOS_PACKAGE_NAME": "marathon"
},
"maxLaunchDelaySeconds": 3600,
"mem": 9216,
"gpus": 0,
"networks": [
{
"mode": "host"
}
],
"portDefinitions": [
{
"protocol": "tcp",
"port": 10000
},
{
"protocol": "tcp",
"port": 10001
}
],
"requirePorts": true,
"upgradeStrategy": {
"maximumOverCapacity": 1,
"minimumHealthCapacity": 1
},
"killSelection": "YOUNGEST_FIRST",
"unreachableStrategy": {
"inactiveAfterSeconds": 0,
"expungeAfterSeconds": 0
},
"fetch": []
}
Comment by Dima Rozhkov (Inactive) [ 02/Oct/18 ]

Ken Sipe does marathon bind to any port? I'm asking because you can't really relaunch an app in this case in the Host network, can you?

Comment by Ken Sipe (Inactive) [ 03/Oct/18 ]

I hope we are looking at this issue...  I keep running into.   Last I installed a new component from the catalog: https://github.com/mesosphere/universe/pull/2006

and I can't edit it.

Comment by Dima Rozhkov (Inactive) [ 04/Oct/18 ]

Ok, so by can't edit you mean that you don't see the form, correct? With the definition I run into 400 error that breaks the UI:

{"type":"VersionNotFound","message":"Version [1.7.50] of package [marathon] not found","data":{"packageName":"marathon","packageVersion":"1.7.50"}}

and as I can see your PR to universe is not merged thus the new version is not on the Universe yet.

Considering that I'd say it is definitely not a blocker.

Comment by Philipp Hinrichsen (Inactive) [ 04/Oct/18 ]

A workaround could be to replace "DCOS_" labels.

Comment by Ken Sipe (Inactive) [ 04/Oct/18 ]

The form not displaying and the UI being in a non working state is a blocker... you justification makes no sense to deescalate.  The example I gave was an example... regardless of where it came from.  Our customers do similar things all the time. 

Comment by Ken Sipe (Inactive) [ 04/Oct/18 ]

this has nothing to do with what is in the universe or not

Comment by Dima Rozhkov (Inactive) [ 04/Oct/18 ]

When handling the error correctly the UI will be displaying an error from Cosmos because there's no way we can proceed.

Comment by Ken Sipe (Inactive) [ 04/Oct/18 ]

hold on... perhaps this is universe related...  what is your trigger / decision pt for "editing" a marathon configuration vs. "editing" a service configuration.   It seems the UI is trying to be clever here.  

Comment by Dima Rozhkov (Inactive) [ 04/Oct/18 ]

Ken Sipe this is the exact error UI gets
{"type":"VersionNotFound","message":"Version [1.7.50] of package [marathon] not found","data":{"packageName":"marathon","packageVersion":"1.7.50"}}

where would you like the UI to get the data?

Comment by Ken Sipe (Inactive) [ 04/Oct/18 ]

The UI has to provide a good UX... you have to do something.  you can't have a forever spinning beach ball.   

Comment by Dima Rozhkov (Inactive) [ 04/Oct/18 ]

Ken Sipe agree, though I don't agree that's a blocker

Comment by Dima Rozhkov (Inactive) [ 04/Oct/18 ]

Ken Sipe since 1.11 UI doesn't allow editing marathon configs for catalog packages. So you will be getting a form to edit package config.

Comment by Ken Sipe (Inactive) [ 04/Oct/18 ]

I would say... if you are not able to get info from cosmos.. then I need to be able to edit to marathon info directly (which is what was possible in previous versions of DCOS).

Comment by Dima Rozhkov (Inactive) [ 04/Oct/18 ]

Ken Sipe sounds like a feature request and UI trying to be even more clever. Do you think it's still a blocker?

Comment by Ken Sipe (Inactive) [ 04/Oct/18 ]

what happens when cosmos isn't available?

what happens when it is installed from the new registry and the registry is network partitioned or under maintenance?

what happens when a customer (our ee customers) copy a service def and pastes it in making a few desired changes and can no longer edit it because (s)he doesn't know the secret combination of what to delete because magic may get him.   

It is a blocker because it is possible for the user to end up in a state they can not logically recover from with no indication of what is happening or what is wrong.

Comment by Ken Sipe (Inactive) [ 04/Oct/18 ]

you have to at least display an error has occurred.... which is a crappy UX but is better than waiting for something that never returns.

Comment by Dima Rozhkov (Inactive) [ 04/Oct/18 ]

Ken Sipe that's what we're going to do. Display an error.

Comment by Dima Rozhkov (Inactive) [ 04/Oct/18 ]

Ken Sipe added related issue regarding the catalog form instead of Marathon form.

Comment by Ken Sipe (Inactive) [ 04/Oct/18 ]

I take exception to the title change of this JIRA... there are other reasons why a catalog entry could fail... 

  • user can add and subtract repos... what happens when they add a repo, install and then remove repo
  • user can remove catalog entries from the new registry... ditto with removal of catalog that is installed

 

I take from previous comments this will be viewed as a feature request...   

Appreciate the attention to this issue!   

Comment by Dima Rozhkov (Inactive) [ 05/Oct/18 ]

Post GA

Comment by Catherine Southard [ 11/Dec/18 ]

Updating the status from Integrating to Resolved since these have a Resolution of Done.

Generated at Sat Jan 22 03:16:40 CST 2022 using JIRA 7.8.4#78004-sha1:5704c55c9196a87d91490cbb295eb482fa3e65cf.