!<arch>
/               1575228147  0     0     0       13646     `
�5�5�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�_Z12cs20200_gamev_Z12cs20200_namev_ZnwmPv_ZdlPvS__ZNSt8__detail17_List_node_headerC2Ev_ZNSt8__detail17_List_node_header7_M_initEv_ZNSt8__detail17_List_node_headerC1Ev_ZN6ObjectC2Ec_ZTV6Object_ZN6ObjectC1Ec_ZN6Object10update_posEddR4Game_ZN6Screen7barrierEdd_ZNSt7__cxx114listIP6ObjectSaIS2_EE5beginEv_ZNKSt14_List_iteratorIP6ObjectEdeEv_ZN4Game10moveObjectEP6Objectdd_ZN6Object5stateB5cxx11Ev_ZN6PlayerC2Ev_ZTV6Player_ZN6PlayerC1Ev_ZN6Player5stateB5cxx11Ev_ZN6Player7addCoinEv_ZN6Player8loseLifeEv_ZN6Player8getLivesEv_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE10_List_implD2Ev_ZNSaISt10_List_nodeIP6ObjectEED2Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE10_List_implD1Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EEC2Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE10_List_implC1Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EEC1Ev_ZNSt7__cxx114listIP6ObjectSaIS2_EEC2Ev_ZNSt7__cxx114listIP6ObjectSaIS2_EEC1Ev_ZNSt7__cxx114listIP6ObjectSaIS2_EED2Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EED2Ev_ZNSt7__cxx114listIP6ObjectSaIS2_EED1Ev_ZN5WorldC2ER4Game_ZN5WorldC1ER4Game_ZN5World6updateEv_ZNSt7__cxx114listIP6ObjectSaIS2_EE3endEv_ZStneRKSt14_List_iteratorIP6ObjectES4__ZNSt14_List_iteratorIP6ObjectEppEi_ZNSt20_List_const_iteratorIP6ObjectEC1ERKSt14_List_iteratorIS1_E_ZNSt7__cxx114listIP6ObjectSaIS2_EE5eraseESt20_List_const_iteratorIS2_E_ZN5World10add_playerEv_ZNSt7__cxx114listIP6ObjectSaIS2_EE9push_backEOS2__ZN6ScreenC2ER4Game_ZN6ScreenC1ER4Game_ZN6ScreenD2Ev_ZN6ScreenD1Ev_ZN6Screen4drawEv_ZNKSt7__cxx114listIP6ObjectSaIS2_EE4sizeEv_ZNSt14_List_iteratorIP6ObjectEppEv_ZN6Screen8occupiedEdd_ZN6Screen13same_locationEP6ObjectS1__ZN5WorldD2Ev_ZN5WorldD1Ev_ZN4GameC2Ev_ZN4GameC1Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implD2Ev_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implD1Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implC1Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC1Ev_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC1Ev_ZN4Game10load_worldEPKc_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5__ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm_ZNSt7__cxx114listIP6ObjectSaIS2_EE9push_backERKS2__ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev_ZN4Game9play_gameEv_ZN4Game10handle_keyEi_ZN4Game8isPlayerEP6Object_ZN4GameD2Ev_ZN4GameD1Ev_Z5mariov_ZNSt14_List_iteratorIP6ObjectEC1EPNSt8__detail15_List_node_baseE_ZNSt10_List_nodeIP6ObjectE9_M_valptrEv_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE10_List_implC2Ev_ZNSaISt10_List_nodeIP6ObjectEEC2Ev_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEED2Ev_ZNSaISt10_List_nodeIP6ObjectEED1Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE8_M_clearEv_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EED1Ev_ZNSt20_List_const_iteratorIP6ObjectEC2ERKSt14_List_iteratorIS1_E_ZNKSt20_List_const_iteratorIP6ObjectE13_M_const_castEv_ZNSt7__cxx114listIP6ObjectSaIS2_EE8_M_eraseESt14_List_iteratorIS2_E_ZSt4moveIRP6ObjectEONSt16remove_referenceIT_E4typeEOS4__ZNSt7__cxx114listIP6ObjectSaIS2_EE9_M_insertIJS2_EEEvSt14_List_iteratorIS2_EDpOT__ZNKSt7__cxx114listIP6ObjectSaIS2_EE13_M_node_countEv_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implC2Ev_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataC2Ev_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED1Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE13_M_deallocateEPS5_m_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE19_M_get_Tp_allocatorEv_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE9constructIS5_JRKS5_EEEvRS6_PT_DpOT0__ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT__ZNSt7__cxx114listIP6ObjectSaIS2_EE9_M_insertIJRKS2_EEEvSt14_List_iteratorIS2_EDpOT__ZSt4moveIRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEONSt16remove_referenceIT_E4typeEOS8__ZNSt14_List_iteratorIP6ObjectEC2EPNSt8__detail15_List_node_baseE_ZN9__gnu_cxx16__aligned_membufIP6ObjectE6_M_ptrEv_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEEC2Ev_ZNSaISt10_List_nodeIP6ObjectEEC1Ev_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEED1Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE21_M_get_Node_allocatorEv_ZNSt16allocator_traitsISaISt10_List_nodeIP6ObjectEEE7destroyIS2_EEvRS4_PT__ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE11_M_put_nodeEPSt10_List_nodeIS2_E_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE11_M_dec_sizeEm_ZSt7forwardIP6ObjectEOT_RNSt16remove_referenceIS2_E4typeE_ZNSt7__cxx114listIP6ObjectSaIS2_EE14_M_create_nodeIJS2_EEEPSt10_List_nodeIS2_EDpOT__ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE11_M_inc_sizeEm_ZNKSt7__cxx1110_List_baseIP6ObjectSaIS2_EE11_M_get_sizeEv_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC1Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataC1Ev_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED1Ev_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE10deallocateERS6_PS5_m_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvT_S7__ZSt7forwardIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_RNSt16remove_referenceIS8_E4typeE_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9constructIS6_JRKS6_EEEvPT_DpOT0__ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEC1ERKS7__ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE15_S_use_relocateEv_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE19_S_nothrow_relocateESt17integral_constantIbLb1EE_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv_ZN9__gnu_cxxmiIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSE_SH__ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_M_allocateEm_ZNK9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEE4baseEv_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6__ZSt34__uninitialized_move_if_noexcept_aIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_SaIS5_EET0_T_S9_S8_RT1__ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE7destroyIS5_EEvRS6_PT__ZSt7forwardIRKP6ObjectEOT_RNSt16remove_referenceIS4_E4typeE_ZNSt7__cxx114listIP6ObjectSaIS2_EE14_M_create_nodeIJRKS2_EEEPSt10_List_nodeIS2_EDpOT__ZN9__gnu_cxx16__aligned_membufIP6ObjectE7_M_addrEv_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEEC1Ev_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE7destroyIS3_EEvPT__ZNSt16allocator_traitsISaISt10_List_nodeIP6ObjectEEE10deallocateERS4_PS3_m_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE11_M_get_nodeEv_ZNSt15__allocated_ptrISaISt10_List_nodeIP6ObjectEEEC1ERS4_PS3__ZNSt16allocator_traitsISaISt10_List_nodeIP6ObjectEEE9constructIS2_JS2_EEEvRS4_PT_DpOT0__ZNSt15__allocated_ptrISaISt10_List_nodeIP6ObjectEEEaSEDn_ZNSt15__allocated_ptrISaISt10_List_nodeIP6ObjectEEED1Ev_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC1Ev_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE10deallocateEPS6_m_ZNSt12_Destroy_auxILb0EE9__destroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvT_S9__ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEC2ERKS7__ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE8max_sizeEv_ZSt3maxImERKT_S2_S2__ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE8allocateERS6_m_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE14_S_do_relocateEPS5_S8_S8_RS6_St17integral_constantIbLb1EE_ZSt32__make_move_if_noexcept_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt13move_iteratorIPS5_EET0_PT__ZSt22__uninitialized_copy_aISt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES7_S6_ET0_T_SA_S9_RSaIT1_E_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE7destroyIS6_EEvPT__ZNSt16allocator_traitsISaISt10_List_nodeIP6ObjectEEE9constructIS2_JRKS2_EEEvRS4_PT_DpOT0__ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE10deallocateEPS4_m_ZNSt16allocator_traitsISaISt10_List_nodeIP6ObjectEEE8allocateERS4_m_ZNSt15__allocated_ptrISaISt10_List_nodeIP6ObjectEEEC2ERS4_PS3__ZSt11__addressofISaISt10_List_nodeIP6ObjectEEEPT_RS5__ZNSt15__allocated_ptrISaISt10_List_nodeIP6ObjectEEED2Ev_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE9constructIS3_JS3_EEEvPT_DpOT0__ZSt11__addressofINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEPT_RS6__ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT__ZNKSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE19_M_get_Tp_allocatorEv_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_max_sizeERKS6__ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv_ZSt12__relocate_aIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_SaIS5_EET0_T_S9_S8_RT1__ZNSt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC1ES6__ZSt18uninitialized_copyISt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES7_ET0_T_SA_S9__ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE9constructIS3_JRKS3_EEEvPT_DpOT0__ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE8allocateEmPKv_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE8max_sizeERKS6__ZSt3minImERKT_S2_S2__ZNK9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8max_sizeEv_ZSt12__niter_baseIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEET_S7__ZSt14__relocate_a_1IPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_SaIS5_EET0_T_S9_S8_RT1__ZNSt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2ES6__ZNSt20__uninitialized_copyILb0EE13__uninit_copyISt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES9_EET0_T_SC_SB__ZNK9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE8max_sizeEv_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1__ZStneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEbRKSt13move_iteratorIT_ESB__ZNKSt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEdeEv_ZSt10_ConstructINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJS5_EEvPT_DpOT0__ZNSt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEppEv_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE9constructIS5_JS5_EEEvRS6_PT_DpOT0__ZSteqIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEbRKSt13move_iteratorIT_ESB__ZSt7forwardINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_RNSt16remove_referenceIS6_E4typeE_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9constructIS6_JS6_EEEvPT_DpOT0__ZNKSt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE4baseEv_ZTI6Player_ZTI6Object_ZTS6Player_ZTS6Objectcs20200.o/      1575228131  3825  100   100664  13336     `
ELF>/@@UH����]�UH��]�Jeff Kinne cs20200 (mario-ish)Yint�^�^���;�B�10	3W	6		7		8		9	 	:	(	;	0	<	8	=	@	@	H	A	P	B	X	DI`	FOh	HWp	IWt	Jex	M4�	NI�	OU�	Qe�	Y
q�	[p�	\{�	]O�	^	}�	_
��	`W�	b���
+D��e
B<kv��
B����0����W���W��'#�9x�A�	��P�"P�P�"P�P�"P
�P�P�P�P�P�P
�
P�
A�
������������������� �W$��(�P0�P2�W4�W8�
�@�GH�PT��X�Wt�� ���A�
��
W��
B��j�,�%��%��%���!� W� W� W� W� W� WF&~�stdsAA�			�B		��		��		��		�
	�
	�2
	�]
	�y
	��
	��
	��
	��
	�	�2	�E	�R	�e	��	��	��	��	�	�v		��	� 	�<	��	�R	�r	��abs
gU�Uabs
U���abs
O�abs
K\	\abs
Gc#cabs
==abs
8^W^div	�B	^^�AA�	�v		� 	�<	�R	�r	��	��div	�v	;		<	Wrem=	W>�CB		D^remE^F	Mv		NremOPN	%�	�	 W�	�	�	�	!"PW�	�	�	#$UW�	�	%ec
�%hW
�%k^2
�"1}]
�	�	���	&divQ	y
WW"w�
�"SB	�
^^"�W�
��"���
�
���"�W�
��';
2}���	(l
EW)�W'�
e;%uc���%�^���W%�B���W"
W��"������"�W �"Wv	<%p$R�%�r��W%��	���W%{\���%~���
'�	
+�	
.2
3	
4B	
6�
6�
6�
6�
6	
6#
6=&absEWF
W
6/

7�	
8

9

:2

<�
<W
<]

>y

@�

C�

D�

E�

G
HE
JR
Ke
L�
M�
N�
P�
Q�
B*
�
	+�,
�%$>$>:;9II&I:;9	
:;9I8
:;9<I
!I/4:;9I?<!;4:;9I?<:;9I:;9
:;9I8:;9n9:;9:;9�::;9:;9.?:;9nI<I.?:;9nI<9:;9:;9n
:;9I8 I!&".?:;9I<#$.?:;9nI<%.?:;9I<&.?:;9I<'.?:;9<(.?:;9�<).?:;9I<*4:;9I+.?:;9nI@�B,.?:;9n@�B,���
cs20200/usr/include/bits/usr/include/usr/lib64/gcc/x86_64-slackware-linux/9.1.0/include/usr/include/bits/types/usr/include/c++/9.1.0/usr/include/c++/9.1.0/bits/usr/include/c++/9.1.0/x86_64-slackware-linux/bitscs20200.ctypes.hcurses.hstddef.hstruct_FILE.hFILE.hstdio.hsys_errlist.hcstdlibstd_abs.hc++config.hstdlib.hstdlib.h<built-in>	
KY?
KYgetenv_Z12cs20200_gamev_pad_rightldat_shortbufrand_IO_lock_tcs20200/cs20200.c_use_keypadstderrsystem/u1/h0/jkinne/public_html/cs202-f2019/code/202games_IO_buf_endcs20200_name_ZSt3divll_regtop_leaveokmblen_IO_write_endunsigned int__gnu_cxx_freeres_list_flagswchar_t_line_markers_sys_nerr_ZN9__gnu_cxx3divExxLINESstrtoullCOLORS_ZSt3absd_ZSt3abse_ZSt3absf_ZSt3absg_ZSt3abslstrtold_ZSt3absn_maxx_maxy_ZSt3absx_scrollstdoutmbtowc_IO_save_endfloat_IO_codecvt_immedlong long unsigned int_padattrwctombsys_errlist_IO_backup_baseTABSIZE_offsetsys_nerrlldivatoll_fileno_yoffset_idlok_begxsize_tstrtodsrandpdat_clear_IO_read_basebsearchstdin__float128char_bkgrnd_mode5div_t_IO_marker_IO_read_ptrldiv_tquick_exitquotmbstowcs_IO_write_baselong long int_sync_IO_save_basechars_pad_topext_colorattr_t__cxx11_parx_paryttytypeldivGNU C++14 9.1.0 -mtune=generic -march=x86-64 -g__compar_fn_t_freeres_buf_Z12cs20200_namev__unknown____pad5_regbottom_vtable_offsetstdscrchtype_parentlong doublecurscr_IO_read_endshort int_pad_left_bkgdlong intatexit_attrsnewscr_IO_wide_data_delay_win_st_idcokbool_colorcs20200_gameCOLOR_PAIRSat_quick_exit_wide_data_lockstrtoullong unsigned int_old_offset_IO_FILE__int128namediv_t_nc_wacsunsigned char_IO_write_ptrdecltype(nullptr)strtofCOLSwcstombsstrtol6ldiv_t_codecvt__off_t7lldiv_t7cchar_tsigned charstrtollshort unsigned intlldiv_tcchar_tatof_sys_errlistatoi_pad_x_pad_yatoldoubleacs_map_chainFILE_curx_flags2_pad_bottom_begy_cur_columnESCDELAY_notimeout_cury__off64_t_unused2_IO_buf_baseqsortWINDOWGCC: (GNU) 9.1.0zRx�A�C
G<A�C
F�

&0cs20200.c_ZL4name_Z12cs20200_gamev_Z5mariov_Z12cs20200_namev��������



�

C

o)
	0

87

�>

�E

�L

�S

La

ff

�r

o�

��

�

��

�

�

��

?�

��

�

F

�

�

�,

=9

.F

�S

&`

m

cz

/�

�

I�

�

)�

��

F�

��

��

�

�	

�

�#

y1

$=

8E

�l

�w

��

��

��

a�

N�

"�

/�

�

)

,

T 

-

�:

�H

�V

d

�r

Q�

V�

7�

�

i�

)�

��

��

C�

{�




v

`)

^7

�E

�S

�a

to

�}

��

7�

U�

��

 �

��

��

s�

y�

$	



k%

�3

�B

dQ

�X

�_

�f

p

�y

�

K�

Z�

�

��

��

$�

8�

}�



$

]1

�>

mK

UX

Ne

>r

/�

k�

��

��

n�

x

d+

�E

�_

�t

��

k�

9�

��

	

)	

�(	

C	

�S	

�\	

w	

��	

��	

��	

o�	

��	

��	

�


�


	3


�z


�


��


��


�


�

�3

F

3S

�f

��

{�

��

h�

r

!

W=

]S

�s

T�

f�

��



$

�$

�,?

�F

J
� @.symtab.strtab.shstrtab.rela.text.data.bss.rela.debug_info.debug_abbrev.rela.debug_aranges.rela.debug_line.debug_str.comment.note.GNU-stack.rela.eh_frame @@X0&`,6]1@�pB��Uq0P@�-0i��d@(.
u0m��0	�� X�@@.0x�	Bp.�mario.o/        1575228147  3825  100   100664  103792    `
ELF>p5@@����������������������������������������������������������������������������������������������������������������	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvUH��H�}���E�H�E�H�H�E��U�P)H�E�f��@H�E�f��@ H�E��@(H�E��@*H�E��@,H�E��@0�]�UH��H��PH�}��E��M�H�u�H�E��@(���9H�E��@*��tBH�E��H �E��YE��X�H�E��@ H�E��HH�E��@ �YE��X��E��H�E��@�E�H�E��HH�E��@�YE��X��E�H�E�H�P@�E�H�E�f(�fHn�H����������gH�E�f��@ �E��,�H�E��@�,�9�}H�E��@*�E��,�H�E��@�,�9�~-H�E�H�P@�E�H�E�f(�fHn�H���<&u�������H�E�H�@0�E��,�Hc�H��H�H��E��,�Hc�H��H�H�H�E�H�}�tgH�E�@,��~\H�E�@,�P�H�E�P,H�E�@,��uH�E��@)=H�E�H��H���H�E�H�E�H���H�H�E�H�E�@8�PH�E�P8�E��,�H�E��@�,�9���H�E��@�~
fW�H�E��@�e�E�H�M�H�U�H�E�f(�fHn�H��H����>H�E�H�P0H�E��@�,�H�H��H�H�H�E��@�,�H�H��H�H�E�H����UH��SH��H��h���H��`���H��p���H���H��p����H���H��H��`���H�@fHn�H����H���H��H��`���H�@fHn�H����H����H���H��H��`���H�@fHn�H����H���H��H��`���H�@ fHn�H����H����H���H��H��`����@(����H���H��h���H��p���H��H����H��p���H����H��H��p���H���H��H���H��h���H�Ę[]ÐUH��H��H�}�H�E��MH����H�E�H�H�E��@8H�E��@4H�E�f��@H�E�f��@H�E�f��@ H�E��@(��ÐUH��SH��H��H���H��@���H��@���H�E�H��H���H��P���H���H��P����H���H��H��@����@)����H����H���H��H��@����@8��H����H���H��H��@����@4��H���H��H���H��P���H��H����H��P���H���H�E�H����.H��H��P���H����H��H�E�H���H��H���H��H���H�ĸ[]�UH��H�}�H�E��@8�PH�E��P8�]�UH��H�}�H�E��@4���NP�H�E��P4H�E��@4]�UH��H�}�H�E��@4]ÐUH��H��H�}�H�u�H�E�H��H���H�E�H�U�H�P8H�E���H�E���@H�E��@H�E��PH�E��PH�E�H�@0��ÐUH��SH��XH�}�H�E�H��H���H�E�H�E�H���H�H�E�H�E�H��H���H�E�H�E�H��H���H�E�H�U�H�E�H��H�����tNH�E�H���H�H�U�H�J8H�U��BH�U�H�H��f(�fHn�H���H�E��H����H�E�H��H���H�E�H�E�H��H���H�E�H�U�H�E�H��H�������H�E�H���H�H�E�H�E��@0����H�E�H�P0H�E��@�,�H�H��H�H�H�E��@�,�H�H��H�H�H�E�H��t
�8H���H�E�H�XH�U�H�E�H��H���H�E�H��H���H�E��'���H�E��H��������H��X[]�UH��SH��(H�}ؿ@�H��H���H�]�H�E�H�PH�E�H�E�H�E�H��H����H��([]ÐUH��H��H�}�H�u�H�E�H�U�H�PH�E��@��������tH�E��@H��� H�����(���������tH�E��@������������tH�E��@������������tH�E��@�����������tH�E��@�����������tH�E��@H��H���H��H�����P�H�E����P�H�E��P���UH��H��H�}�����ÐUH��AUATSH��H��h���H��H����H���H���H�H��j+j+j+A�+A�-�-�|�|H���H�� H���H���H���H��������H��h���H�@H��H���H��u��]���H��h���H�@H��H���H��x���H��x���H���H�H�E�H�E��@�,��E�H�E��@�,��E�H�E��@)�E�H�E�H�H�H�E�H�U�H��H���H�E�H���H�������H�E�H�����H��h���H�RH�R`H)�H��H��h���H�@�PH��h���H�@�@I��A�Љ������H��h���H�@�@\�������H���H���H��h���H�@H��H���H�E�H�E�H���H�H��p���H��h���H�@H��H���H�E�H�U�H��p���H��H�������H��p���H���H��@�,��E�H��p���H���H��@�,��E�H��p���H���H��@)�E�f�E��E���|tE��|G��_t3��_=��@t!��@3��=t'��=)��$t��&uf�E��f�E��f�E��f�E���E����H����H���H��p���H���H��@)��H��p���H���H��@�,�D�`H��h���D�hH��p���H���H��@�,�A)�D���ٺD��Ǹ��E����H����H���H��p���H����F���H���H����ENjUȍrH��h����R+U̍z�����H���H���H��h���H�@�@X��tDH��h����Hc�Hi�VUUUH�� ����)�H��h����@�������ΉǸ���H��H�E�H���H��H���H�e�[A\A]]ÐUH��H��0H�}��E��M��E��,���x=�E��,�H�E�H�@�@9�}%�E��,���x�E��,�H�E�H�@�@9�|��N�E�H�U�H�E�f(�fHn�H����E��E���|t��|��_t��_��&t��=u�E����ÐUH��H��0H�}��E��M��E��,����E�H�E�P�E��,�)‰Ѓ��E�H��U��M���H������tH�H����������E��}� u���E��ÐUH��H�}�H�u�H�U�H�}�tH�}�u��HH�E��@�,�H�E��@�,�9�u%H�E��@�,�H�E��@�,�9�u���]ÐUH��SH��H�}�H�E�H�U�H��H���H�E�H�P@H�E�H��H���H�E��@XH�E��@\H�E�H�����H�U�H�B`�/H��H�E�H��@H����H��H�E�H���H��H���H��[]�UH��SH��H��x���H��p���H��p���H������H��H���H������H���H�����HH�������tH���H��H��p���H��H����H����H������H������H����E�H������H�����H��H���H�H��H�H�H�����tIH������H����U�H9�����tH������H����E�H������H������H��H����H�����H���H������H�����H��x����P�U�H��x����PH��x����@H�H��������H9�wH��H�����H��H��x���H�P0�E�H��x����@9E���H��x����@H�H��������H9�w'H��H��x���H�R0�M�Hc�H��H�
H�����H��E�H��x����@9E�}5H��x���H�@0�U�Hc�H��H�H��U�Hc�H��H�H��E�뼃E��O����E��]�H������H���H9��������E��]܋U�H������H��H���H���H9��������]܋U�H������H��H���H��H�����Eۀ}� �|�}�
�r�8�H���Eۉ�H���H������H�������E�H��x�H*��H��H���H	��H*��X��AH������H����U�H)�H��H������H��x�H*��H��H���H	��H*��X��A�Eۃ�&t[��@ueH��������@���������t$H�������@H�������~
fW��@H�������@(�H�������@,�H��x���H�PH������H��H���H��x���H�P0H�������@�,�H�H��H�H�H�������@�,�H�H��H�H������H��E������E�����H������H���H������H���H�����H������@H��H������H����H��H������H���H�����H���H��H���H�Ĉ[]�UH��H�� H�}�H�E�H��@H���H�H����E�H�E��H��Y��H,����H�E��@X����t�U�H�E��H���H�E�H����}�qt뉐��UH��H��0H�}؉u�H�E�H��H���H�E�H�E�H���H�H�E��E���}����}��8�}�tX�}��"�}���}��H�E��@*������H�E���@ H�E��@*��H�E��@f��f/�vH�E��@�
�\��,����E��*E�H�E�H�HH�U�H�E�f(�fHn�H��H����vH�E��HH�E؋@@�*�f/�vH�E��H��X��,��H�E؋@@�*��,��E��*E�H�E�H�HH�U�H�E�f(�fHn�H��H����������UH��H��@H�}�H�u��E��M�H�}���H�E�H�P@�E�H�E�f(�fHn�H����������pH�E��@�,��E��,�9�t7H�E�H��@�E��
�\��M�H���������tH�E��@*H�E�H�@0�E��,�Hc�H��H�H��E��,�Hc�H��H�H�H�E�H�E�H��H���H�E�H�E�H���H�H�E�H�}��H�E�H;E��
H�E��@0������H�E��@0������H�E�H;E�tH�E�H;E���H�E�H;E�u
H�E��@)�H�E��@)�E��E�$tY��@uhH�E�H;E�u�E��,�H�E��@�,���9�t+H�E�H���H�E�H���������tH�E��@X��H�E�@8�PH�E�P8��H�E�H;E�t
H�E��@0�H�E�H;E�tH�E��@0H�E؋@\�PH�E؉P\H�E�H�P0H�E��@�,�H�H��H�H�H�E��@�,�H�H��H�H�H�E��E��@H�E��E��@H�E�H�P0H�E��@�,�H�H��H�H�H�E��@�,�H�H��H�H�E�H������ÐUH��H�� H�}�H�u�H�E�H��H���H�E�H�E�H���H�H9E�����t�����UH��SH��xH�E�H���H�E��H�����tH�E�H���H�E�H����H��H�E�H���H��H���H��x[]�UH��H���}��u��}�u'�}���u���������UH�������]�(x, y) = (, ) (vx, vy) = (moves= : coins= lives=q to quit, left/right arrows move, up arrow to jumpvoid Screen::draw()cs20200/objects.hppG.w.objs.size() > 0%sworld height, width ~ %d, %d, %d secremovedCount %d%c~~~ GAME OVER ~~~Unable to open  for reading./u1/h0/jkinne/public_html/cs202-f2019/code/202games/cs20200/world1.txtvector::_M_realloc_insert�N�{�G�z�?@��.A9@�?UH��H�}�H�u�H�E�]�UH��H�}�H�u�]�UH��H��H�}�H�E�H������UH��H�}�H�U�H�E�H�PH�E�H�PH�E�H�H�E�H�@�]��$8�����+:�N�������&���	����
2Qj���3WJ�	���	�	��!DY�������%&Z����(�!������BI]�+s�
��UH��H��H�}�H�E�H������UH��H��H�}�H�E�H������UH��H��H�}�H�E�H������UH��H��H�}�H�E�H������UH��H��H�}�H�E�H��H������UH��H��H�}�H�E�H������UH��H��H�}�H�E�H������UH��H��H�}�H�E�H������UH��H��H�}�H�E�H��@H���H�E�H������UH��H�� H�}�H�E�H�H�E�H��H���H�E���UH��H��H�}�H�E�H�H�����UH��H��H�}�H�E�H���H�E�H������UH��H��H�}�H�E�H������UH��H��H�}�H�E�H���H�E�H������UH��H�� H�}�H�U�H�E�H��H���H�E���UH��H�}�H�u�H�E�H�H�E�H�H9���]�UH��H�}�u�H�E�H�H�E�H�E�H�H�H�E�H�H�E�]�UH��H�}�H�u�H�E�H�H�E�H��]�UH��H�� H�}�H�u�H�E�H�H�E�H��H���H�E�H���H��H�E�H��H���H�E���UH��SH��H�}�H�u�H�E�H���H��H�E�H���H��H�E�H��H��H����H��[]�UH��H��H�}�H�E�H�����UH��H�}�H�E�H�H�H�E�H�H�E�]�UH��H��H�}�H�E�H���H�E�H������UH��H��H�}�H�E�H������UH��H��H�}�H�E�H�PH�E�H�H)�H��H��H��H�E�H�H�E�H��H���H�E�H������UH��H��H�}�H�E�H���H��H�E�H�HH�E�H�H��H���H�E�H������UH��H��H�}�H�u�H�E�H�PH�E�H�@H9�t1H�E�H�HH�E�H�U�H��H���H�E�H�@H�P H�E�H�P�"H�E�H���H��H�U�H�E�H��H������UH��H�}�H�E�H�PH�E�H�H)�H��H��]�UH��H�}�H�u�H�E�H�H�U�H��H�]�UH��H��H�}�H�u�H�E�H���H��H�U�H�E�H��H������UH��H�}�H�E�]�UH��H�}�H�u�H�E�H�U�H��]�UH��H��H�}�H�E�H��H�����UH��H��H�}�H�E�H������UH��H�}��]�UH��H��0H�}�H�E�H�H�E�H�E�H9E�tVH�E�H�E�H�E�H�H�E�H�E�H���H�E�H�E�H���H��H�E�H��H���H�U�H�E�H��H���렐��UH��SH��(H�}�H�u�H�EؾH���H�E�H���H�E�H�E�H�E�H���H��H�E�H���H��H���H�E�H�U�H��H����H��([]�UH��H�� H�}�H�E�H�H�E�H��H���H�E���UH��H�}�H�E�]�UH��H��0H�}�H�u�H�U�H�E�H���H��H�E�H��H���H�E�H�E�H�U�H��H���H�E�H������UH��H��H�}�H�E�H�����UH��H��H�}�H�E�H������UH��H�}�H�E�H�H�E�H�@H�E�H�@�]�UH��H�}��]�UH��H�� H�}�H�u�H�U�H�}�tH�E�H�U�H�M�H��H������UH��H�}�H�E�]�UH��H�� H�}�H�u�H�U�H�U�H�E�H��H������UH��H�� H�}�H�u�H�U�H�E�H���H��H�M�H�E�H��H������UH��H�� H�}�H�E�H�PH�E�H��H���H�E���UH��H�����UH��]�UH��SH��hH�}�H�u�H�U�H�E���H���H�E�H�E�H�H�E�H�E�H�@H�E�H�E�H���H�E�H�U�H�E�H��H���H�E�H�E�H�U�H��H���H�E�H�E�H�E�H�E�H���H��H�E�H��H��H�E�H�H�E�H��H���H�E����tqH�E�H���H��H�E�H���H�0H�U�H�E�H��H���H�E�H�E� H�E�H���H��H�E�H���H�H�U�H�u�H��H���H�E��oH�E�H���H��H�E�H���H�0H�U�H�E�H��H���H�E�H�E� H�E�H���H��H�E�H���H�H�U�H�u�H��H���H�E������t"H�E�H���H��H�M�H�E�H��H���H�E�H�U�H�RH+U�H��H�M�H��H���H�E�H�U�H�H�E�H�U�H�PH�E�H��H��H�E�H�H�E�H�P�H���H�}�u#H�E�H��H��H�E�H�H�E�H��H����"H�E�H���H��H�M�H�E�H��H���H�E�H�U�H�M�H��H����H���H��H���H��h[]�UH��H��0H�}�H�u�H�U�H�E�H���H��H�E�H��H���H�E�H�E�H�U�H��H���H�E�H������UH��H��H�}�H�E�H�����UH��H�}��]�UH��H�}�H�E�]�UH��H��H�}�H�u�H�U�H�E�H��H������UH��H��H�}�H�u�H�E�H�M�H��H������UH��H�}�H�u�H�E�H�@H+E�H��H�E�H�P�]�UH��H�}�H�E�]�UH��SH��8H�}�H�u�H�E�H���H�E�H�E�H���H�E�H�U�H�M�H�E�H��H���H�E�H���H��H�E�H���H��H�E�H��H��H���H�EоH���H�]�H�E�H���H��H��8[]�UH��H�}�H�u�H�E�H�PH�E�H�H�E�H�P�]�UH��H�}�H�E�H�@]�UH��H�}��]�UH��H�� H�}�H�u�H�U�H�U�H�M�H�E�H��H������UH��H��H�}�H�u�H�U�H�E�H��H������UH��H�}�H�E�]�UH��AUATSH��(H�}�H�u�H�U�H�E�H���I��H�]�H�޿ �I��L��L����I��H��L���L��H���H��([A\A]]�UH��H�}�H�u�H�E�H�H�E�H��]�UH��SH��8H�}�H�u�H�U�H�E�H���H��H�E�H���H)�H��H�E�H9�����tH�E�H���H�E�H���H��H�E�H���H�E�H�U�H�E�H��H���H�H�H�E�H�E�H���H9E�rH�E�H���H9E�vH�E�H����H�E�H��8[]�UH��H�� H�}�H�U�H�E�H��H���H�E���UH��SH��H�}�H�u�H�E�H���H�H�E�H���H�H)�H��H��H��[]�UH��H��H�}�H�u�H�}�tH�E�H�U�H��H�������UH��H��0H�}�H�u�H�U�H�M�H�M�H�U�H�u�H�E�H�����UH��H�}�H�E�]�UH��SH��(H�}�H�u�H�U�H�M�H�E�H���H��H�E�H���H��H�U�H�E�H��H��H���H��([]�UH��H��H�}�H�u�H�U�H�E�H��H������UH��H�}�H�E�]�UH��SH��8H�}�H�u�H�E�H���H�E�H�E�H���H�E�H�U�H�M�H�E�H��H���H�E�H���H��H�E�H���H��H�E�H��H��H���H�EоH���H�]�H�E�H���H��H��8[]�UH��H�}�H�E�]�UH��H�}�H�u�]�UH��H�� H�}�H�u�H�U�H�U�H�M�H�E�H��H������UH��H��H�}�H�E��H�����UH��H�� H�}�H�u�H�U�H�E�H���H�U�H�H�E�H�U�H�P���UH��H��H�}�H�E�H�@H��tH�E�H�HH�E�H��H��H������UH��H�� H�}�H�u�H�U�H�E�H���H��H�M�H�E�H��H������UH��H�}�H�u�H�E�H�@H�E�]�UH��H�� H�}�H�u�H�U�H�E�H������UH��H��H�}�H�u�H�E�H;E�tH�E�H���H���H�E� �ې��UH��H��H�}�H�E�H���H�����UH��H�}�H�u�H�E�H�H�E�H�H9�sH�E��H�E�]�UH��H��H�}�H�u�H�M�H�E��H��H�����UH��H�� H�}�H�u�H�U�H�M�H�M�H�U�H�u�H�E�H�����UH��H�� H�}�H�U�H�E�H��H���H�E���UH��H�� H�}�H�u�H�U�H�M�H�U�H�M�H�E�H��H�����UH��H��H�}�H�u�H�E�H������UH��H�� H�}�H�u�H�U�H�E�H���H��H�M�H�E�H��H������UH��H�� H�}�H�u�H�U�H�E�H������UH��H��H�}�H�u�H�M�H�E��H��H�����UH��H�}�H�E�]�UH��SH��(H�}�H�u�H�U�H�E�H���H�H�E�H�ƿ�H��H��([]�UH��H�}�H�E�]�UH��H��H�}�H�E�H������UH��H�� H�}�H��������H�E�H�E�H���H�E�H�U�H�E�H��H���H���UH��H�}�H�E�]�UH��H�� H�}�H�u�H�U�H�E�H���H9E�����t�H�E�H��H�����UH��ATSH�� H�}�H�u�H�U�H�M�H�E�H���I��H�E�H���H��H�E�H���H��H�E�H��L��H���H�� [A\]�UH��H�}�H�u�H�E�H�U�H��]�UH��H��0H�}�H�u�H�U��E�H�U�H�M�H�E�H��H�����UH��SH��(H�}�H�u�H�U�H�E�H���H�H�E�H�ƿ�H��H��([]�UH��H�� H�}�H�u�H�U�H�E�H���H9E�����t�H�U�H��H�H�H��H�����UH��H��H�}�H�E�H�����UH��H�}�H�u�H�E�H�H�E�H�H9�sH�E��H�E�]�UH��H�}�H��������]�UH��H�}�H�E�]�UH��SH��8H�}�H�u�H�U�H�M�H�E�H�E�H�E�H;E�t<H�E�H���H��H�E�H���H��H�E�H��H��H���H�E� H�E� �H�E�H��8[]�UH��SH��8H�}�H�u�H�U�H�E�H�E�H�U�H�E�H��H�����t9H�E�H���H��H�E�H���H��H���H�E�H���H�E� �H�E��3H���H�U�H�E�H��H����H���H��H���H��8[]�UH��H�}�H�UUUUUUU]�UH��H�� H�}�H�u�H�U�H�E�H���H��H�M�H�E�H��H���H�E�H���H��H�E�H��H������UH��H��H�}�H�u�H�U�H�E�H��H�������UH��H�}�H�E�H�H�P H�E�H�H�E�]�UH��H�}�H�E�H�]�UH��SH��H�}�H�u�H�E�H���H��H�E�H�ƿ �H��H����H��[]�UH��H�� H�}�H�u�H�U�H�E�H���H��H�M�H�E�H��H������UH��SH��H�}�H�u�H�E�H���H��H�E�H���H9���H��[]�UH��H�}�H�E�]�UH��SH��(H�}�H�u�H�U�H�E�H���H��H�E�H�ƿ �H��H����H��([]�UH��H�}�H�E�H�]�6Player6ObjectGCC: (GNU) 9.1.0zRx�A�C
M<A�C
J\A�C
V|2A�C
m�dA�C
_��A�C
�zPLRx�$$kA�C
H�^$qA�C
l$l,A�C
H�lA�C
W�,A�C
g�A�C
L�A�C
V�A�C
VA�C
V,A�C
VLuA�C
p l�A�C
E�� �MA�C
E�C�\A�C
W �A�C
T( A�C
L���$�A�C
�D�A�C
�doA�C
j�A�C
Z$��A�C
E���A�C
V�A�C
VA�C
V$TA�C
H��T�A�C
�t�A�C
���A�C
��LA�C
G�+A�C
f$eA�C
E�[(A�C
c<A�C
X\'A�C
b|A�C
V�'A�C
b�%A�C
`�"A�C
]�-A�C
hA�C
X<JA�C
E\IA�C
E� �A�C
U�A�C
Z�'A�C
b�A�C
V (MA�C
H LDA�C
H{A�C
vh#A�C
^� A�C
[�5A�C
p�A�C
I�A�C
UA�C
Y(A�C
VHA�C
FhzA�C
u �wA�C
E�m�(A�C
c�A�C
I�]A�C
X	A�C
U,	A�C
VL	.A�C
il	A�C
F�	5A�C
p�	A�C
I�	*A�C
e�	9A�C
t
)A�C
d,
A�C
JL
A�C
F$�	�A�C
E���
]A�C
X�
A�C
U�
A�C
F�
A�C
I&A�C
a \
+A�C
fX&A�C
axA�C
I ��A�C
E���&A�C
a�A�C
M�A�C
F.A�C
i<&A�C
a\A�C
I(�mA�C
I���_�A�C
X ��A�C
E���%A�C
`
@A�C
E�v,
3A�C
nL
2A�C
ml
A�C
I �
TA�C
E�J�
&A�C
a�
A�C
I �
�A�C
E��A�C
I4A�C
JT.A�C
itA�C
Z�6A�C
q�;A�C
v�9A�C
t�A�C
Y#A�C
^48A�C
sT"A�C
]t+A�C
f�*A�C
e�2A�C
m�%A�C
`�1A�C
lA�C
Z49A�C
tT#A�C
^t*A�C
e�A�C
I�@A�C
E�v�A�C
I�A�C
VBA�C
}4A�C
ITBA�C
} tcA�C
G��W�A�C
U�1A�C
l�@A�C
E�v�KA�C
FA�C
U8+A�C
fXA�C
OxA�C
I �rA�C
E�h$��A�C
E���A�C
OWA�C
R$(A�C
cD A�C
[dA�C
L�DA�C
E�z�9A�C
t�9A�C
E�o�A�C
IHA�C
E�~$A�C
LD>A�C
ydA�C
P����������&�����������������������������������������������������������������	
!#%'(*,./13579;=?@BCEGHJLMOQSUVWXZ\]_abcegijlmoqstv5�o>e��wz{���;c	q
�)w
���T��L�$�&';.{/�0:;uD�IAX�Y�py	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�����������"�"�"�C"�2o"�t�d�!o��d��d������"�(	"�7	���W	�kq	�	�	�		

W
�
�
�tq�
!m�
�tq�
��,�
!+e�z�.,��Z�"��"�"�@"�o"�'�"��"�
"�)
"�Q
"�'�
"��
�lu�
�lu�
����
"�%"�"3"�-W_"��"�J���M"�I:��\NZajt|�����\��X
����X
��r
�����"�4B��"���B������o�"�"��:��:�)"��"��"�/"��"�'�"�<"��"�����3`j���Y��"�{Q"�#���"� RW"�5�"�D����$+�d�B��L]"�+j"�+w�
e�"��"��"�'&"�J"��"��"�z�"�'"�P"�(�"�w�"�"�]Y"��"�'�"�2"�.�"��"�1"�M�"�5�"�MA"�D�"��"�*M"�9�"�) "��� "�]� "�c!"��!"��!"�""�7""�r""��""�&#"�+O#"�&�#�#"��#"��E$r$"�&�$"��$">%"�~%"�.�%"�=&".�&"&�&"Y'"m�'"B("��("�)"	�y)"%�)"
@_*"3�*"4+"2�+"T,%,"&�,�,�,"�,"�?-"s-"��-"�-".C."}."!6�."%9/"'P/"#;�/"�/"(#E0"*8�0�0"Z1","�1�1".+�1"/*E2"12�2"3%D3"51�3"7)4"99�4";#�4"=*5"!6R5"?�5"#;�5"@@66"Bn6"C�6"G7"EB|7"HB�7"Jc@8"L�8"M19"O@[9"QK�9"S:"U+:"Vv:�:"W�:"XrC;"L�;"Z�<"\b<"]W�<"_(!="br="cD�="a >"e9�>"g9�>"iM?�?"jH�?"lP@!q\@!th@�@!s�@�@!v�@�@�@Amario.cpp_ZStL19piecewise_construct_ZStL8__ioinit_Z41__static_initialization_and_destruction_0ii_GLOBAL__sub_I__ZN6ObjectC2Ec_ZNSt8__detail17_List_node_headerC5Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE10_List_implD5Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EEC5Ev_ZNSt7__cxx114listIP6ObjectSaIS2_EEC5Ev_ZNSt7__cxx114listIP6ObjectSaIS2_EED5Ev_ZN5WorldD5Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implD5Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC5Ev_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC5Ev_ZN4GameD5Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE10_List_implC5Ev_ZNSaISt10_List_nodeIP6ObjectEED5Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EED5Ev_ZNSt20_List_const_iteratorIP6ObjectEC5ERKSt14_List_iteratorIS1_E_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implC5Ev_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED5Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED5Ev_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED5Ev_ZNSt14_List_iteratorIP6ObjectEC5EPNSt8__detail15_List_node_baseE_ZNSaISt10_List_nodeIP6ObjectEEC5Ev_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEED5Ev_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC5Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataC5Ev_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED5Ev_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEEC5Ev_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC5Ev_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEC5ERKS7__ZNSt15__allocated_ptrISaISt10_List_nodeIP6ObjectEEEC5ERS4_PS3__ZNSt15__allocated_ptrISaISt10_List_nodeIP6ObjectEEED5Ev_ZNSt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC5ES6__ZnwmPv_ZdlPvS__ZNSt8__detail17_List_node_headerC2Ev_ZNSt8__detail17_List_node_header7_M_initEv_ZNSt8__detail17_List_node_headerC1Ev_ZTV6Object_ZN6ObjectC1Ec_ZN6Object10update_posEddR4Game_ZN6Screen7barrierEdd_ZNSt7__cxx114listIP6ObjectSaIS2_EE5beginEv_ZNKSt14_List_iteratorIP6ObjectEdeEv_ZN4Game10moveObjectEP6Objectdd_ZN6Object5stateB5cxx11Ev__gxx_personality_v0_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc_ZNSolsEd_ZNSolsEb_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev_Unwind_Resume_ZN6PlayerC2Ev_ZTV6Player_ZN6PlayerC1Ev_ZN6Player5stateB5cxx11Ev_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c_ZNSolsEi_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev_ZN6Player7addCoinEv_ZN6Player8loseLifeEv_ZN6Player8getLivesEv_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE10_List_implD2Ev_ZNSaISt10_List_nodeIP6ObjectEED2Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE10_List_implD1Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EEC2Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE10_List_implC1Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EEC1Ev_ZNSt7__cxx114listIP6ObjectSaIS2_EEC2Ev_ZNSt7__cxx114listIP6ObjectSaIS2_EEC1Ev_ZNSt7__cxx114listIP6ObjectSaIS2_EED2Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EED2Ev_ZNSt7__cxx114listIP6ObjectSaIS2_EED1Ev_ZN5WorldC2ER4Game_ZN5WorldC1ER4Game_ZN5World6updateEv_ZNSt7__cxx114listIP6ObjectSaIS2_EE3endEv_ZStneRKSt14_List_iteratorIP6ObjectES4__ZNSt14_List_iteratorIP6ObjectEppEi_ZdlPvm_ZNSt20_List_const_iteratorIP6ObjectEC1ERKSt14_List_iteratorIS1_E_ZNSt7__cxx114listIP6ObjectSaIS2_EE5eraseESt20_List_const_iteratorIS2_E_ZN5World10add_playerEv_Znwm_ZNSt7__cxx114listIP6ObjectSaIS2_EE9push_backEOS2__ZN6ScreenC2ER4Gamestart_colorstdscrwattr_oninit_pairnodelaykeypadCOLSLINES_ZN6ScreenC1ER4Game_ZN6ScreenD2Evendwinrefresh_ZN6ScreenD1Ev_ZN6Screen4drawEvwbkgderasewborderwattr_offmvprintw_ZNKSt7__cxx114listIP6ObjectSaIS2_EE4sizeEv__assert_fail_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEvtime_ZNSt14_List_iteratorIP6ObjectEppEv_ZN6Screen8occupiedEddwmovewinch_ZN6Screen13same_locationEP6ObjectS1__ZN5WorldD2Ev_ZN5WorldD1Ev_ZN4GameC2Ev_ZN4GameC1Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implD2Ev_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implD1Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implC1Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC1Ev_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC1Ev_ZN4Game10load_worldEPKc_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode_ZNKSt9basic_iosIcSt11char_traitsIcEE4goodEv_ZSt4cout_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6__ZNSolsEPFRSoS_E_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE_ZNKSt9basic_iosIcSt11char_traitsIcEEcvbEv_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5__ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv_Znam__cxa_throw_bad_array_new_length_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEmrand_ZNSt7__cxx114listIP6ObjectSaIS2_EE9push_backERKS2__ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev_ZN4Game9play_gameEvwgetchusleep_ZN4Game10handle_keyEi_ZN4Game8isPlayerEP6Object_ZN4GameD2Ev_ZN4GameD1Ev_Z5mariov_ZNSt14_List_iteratorIP6ObjectEC1EPNSt8__detail15_List_node_baseE_ZNSt10_List_nodeIP6ObjectE9_M_valptrEv_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE10_List_implC2Ev_ZNSaISt10_List_nodeIP6ObjectEEC2Ev_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEED2Ev_ZNSaISt10_List_nodeIP6ObjectEED1Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE8_M_clearEv_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EED1Ev_ZNSt20_List_const_iteratorIP6ObjectEC2ERKSt14_List_iteratorIS1_E_ZNKSt20_List_const_iteratorIP6ObjectE13_M_const_castEv_ZNSt7__cxx114listIP6ObjectSaIS2_EE8_M_eraseESt14_List_iteratorIS2_E_ZSt4moveIRP6ObjectEONSt16remove_referenceIT_E4typeEOS4__ZNSt7__cxx114listIP6ObjectSaIS2_EE9_M_insertIJS2_EEEvSt14_List_iteratorIS2_EDpOT__ZNKSt7__cxx114listIP6ObjectSaIS2_EE13_M_node_countEv_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implC2Ev_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataC2Ev_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED1Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE13_M_deallocateEPS5_m_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE19_M_get_Tp_allocatorEv_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE9constructIS5_JRKS5_EEEvRS6_PT_DpOT0__ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT__ZNSt7__cxx114listIP6ObjectSaIS2_EE9_M_insertIJRKS2_EEEvSt14_List_iteratorIS2_EDpOT__ZSt4moveIRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEONSt16remove_referenceIT_E4typeEOS8__ZNSt14_List_iteratorIP6ObjectEC2EPNSt8__detail15_List_node_baseE_ZN9__gnu_cxx16__aligned_membufIP6ObjectE6_M_ptrEv_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEEC2Ev_ZNSaISt10_List_nodeIP6ObjectEEC1Ev_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEED1Ev_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE21_M_get_Node_allocatorEv_ZNSt16allocator_traitsISaISt10_List_nodeIP6ObjectEEE7destroyIS2_EEvRS4_PT__ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE11_M_put_nodeEPSt10_List_nodeIS2_E_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE11_M_dec_sizeEm_ZNSt8__detail15_List_node_base9_M_unhookEv_ZSt7forwardIP6ObjectEOT_RNSt16remove_referenceIS2_E4typeE_ZNSt7__cxx114listIP6ObjectSaIS2_EE14_M_create_nodeIJS2_EEEPSt10_List_nodeIS2_EDpOT__ZNSt8__detail15_List_node_base7_M_hookEPS0__ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE11_M_inc_sizeEm_ZNKSt7__cxx1110_List_baseIP6ObjectSaIS2_EE11_M_get_sizeEv_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev_ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC1Ev_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataC1Ev_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED1Ev_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE10deallocateERS6_PS5_m_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvT_S7__ZSt7forwardIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_RNSt16remove_referenceIS8_E4typeE_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9constructIS6_JRKS6_EEEvPT_DpOT0__ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEC1ERKS7__ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE15_S_use_relocateEv_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE19_S_nothrow_relocateESt17integral_constantIbLb1EE_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv_ZN9__gnu_cxxmiIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSE_SH__ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_M_allocateEm_ZNK9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEE4baseEv_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6__ZSt34__uninitialized_move_if_noexcept_aIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_SaIS5_EET0_T_S9_S8_RT1___cxa_begin_catch_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE7destroyIS5_EEvRS6_PT___cxa_rethrow__cxa_end_catch_ZSt7forwardIRKP6ObjectEOT_RNSt16remove_referenceIS4_E4typeE_ZNSt7__cxx114listIP6ObjectSaIS2_EE14_M_create_nodeIJRKS2_EEEPSt10_List_nodeIS2_EDpOT__ZN9__gnu_cxx16__aligned_membufIP6ObjectE7_M_addrEv_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEEC1Ev_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE7destroyIS3_EEvPT__ZNSt16allocator_traitsISaISt10_List_nodeIP6ObjectEEE10deallocateERS4_PS3_m_ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE11_M_get_nodeEv_ZNSt15__allocated_ptrISaISt10_List_nodeIP6ObjectEEEC1ERS4_PS3__ZNSt16allocator_traitsISaISt10_List_nodeIP6ObjectEEE9constructIS2_JS2_EEEvRS4_PT_DpOT0__ZNSt15__allocated_ptrISaISt10_List_nodeIP6ObjectEEEaSEDn_ZNSt15__allocated_ptrISaISt10_List_nodeIP6ObjectEEED1Ev_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC1Ev_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE10deallocateEPS6_m_ZNSt12_Destroy_auxILb0EE9__destroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvT_S9__ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4__ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEC2ERKS7__ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE8max_sizeEv_ZSt20__throw_length_errorPKc_ZSt3maxImERKT_S2_S2__ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE8allocateERS6_m_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE14_S_do_relocateEPS5_S8_S8_RS6_St17integral_constantIbLb1EE_ZSt32__make_move_if_noexcept_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt13move_iteratorIPS5_EET0_PT__ZSt22__uninitialized_copy_aISt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES7_S6_ET0_T_SA_S9_RSaIT1_E_ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE7destroyIS6_EEvPT__ZNSt16allocator_traitsISaISt10_List_nodeIP6ObjectEEE9constructIS2_JRKS2_EEEvRS4_PT_DpOT0__ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE10deallocateEPS4_m_ZNSt16allocator_traitsISaISt10_List_nodeIP6ObjectEEE8allocateERS4_m_ZNSt15__allocated_ptrISaISt10_List_nodeIP6ObjectEEEC2ERS4_PS3__ZSt11__addressofISaISt10_List_nodeIP6ObjectEEEPT_RS5__ZNSt15__allocated_ptrISaISt10_List_nodeIP6ObjectEEED2Ev_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE9constructIS3_JS3_EEEvPT_DpOT0__ZdlPv_ZSt11__addressofINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEPT_RS6__ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT__ZNKSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE19_M_get_Tp_allocatorEv_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_max_sizeERKS6__ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv_ZSt12__relocate_aIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_SaIS5_EET0_T_S9_S8_RT1__ZNSt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC1ES6__ZSt18uninitialized_copyISt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES7_ET0_T_SA_S9__ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE9constructIS3_JRKS3_EEEvPT_DpOT0__ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE8allocateEmPKv_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE8max_sizeERKS6__ZSt3minImERKT_S2_S2__ZNK9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8max_sizeEv_ZSt17__throw_bad_allocv_ZSt12__niter_baseIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEET_S7__ZSt14__relocate_a_1IPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_SaIS5_EET0_T_S9_S8_RT1__ZNSt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2ES6__ZNSt20__uninitialized_copyILb0EE13__uninit_copyISt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES9_EET0_T_SC_SB__ZNK9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE8max_sizeEv_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1__ZStneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEbRKSt13move_iteratorIT_ESB__ZNKSt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEdeEv_ZSt10_ConstructINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJS5_EEvPT_DpOT0__ZNSt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEppEv_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE9constructIS5_JS5_EEEvRS6_PT_DpOT0__ZSteqIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEbRKSt13move_iteratorIT_ESB__ZSt7forwardINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_RNSt16remove_referenceIS6_E4typeE_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4__ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9constructIS6_JS6_EEEvPT_DpOT0__ZNKSt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE4baseEv_ZTI6Player_ZTI6Object_ZTVN10__cxxabiv120__si_class_type_infoE_ZTS6Player_ZTVN10__cxxabiv117__class_type_infoE_ZTS6Object_ZNSt8ios_base4InitC1Ev__dso_handle_ZNSt8ios_base4InitD1Ev__cxa_atexit
G(J���������J��������6K��������FL�����������M��������-P��������9
AQ��������\R��������a
iQ���������R���������
�Q���������
�Q���������R���������
�Q���������R���������
�Q���������
�Q��������S��������/T��������?U��������SU��������^V���������F���������
XN��������!P��������-
&5Q��������P[��������U
(]Q��������t\��������y
1�Q���������\���������T���������U���������]���������U���������]���������V���������h�������������K��������L��������"K��������6o��������Mp��������]L���������I���������q���������K���������o���������p���������L��������Yr��������ts���������t���������q���������v���������Y���������w��������!	y��������:	z��������L	{��������`	|���������	|���������	|���������	|���������	|��������
z��������
}��������%
z��������2
~��������8
��������G
���������e
���������j
����������
z���������
����������
����������
z���������
{���������
z���������
����������
z�����������������z��������!{��������&
@:���������Q���������[
te
�j
�o����������K���������L�������������������
����������]��������&���������d
�x����������
������������z�������������������K������������������
o��������
p��������3
L��������Q
L��������o
L���������
z���������
{��������L��������L��������FL��������b
�q����������z�����������������������������z���������{���������
������������z�����������������K
�Y���������^���������o]��������zV������������������z�������������������z������������������Vm��������m����������u���������������������������������������V��������������������������2���������>
C
�HQ��������]Q��������b
jQ��������o
�w��������������������������������������������������������������������!���������0���������p���������w�����������������������������V��������������������������������������������������v���������H��������7���������������������������������n]��������}��������������������]�����������������������������V�������������������z������������������)���������I���������Un��������K���������L���������<�wM�����������M��������9J��������u��J���������K���������L���������_���������`���������K���������L�����������������$
 ,���������<���������H���������Y���������dV���������
�E���������
F�
�
G�H��������D��������b��������e��������d��������j��������k��������������������������������������������$������������������������������������ E�������������������������� c�����������������"���������.���������@������������������(o��������=��������������������������� ������������������:���������F������������������1���������=���������<���������^���������t���������o��������.���������������������������<���������L���������^���������q������������������*���������>���������M���������X���������k���������������������������.���������E���������V���������������������������.���������#������������������2������������������	���������
g'���������N���������e���������|���������������������������������������������������������������������������������������4���������F���������U���������k�������������������������������������������������������������������������������8���������`���������n�������������������������������������������������V����������������.��������E���������V�������������������������$����������������)���������D��������P���������_���������t	���������
�����������������'
����������������!���������5A��������C��������SB��������^V����������������,���������L��������X���������g���������~������������������������������������������������������(���������&��������,��������!��������0��������I������������������������)���������D��������P��������_���������t���������
�����������������'������������������������4�����������������2�������� ��������"!��������*"��������#��������$��������$%��������,&��������'��������+(��������]����������������2)�������� ��������$*�����������������1A��������]��������"+��������9,��������-��������,.��������<v��������#/��������2/��������A/��������V0��������+2����������������1A��������3��������,.��������Ev��������-��������3!��������B!��������W4��������,5��������<6��������K!��������V7��������b8��������w���������������������������������������V�����������������29��������>!��������P���������:��������;��������-A��������8<��������;��������2=��������>��������(>��������;��������1A��������<<��������?Z@NAB@CD� @`	�
��d�
O	
(tH�Q
p�.�Z�
�0Plp������X
�
+�r

/(�HBh���:�
D��0�9
UX�xd������

n @`���� @` �!�
~�"�#�$%

�(&1
�L'l(�)�*�+�,-,.L/l0�1�2�3�4	50	6P	7p	8�	9�	:�	;�	<
=0
>P
?p
@y

��
A�
B�
C�
DE8FA
�\G|H�I�J�KL M@N`O�P�
��Q�R�S
T0
UP
Vp
W�
X�
Y�
Z�
[\8]X^x_�`�a�b�cd8eXfxg�h�i�j�kl8mXnxo�p�q�r�st8uXvxw�x�y�z�{|<}\~|�����
����(�H�h����������(�Hoh�.symtab.strtab.shstrtab.rela.text.data.bss.rodata.text._ZnwmPv.text._ZdlPvS_.rela.text._ZNSt8__detail17_List_node_headerC2Ev.text._ZNSt8__detail17_List_node_header7_M_initEv.gcc_except_table.rela.text._ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE10_List_implD2Ev.rela.text._ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EEC2Ev.rela.text._ZNSt7__cxx114listIP6ObjectSaIS2_EEC2Ev.rela.text._ZNSt7__cxx114listIP6ObjectSaIS2_EED2Ev.rela.text._ZN5WorldD2Ev.rela.text._ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implD2Ev.rela.text._ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev.rela.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev.rela.text._ZN4GameD2Ev.rela.text._ZNSt7__cxx114listIP6ObjectSaIS2_EE5beginEv.rela.text._ZNKSt14_List_iteratorIP6ObjectEdeEv.rela.text._ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE10_List_implC2Ev.rela.text._ZNSaISt10_List_nodeIP6ObjectEED2Ev.rela.text._ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EED2Ev.rela.text._ZNSt7__cxx114listIP6ObjectSaIS2_EE3endEv.text._ZStneRKSt14_List_iteratorIP6ObjectES4_.text._ZNSt14_List_iteratorIP6ObjectEppEi.text._ZNSt20_List_const_iteratorIP6ObjectEC2ERKSt14_List_iteratorIS1_E.rela.text._ZNSt7__cxx114listIP6ObjectSaIS2_EE5eraseESt20_List_const_iteratorIS2_E.rela.text._ZNSt7__cxx114listIP6ObjectSaIS2_EE9push_backEOS2_.rela.text._ZNKSt7__cxx114listIP6ObjectSaIS2_EE4sizeEv.text._ZNSt14_List_iteratorIP6ObjectEppEv.rela.text._ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implC2Ev.rela.text._ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev.rela.text._ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.rela.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.rela.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_.text._ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm.rela.text._ZNSt7__cxx114listIP6ObjectSaIS2_EE9push_backERKS2_.text._ZSt4moveIRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEONSt16remove_referenceIT_E4typeEOS8_.text._ZNSt14_List_iteratorIP6ObjectEC2EPNSt8__detail15_List_node_baseE.rela.text._ZNSt10_List_nodeIP6ObjectE9_M_valptrEv.rela.text._ZNSaISt10_List_nodeIP6ObjectEEC2Ev.text._ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEED2Ev.rela.text._ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE8_M_clearEv.rela.text._ZNSt7__cxx114listIP6ObjectSaIS2_EE8_M_eraseESt14_List_iteratorIS2_E.rela.text._ZNKSt20_List_const_iteratorIP6ObjectE13_M_const_castEv.text._ZSt4moveIRP6ObjectEONSt16remove_referenceIT_E4typeEOS4_.rela.text._ZNSt7__cxx114listIP6ObjectSaIS2_EE9_M_insertIJS2_EEEvSt14_List_iteratorIS2_EDpOT_.rela.text._ZNKSt7__cxx114listIP6ObjectSaIS2_EE13_M_node_countEv.rela.text._ZNSaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev.text._ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataC2Ev.text._ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev.rela.text._ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE13_M_deallocateEPS5_m.text._ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE19_M_get_Tp_allocatorEv.rela.text._ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.rela.text._ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE9constructIS5_JRKS5_EEEvRS6_PT_DpOT0_.rela.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv.rela.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE15_S_use_relocateEv.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE19_S_nothrow_relocateESt17integral_constantIbLb1EE.rela.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_.rela.text._ZNSt7__cxx114listIP6ObjectSaIS2_EE9_M_insertIJRKS2_EEEvSt14_List_iteratorIS2_EDpOT_.rela.text._ZN9__gnu_cxx16__aligned_membufIP6ObjectE6_M_ptrEv.text._ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEEC2Ev.text._ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE21_M_get_Node_allocatorEv.rela.text._ZNSt16allocator_traitsISaISt10_List_nodeIP6ObjectEEE7destroyIS2_EEvRS4_PT_.rela.text._ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE11_M_put_nodeEPSt10_List_nodeIS2_E.text._ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE11_M_dec_sizeEm.text._ZSt7forwardIP6ObjectEOT_RNSt16remove_referenceIS2_E4typeE.rela.text._ZNSt7__cxx114listIP6ObjectSaIS2_EE14_M_create_nodeIJS2_EEEPSt10_List_nodeIS2_EDpOT_.text._ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE11_M_inc_sizeEm.text._ZNKSt7__cxx1110_List_baseIP6ObjectSaIS2_EE11_M_get_sizeEv.text._ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2Ev.rela.text._ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE10deallocateERS6_PS5_m.rela.text._ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvT_S7_.text._ZSt7forwardIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_RNSt16remove_referenceIS8_E4typeE.rela.text._ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9constructIS6_JRKS6_EEEvPT_DpOT0_.text._ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEC2ERKS7_.rela.text._ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc.rela.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv.rela.text._ZN9__gnu_cxxmiIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSE_SH_.rela.text._ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_M_allocateEm.rela.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.text._ZNK9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEE4baseEv.rela.text._ZSt34__uninitialized_move_if_noexcept_aIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_SaIS5_EET0_T_S9_S8_RT1_.rela.text._ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE7destroyIS5_EEvRS6_PT_.text._ZSt7forwardIRKP6ObjectEOT_RNSt16remove_referenceIS4_E4typeE.rela.text._ZNSt7__cxx114listIP6ObjectSaIS2_EE14_M_create_nodeIJRKS2_EEEPSt10_List_nodeIS2_EDpOT_.text._ZN9__gnu_cxx16__aligned_membufIP6ObjectE7_M_addrEv.text._ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE7destroyIS3_EEvPT_.rela.text._ZNSt16allocator_traitsISaISt10_List_nodeIP6ObjectEEE10deallocateERS4_PS3_m.rela.text._ZNSt7__cxx1110_List_baseIP6ObjectSaIS2_EE11_M_get_nodeEv.rela.text._ZNSt15__allocated_ptrISaISt10_List_nodeIP6ObjectEEEC2ERS4_PS3_.rela.text._ZNSt15__allocated_ptrISaISt10_List_nodeIP6ObjectEEED2Ev.rela.text._ZNSt16allocator_traitsISaISt10_List_nodeIP6ObjectEEE9constructIS2_JS2_EEEvRS4_PT_DpOT0_.text._ZNSt15__allocated_ptrISaISt10_List_nodeIP6ObjectEEEaSEDn.rela.text._ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE10deallocateEPS6_m.rela.text._ZNSt12_Destroy_auxILb0EE9__destroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvT_S9_.rela.text._ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE8max_sizeEv.text._ZSt3maxImERKT_S2_S2_.rela.text._ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE8allocateERS6_m.rela.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE14_S_do_relocateEPS5_S8_S8_RS6_St17integral_constantIbLb1EE.rela.text._ZSt32__make_move_if_noexcept_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt13move_iteratorIPS5_EET0_PT_.rela.text._ZSt22__uninitialized_copy_aISt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES7_S6_ET0_T_SA_S9_RSaIT1_E.rela.text._ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE7destroyIS6_EEvPT_.rela.text._ZNSt16allocator_traitsISaISt10_List_nodeIP6ObjectEEE9constructIS2_JRKS2_EEEvRS4_PT_DpOT0_.rela.text._ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE10deallocateEPS4_m.rela.text._ZNSt16allocator_traitsISaISt10_List_nodeIP6ObjectEEE8allocateERS4_m.text._ZSt11__addressofISaISt10_List_nodeIP6ObjectEEEPT_RS5_.rela.text._ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE9constructIS3_JS3_EEEvPT_DpOT0_.text._ZSt11__addressofINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEPT_RS6_.rela.text._ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.rela.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_max_sizeERKS6_.text._ZNKSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE19_M_get_Tp_allocatorEv.rela.text._ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv.rela.text._ZSt12__relocate_aIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_SaIS5_EET0_T_S9_S8_RT1_.text._ZNSt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2ES6_.rela.text._ZSt18uninitialized_copyISt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES7_ET0_T_SA_S9_.rela.text._ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE9constructIS3_JRKS3_EEEvPT_DpOT0_.rela.text._ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE8allocateEmPKv.rela.text._ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE8max_sizeERKS6_.text._ZSt3minImERKT_S2_S2_.text._ZNK9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8max_sizeEv.text._ZSt12__niter_baseIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEET_S7_.rela.text._ZSt14__relocate_a_1IPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_SaIS5_EET0_T_S9_S8_RT1_.rela.text._ZNSt20__uninitialized_copyILb0EE13__uninit_copyISt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES9_EET0_T_SC_SB_.text._ZNK9__gnu_cxx13new_allocatorISt10_List_nodeIP6ObjectEE8max_sizeEv.rela.text._ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.rela.text._ZStneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEbRKSt13move_iteratorIT_ESB_.text._ZNSt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEppEv.text._ZNKSt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEdeEv.rela.text._ZSt10_ConstructINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJS5_EEvPT_DpOT0_.rela.text._ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE9constructIS5_JS5_EEEvRS6_PT_DpOT0_.rela.text._ZSteqIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEbRKSt13move_iteratorIT_ESB_.text._ZSt7forwardINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_RNSt16remove_referenceIS6_E4typeE.rela.text._ZN9__gnu_cxx13new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9constructIS6_JS6_EEEvPT_DpOT0_.text._ZNKSt13move_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE4baseEv.rela.rodata._ZTV6Player.rela.rodata._ZTV6Object.rela.rodata._ZTI6Player.rodata._ZTS6Player.rela.rodata._ZTI6Object.rodata._ZTS6Object.rela.init_array.comment.note.GNU-stack.rela.eh_frame.group�-@}A�-H}B�-P}��-\}D�-d}��-p}��-|}��-�}��-�}��-�}��-�}��-�}��-�}��-�}K�-�}L�-�}��-�}��-}��-}o�-}p�- }q�-(}��-0}t�-<}w�-H}��-T}��-\}��-h}��-t}��-�}��-�}��-�}��-�}��-�}��-�}��-�}��-�}��-�}��-�}��-�}��-�}��-�}��-}��-}��-}��-(}��-4}��-<}��-D}��-P}��-X}��-d}��-p}��-|}��-�}��-�}��-�}��-�}��-�}��-�}��-�}��-�}��-�}��-�}��-�}��-�}��-}��-}��-}��-}��-(}��-0}��-<}��-D}��-P}��-\}��-h}��-t}��-�}��-�}��-�}��-�}�-�}�-�}�-�}�-�}�-�}�-�}��-�}��-�}	�-}
�-}
�-}�- }�-,}�-4}�-@}�-L}�-X}�-d}�-p}�-|}�-�}�-�}�-�}�-�}!�-�}"�-�}$�-�}#�-�}%�-�}&�-�}��-�}(�-�})�-}*�-}+�- },�-(}-�-0}/�-8}0�-D}2�-P}3�-X}4�-d}5�-p}8�-x}6�-�}7�-�}9�-�}:�-�};�-�}=�-�}>�-�}X�-�}G�-�}?�-�}B�-�}@�-�}D �@��8}�&�",�"1�"�9�$G�$[�$V@��}���$2�%���%�@��}�&@�}�P(&K@�}��D&~@0�}��`&�@H�}���&�@`�}�=�&8@x�}���&�@��}���&+�@��0}�'(	@��}�E('@@��}�uF''p@�0}��n'�@8�}���''�@P�0}�$�'%@��}�T�'"��'-�((�F(J�@��H}�L�(IG@��H}���(�@(�}���(�)'�@@�0}�Y<)T@p�}��X)M�@��0}��)D�@��H}�]�){X@�H}��f*#�* n�*5i@H�0}���*	�*`	+[	@x�}��	&+�	@��}��	B+
N+z�	@��`}�D
�+w?
@��}��
@,(�
@��}��
h,v,]@��`}�t�,o@�}���,�@(�}��
-.i8-�D-5�@@�}�7
z-�
�-*�
@X�}��-9@p�0}���-)�@��}��.�@��}�K$.�0.��@��}�r�0]m@��`}��L1�@0�}�f1Lr1��1&�@H�}���1+�@`�}�E�1&��1�2��@x��}�&�2&f�2��2	�2.@8�}|3&w@P�}�A3AP3m<@h�x}��3;�3�6@���}	��4%�@��}�4@�@��0}
�53�@�}?52@�}wr5��5T�@0�H}{�5&v@x�}��516�,@���}��6��6�6.@P�}s�6n@h�}�76�@��}!N7;�@��}#G�79B@��0}%��7��7#�@��}([88V@��0}*�<8"�@(�0},$^8+E�8*@@X�}/��82�@p�}1A�8%<@��}3�
91�@��}5Q <9L @��}7� [99� @��0}9'!�9#"!@�};{!�9*v!@�}=�!�9"�9@"@0�0}@d"0:�">:�"@`�}C#Y:B#@x�0}Et#�:�#�:B�#@��H}HT$�:cO$@��`}J�$P;%j;1%@P�}M�%�;@�%@h�0}O�%�;K�%@��H}QI&'<D&@��}S�&A<+�&l<1'�<�'�<r�'@��H}X�'=��'@@��}Z�(�=�(�=W�(@0�`}]J)>(E)@��}_�)B> �)b>[*s>DV*@��H}c�*�>9�*@�0}e<+�>97+@ �0}g�+)?
,8?H,@P�H}j�,�?�,�?�,@��0}m�,�?�,@�0}o-�?-@��H}q*-�?C-�?>-@@�0}tW-�?p-@k-@p�}w|-0@�-@�- @��-@��8}{�T�6~A	x�A��-mario.cpp/      1574554687  3825  100   100664  298       `
#include<curses.h>
#include<unistd.h>
#include<string.h>
#include<stdlib.h>

#include "objects.hpp"

void mario() {
  Game G;
  
  // load world1, play the game if it loaded ok
  if (G.load_world("/u1/h0/jkinne/public_html/cs202-f2019/code/202games/cs20200/world1.txt")) {
    G.play_game();
  }
}
objects.hpp/    1575228145  3825  100   100664  17213     `
/* 
   bugs / known issues
  - Makefile for project doesn't check dependencies for cs20200 properly
  - gdb doesn't have line-numbers, etc. for this file (depending on order of make'ing)
  - $ only working if first thing removed
  - @ shouldn't lose life if jumped on it

  Note - some random comments/thoughts/advice are througout.  Search for "note"
 */

#ifndef OBJECTS_HPP
#define OBJECTS_HPP

using namespace std;

#include<list>
#include<vector>
#include<fstream>
#include<iostream>
#include<sstream>
#include<assert.h>
#include<unistd.h>
#include<string.h>
#include<time.h>

/* *** Class definitions *** */

class World;
class Game;


// Object - has a location, velocity, whether can move or not
class Object {
public:
  double x, vx; // x pos and velocity, kept as double rather than int so "real" position can move fractionally
  double y, vy; // y pos and velocity
  bool moves;   // is this object able to move
  char ch;      // character for displaying
  bool isMoving_y; // is moving in y direction or not
  int num; // used for different things depending on object type
  bool flagToRemove; // if should remove, set to true

  Object(char ch); // constructor
  void update_pos(double g, double delta_s, Game &G); // update position/velocity
  virtual string state(); // string summary of state
};


// Player - is an object, also has coins and lives
class Player : public Object {
private:
  int lives;
  
public:
  int coins;

  Player();
  string state(); // overrides the default state function, to include coins, lives
  void addCoin();
  int loseLife();
  int getLives();
};


// World - keeps track of all objects, movement
class World {
public:
  double g,            // gravity, #rows/sec down
    delta_s;           // interval between updates to velocity/position
  int width, height;   // of the whole world
  list<Object *> objs; // linked list of objects
  Object *** grid;     // 2d array of objects
  Game &G;             // for having access to rest of the game
  
  World(Game &G);      // constructor
  void update();       // update positions, etc.
  void add_player();   // add players before adding any other objects
};


// Screen - for drawing/display
class Screen {
public:
  int max_x, max_y; // dimensions of screen
  bool colors_ok;   // were we able to initialize colors and such
  Game &G;     

  Screen(Game &G);
  ~Screen();        // destructor, for free'ing
  void draw();      // draw the screen
  char occupied(double y, double x); // is that space occupied
  char barrier(double y, double x);  // is that space a barrier (wall/floor)
  bool same_location(Object *ob1, Object *ob2);
};

// Game - keeps the entire game
class Game {
public:
  World w;   // keeps objects
  Screen s;  // for drawing
  bool gameOver;
  int removedCount; // for debugging, how many objects have been removed from board
  time_t time_start;
  
  Game();  
  bool load_world(const char *filename);
  void play_game();
  void handle_key(int ch);
  void moveObject(Object *obj, double new_y, double new_x); // move object, updating things as needed
  bool isPlayer(Object *obj);
};







/* *** Class method defitions *** */



/* Object method definitions */

Object::Object(char ch) : ch(ch) {
  vx = 0; vy = 0; moves = false;
  isMoving_y = false; num = 0;
  flagToRemove = false;
}

// update position and velocities based on gravity, velocities
// return false if should be removed
void Object::update_pos(double g, double delta_s, Game &G)  {
  if (moves) {
    // y and vy
    
    double x_new, y_new;

    // update y velocity based on gravity, and y position
    if (isMoving_y) {
      vy = vy + (g * delta_s);
      y_new = y + vy * delta_s; // where we would end up
    }
    else
      y_new = y;

    // update x position
    x_new = x + vx * (delta_s);

    // check if our new position would have run into something
    if (G.s.barrier(y_new, x_new)) { // can't move there
      vy = 0;
      
      // if y was going down, reset vy to 0 and not moving y
      if ((int) y_new < (int) y) {
	isMoving_y = false;
      }

      // if y was going up and barrier is a & then take coins
      if ((int) y_new > (int) y &&
	  G.s.barrier(y_new, x_new) == '&') {
	Object *obj = G.w.grid[(int) y_new][(int) x_new];
	if (obj != NULL && obj->num > 0) {
	  obj->num = obj->num - 1;
	  if (obj->num == 0) obj->ch = '=';
	  Player *p = (Player *) *(G.w.objs.begin());
	  p->coins ++;
	}
      }

      // if x was changing, make vx bounce
      if ((int) x_new != (int) x)
	vx *= -1;
      
    }
    else { 
      G.moveObject(this, y_new, x_new);
    }
  }
  else {
    // for non-moving object, just put it on the grid to make sure
    // the grid is updated in case some moving object overwrote this one
    G.w.grid[(int)y][(int)x] = this;
  }
}

string Object::state() {
  ostringstream oss; 
  // x, y, etc. for debugging
  oss << "(x, y) = (" << x << ", " << y << ") " <<
    "(vx, vy) = (" << vx << ", " << vy << ") " <<
    "moves=" << moves;
  return oss.str();
}


/* Player method definitions */

Player::Player() : Object('M') {
  coins = 0;
  lives = 3;
  x = 0;
  y = 0;
  vy = 0;
  moves = true;
}

string Player::state() {
  string s = Object::state();
  ostringstream oss;
  oss << " " << ch << ": coins=" << coins << " lives=" << lives;
  // skip showing x,y, etc. except for debugging
  //return s + oss.str();
  return oss.str();
}

void Player::addCoin() {
  coins++;
}

// note - good OO design - use methods to get/change state of the object,
//  and make the actual lives variable as private so other code doesn't
//  need to worry about the internal details.
int Player::loseLife() {
  lives = lives > 0 ? lives-1 : 0;
  return lives;
}

int Player::getLives() {
  return lives;
}


/* World method definitions */

World::World(Game &G) : G(G){
  // gravity - tradeoff between this and the vy that is set on a keyup
  g = -60;
  delta_s = 0.01;
  width = height = 0;
  grid = NULL;
}

void World::update() {
  // the player
  Player *pl = (Player *) *(objs.begin());
  
  // update positions of objects - call the update function on each
  for(list<Object *>::iterator it= objs.begin(); it != objs.end(); it++) {
    (*it)->update_pos(g, delta_s, G);
  }

  // go through and remove the ones that were flagged for removal
  for(list<Object *>::iterator it= objs.begin(); it != objs.end(); ) {
    Object *obj = *it;
    if (obj->flagToRemove) {
      grid[(int) obj->y][(int) obj->x] = NULL;
      delete obj;
      it = objs.erase(it);
    }
    else
      it++;
  }
  
  // note - we are storing all of the obects in both the objs list and the
  // grid.  we could just as well have iterated through the grid to call
  // update on all of the objects.
}

void World::add_player() {
  Player *p = new Player();
  objs.push_back(p);
}


/* Screen method definitions */

// color definitions, see https://jonasjacek.github.io/colors/
//   assuming your terminal has the same color definitions, these
//   choices are reasonable looking colors.
#define MARIO_BLUE  19
#define MARIO_RED   160
#define MARIO_GREEN 40
#define MARIO_GOLD  221
#define MARIO_WHITE 15
#define MARIO_BLACK 0

// color in curses uses color pairs, and there are two different places where a magic
//  code needs to be used.  define our magic codes here so we are consistent when we use
//  them.  See below...
typedef enum {MARIO_GREEN_BLUE=1, MARIO_RED_BLUE, MARIO_GOLD_BLUE, MARIO_BLACK_BLUE, MARIO_WHITE_BLUE} MARIO_COLOR_PAIRS;

// Constructor for screen - get all of the curses things setup
Screen::Screen(Game &G) : G(G) {
  // note - already done from main.c:
  //  initsrc (creates screen)
  //  noecho (don't display chars that are typed)
  //  cbreak (don't wait for enter key)
  //  curs_set(0) - makes cursor not visible

  // set colors_ok = false if any of the color things give an error condition
  colors_ok = true;
  if (start_color() == ERR) colors_ok = false;

  // it seems init_color doesn't work on some terminals (mine on mac anyway).
  // it seems the default colors are - https://jonasjacek.github.io/colors/
  //  unless you changed them, so I picked colors from the defaults above that look okay on
  //  my terminal (still need to try on others...
  attron(A_BOLD); // everything bold
  if (init_pair(MARIO_GREEN_BLUE, MARIO_GREEN, MARIO_BLUE) == ERR) colors_ok = false;
  if (init_pair(MARIO_RED_BLUE, MARIO_RED, MARIO_BLUE) == ERR) colors_ok = false;
  if (init_pair(MARIO_GOLD_BLUE, MARIO_GOLD, MARIO_BLUE) == ERR) colors_ok = false;
  if (init_pair(MARIO_BLACK_BLUE, MARIO_BLACK, MARIO_BLUE) == ERR) colors_ok = false;
  if (init_pair(MARIO_WHITE_BLUE, MARIO_WHITE, MARIO_BLUE) == ERR) colors_ok = false;
  
  // screen setup
  nodelay(stdscr, TRUE); // make getch return even if no character typed
  keypad(stdscr, TRUE);  // enable use of arrow keys.

  // max x and y based on the size of the screen
  max_x = COLS-3;
  max_y = LINES-3;
}

// descructor - cleanup
Screen::~Screen() {
  endwin();
  refresh();
}

// main function for drawing the screen.  note that it also
// checks for collisions and such.  this is probably bad OO design - should
// separate out the collision detection and drawing.
void Screen::draw() {
  // erase the screen
  bkgd(COLOR_PAIR(MARIO_RED_BLUE));
  erase();

  // border and such
  attron(COLOR_PAIR(MARIO_RED_BLUE));
  border('|', '|', '-', '-', '+', '+', '+', '+');
  attroff(COLOR_PAIR(MARIO_RED_BLUE));

  // information at the top
  attron(COLOR_PAIR(MARIO_WHITE_BLUE));
  mvprintw(1, 1,"q to quit, left/right arrows move, up arrow to jump");
  
  // player object should be first on the objs list - get info, print about it
  assert(G.w.objs.size() > 0);
  Player *p = (Player *)(*(G.w.objs.begin()));
  int y, x; char ch;
  y = (int) p->y; x = (int) p->x; ch = p->ch;
  mvprintw(2, 1, "%s", p->state().c_str());

  // some more information about the world
  mvprintw(3, 1, "world height, width ~ %d, %d, %d sec", G.w.height, G.w.width, time(NULL) - G.time_start);
  mvprintw(4, 1, "removedCount %d", G.removedCount);
  //mvprintw(4, 1, "%d, %d, %d, %d. colors_ok %d.  %d", can_change_color(), has_colors(), COLORS, COLOR_PAIRS, colors_ok == true, COLOR_WHITE);
  attroff(COLOR_PAIR(MARIO_WHITE_BLUE));

  // non-player world objects, start at 1, go through to display each one
  for(list<Object *>::iterator it= ++G.w.objs.begin(); it != G.w.objs.end(); ++it) {
    int obj_y = (int) (*it)->y, obj_x = (int) (*it)->x;
    char obj_ch = (*it)->ch;
    
    // what color should object be, default to red
    short color = MARIO_RED_BLUE;
    switch(obj_ch) {
    case '$':
    case '&':
      color = MARIO_GOLD_BLUE;
      break;
    case '@':
      color = MARIO_RED_BLUE;
      break;
    case '_':
      color = MARIO_BLACK_BLUE;
      break;
    case '=':
    case '|':
	color = MARIO_GREEN_BLUE;
	break;      
    }

    // draw it
    attron(COLOR_PAIR(color));
    mvprintw(max_y - (int) (*it)->y + 1, // y=0 is at bottom, switch around, leave 1 for border
	     (int) (*it)->x + 1, // don't draw on border
	     "%c", (*it)->ch);
    attroff(COLOR_PAIR(color));
  }
  
  // now draw player
  attron(COLOR_PAIR(MARIO_WHITE_BLUE));
  mvprintw(max_y - y + 1, x + 1, "%c", ch); // see comments above
  attroff(COLOR_PAIR(MARIO_WHITE_BLUE));

  // if game over, let them know
  if (G.gameOver) {
    mvprintw(max_y/2, max_x/3, "~~~ GAME OVER ~~~");
  }

  // nothing gets redrawn on the screen until calling refresh
  refresh();
}

// return non-zero if x, y is hitting something (e.g. '=')
char Screen::barrier(double y, double x) {
  // off screen, return 1
  if ((int) y < 0 || (int) y >= G.w.height ||
      (int) x < 0 || (int) x >= G.w.width) return 1;

  // is the spot occupied
  char ch = occupied(y, x);

  switch(ch) {
  case '=':
  case '|':
  case '&':
  case '_':
    return ch;
  }
  
  return 0;
}

char Screen::occupied(double y, double x) {
  int xx = (int)x + 1; // translate from game coordinates to screen coordinates
  int yy = max_y - (int)y + 1;

  // read that position on the screen
  char ch = mvinch((int) yy, (int) xx);

  if (ch == ' ') return 0;
  return ch;
}

bool Screen::same_location(Object *ob1, Object *ob2) {
  if (ob1 == NULL || ob2 == NULL) return false;

  if ((int) ob1->x == (int) ob2->x &&
      (int) ob1->y == (int) ob2->y)
    return true;
  else
    return false;
}


/* Game method definitions */

Game::Game() : w{World(*this)}, s{Screen(*this)}, gameOver(false), removedCount(0) {
  w.add_player(); // add players before loading any other objects
  time_start = time(NULL);
}

// return true if loaded, false if not
bool Game::load_world(const char *filename) {
  ifstream in(filename); // somewhere in there it does something like fopen or open

  vector<string> lines;
  
  // check that file was opened
  if (! in.good()) {
    cout << "Unable to open " << filename << " for reading." << endl;
    return false;
  }
  
  // loop to read from input, into vector (aka array) of lines
  string line;
  unsigned max_len = 0;
  while (getline(in, line)) {
    if (line.length() > max_len) max_len = line.length();
    lines.push_back(line);
  }
  in.close();

  // height and width of the world
  w.height = lines.size();
  w.width = max_len;

  // allocate 2d array for keeping track of things, height x width, pointers to Object
  w.grid = new Object**[w.height];
  for(int y=0; y < w.height; y++) {
    w.grid[y] = new Object*[w.width];
    for(int x=0; x < w.width; x++)
      w.grid[y][x] = NULL;
  }

  // scan through the lines, creating objects and putting into world
  // will create Object's and put both into objs linked list and 2d grid
  for(unsigned i=0; i < lines.size(); i++) {
    for(unsigned j=0; j < lines[i].length(); j++) {
      char ch = lines[i][j];
      
      // for this character read from the world file, create an object for anything
      // that is not a space or newline
      if (ch != ' ' && ch != '\n') {
	// all objects have a char, x, and y
	Object * ob = new Object(ch);
	ob->x = j;
	ob->y = lines.size()-1 - i; // last line is height 0, first line is lines.size()-1

	// some objects have other parameters to set
	switch(ch) {
	case '@':
	  ob->vx = 3;
	  if (rand() % 2) ob->vx *= -1; // will be left or right
	  ob->moves = true;
	  break;
	case '&':
	  ob->num = 4; // 4 coins
	  break;
	}

	// put object in our objs list and our 2d grid
	w.objs.push_back(ob);
	w.grid[(int) ob->y][(int) ob->x] = ob; // save pointer in the grid as well
      }
    }    
  }

  // success
  return true;
}


// main game loop - draw, get key, handle key, update world. repeat
void Game::play_game() {
  int chTyped;
  do {
    s.draw();

    chTyped = getch();
    usleep(w.delta_s * 1000000);
    if (! gameOver) {
      handle_key(chTyped);
      w.update();
    }
    
  } while (chTyped != 'q');
}

// take key user typed and do whatever we should do
void Game::handle_key(int ch) {
  // player obj is always first in the linked list
  Player *p = (Player *) (*(w.objs.begin()));

  // to keep track if we moved the player
  int new_x = -1;
  
  switch(ch) {
  case KEY_UP:
    // start jump by setting y velocity, if not already in middle of jump
    if (! p->isMoving_y) {
      p->vy = 25; // #rows up / sec
      p->isMoving_y = true;
    }
    break;
    
  case KEY_DOWN: // don't do anything, for now
    break;
    
  case KEY_LEFT:
    // move one to left if not on edge of screen
    new_x = p->x > 0 ? p->x-1 : 0;
    moveObject(p, p->y, new_x);
    break;
    
  case KEY_RIGHT:
    // move one to right if not on edge of screen
    new_x = p->x < s.max_x ? p->x+1 : s.max_x;
    moveObject(p, p->y, new_x);
    break;
  }
}

void Game::moveObject(Object *obj, double new_y, double new_x) {
  if (obj == NULL) return;
  
  // don't move if would be a barrier
  if (s.barrier(new_y, new_x)) return;
  
  // if x changed, check for falling y
  if ((int) obj->x != (int) new_x) {
    if (!s.barrier(new_y-1, new_x))
      obj->isMoving_y = true;
  }

  // check for collision between obj and something there already
  Object *other_obj = w.grid[(int) new_y][(int) new_x];
  Player *p = (Player *) *(w.objs.begin());
  if (other_obj != NULL && 
      other_obj != obj &&
      ! obj->flagToRemove && // only take one coin or life, in case we flagged already
      ! other_obj->flagToRemove &&
      (p == obj || other_obj == p)) {
    // something there that is not the player, deal with it
    char c = p == obj ? other_obj->ch : obj->ch;
    switch (c) {
    case '@':
      // if it was player moving and jumped on it, then don't lose life
      if (p == obj && (int)new_y == (int)p->y -1)
	;
      else {
	p->loseLife();
	if (p->getLives() <= 0) gameOver = true;
      }
      break;
    case '$':
      p->coins += 1;
      break;
    }
    // and flag it for removal
    if (p != obj)
      obj->flagToRemove = true;
    else if (p != other_obj)
      other_obj->flagToRemove = true;
    removedCount++;
  }
  
  // now, actually move it
  w.grid[(int) obj->y][(int) obj->x] = NULL; // not where it was anymore
  obj->y = new_y;
  obj->x = new_x;
  w.grid[(int) obj->y][(int) obj->x] = obj;
}

bool Game::isPlayer(Object *obj) {
  if (obj == *(w.objs.begin())) return true;
  else return false;
}

#endif
world1.txt/     1575131447  3825  100   100664  2105      `
                                                                                                                                                                |
                                                                                                                                                                |
                                                                                                                                                                |
                                                                                                                                                                |
                                                                                                                                                                |
                   &                                                                                                                                            |
                                                                                    @                                                            @              |
                                                                                  ============   ====&                       &                  ====            |
                                                                                                                                                                |
            &    =&=&=                           ==                  &                                                                                          |
                                    ==           ||          ==                =&=                   &        =&         &   &   &         =                    |
                          ==        ||           ||          ||                                                                                                 |
    $      $     @        ||        ||    @      || @   @    ||            __                  __                  @                                            |