From mahesh143an@gmail.com Mon Jan 10 09:26:39 2011 From: mahesh gajabar To: development@drupal.org Subject: [development] Id is not passing Date: Mon, 10 Jan 2011 14:56:35 +0530 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2984114618923958591==" --===============2984114618923958591== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Hi I have wrote a module for despalying my database table data into html format table. I have delete and edit button infront of every button. delete function is working fine. Code is as below * t('Doctors'),* * 'page callback' => 'doctors_list',* * 'access arguments' => array('access doctor'),* * 'type' => MENU_NORMAL_ITEM,* * );* * * * $items['doctor/delete/%doctor_user'] = array(* * 'title' => t('Delete doctor'),* * 'page callback' => 'drupal_get_form',* * 'page arguments' => array('doctor_delete_confirm', 2),* * 'access arguments' => array('access doctor'),* * 'type' => MENU_CALLBACK,* * );* * * * $items['doctor/edit/form'] = array(* * 'title' => t('doctor'),* * 'page callback' => 'drupal_get_form',* * 'page arguments' => array('doctor_page',2),* * 'access arguments' => array('access doctor'),* * 'type' => MENU_NORMAL_ITEM,* * );* *$items['doctor/edit/%doctor_user'] = array(* * 'title' => t('Edit Form'),* * 'page callback' => 'drupal_get_form',* * 'page arguments' => array('doctor_edit_confirm', 2),* * 'access arguments' => array('access doctor'),* * 'type' => MENU_NORMAL_ITEM,* * );* * return $items;* *}* *function doctors_list() {* * $header = array(t('Doctor Name'), t('Gender'), t('Status'), t('Action'));* * * * $query = "SELECT * FROM {doctor}";* * $rs = db_query($query);* * * * $row = array();* * * * if ($rs) {* * while ($data = db_fetch_object($rs)) {* * $gender = $data->gender;* * $status = $data->status ;* * $row[] = array(stripslashes(ucwords($data->firstname)) . ' ' . stripslashes(ucwords($data->lastname)), $gender, $status, * * "" . t('Edit') . " | " . t('Delete') . "");* * }* * }* * * * $str .= theme_table($header, $row);* * * * return $str;* *}* *function doctor_user_load($doctorid) {* * $query = "SELECT * FROM {doctor} WHERE doctorid = %d";* * $rs = db_query($query, $doctorid);* * * * if ($rs) {* * while ($data = db_fetch_object($rs)) {* * return $data;* * }* * }* * * * return FALSE;* *}* *function doctor_delete_confirm(&$form_state, $doctor) {* * $form['_doctor'] = array(* * '#type' => 'value',* * '#value' => $doctor,* * );* * * * return confirm_form($form,* * t('Are you sure you want to delete this doctor?'),* * isset($_GET['destination']) ? $_GET['destination'] : "doctor",* * t('This action cannot be undone.'),* * t('Delete'),* * t('Cancel'));* *}* *function doctor_delete_confirm_submit($form, &$form_state) {* * $form_values = $form_state['values'];* * * * if ($form_state['values']['confirm']) {* * $doctor = $form_state['values']['_doctor'];* * * * $query = "DELETE FROM {doctor} where doctorid=$doctor->doctorid";* * $rs = db_query($query);* * * * //doctor_delete($form_state['values'], $doctor->doctorid); * * * * drupal_set_message(t('Doctor has been deleted successfully.'));* * }* * * * drupal_goto("doctor");* *}* *function doctor_edit_confirm(&$form_state,$doctor){* * $form = array();* *$form['_doctor'] = array(* * '#type' => 'value',* * '#value' => $doctor,* * );* * $form['firstname']=array(* * '#title'=>t('First Name'),* * '#type'=>'textfield',* * //'#prefix'=>'',* * );* *$form['lastname']=array(* * '#title'=>t('Last Name'),* * '#type'=>'textfield',* * '#default_value' => $lastname,* * );* *$form['gender']=array(* * '#title'=>t('Gender'),* * '#type'=>'radios',* * * * '#options' => array(t('male'), t('female')),* * '#default_value' => male,* * );* *$form['status']=array(* * '#title'=>t('Status'),* * '#type'=>'radios',* * '#default_value' => active,* * '#options' => array(t('active'), t('inactive')),* * * * );* * * *return confirm_form($form,t(''),* * isset($_GET['destination']) ? $_GET['destination'] : "doctor",* * t(''),* * t('Edit'),* * t('Cancel'));* *}* *function doctor_edit_confirm_submit($form, &$form_state)* *{* *if ($form_state['values']['confirm']) {* *$doctor = $form_state['values']['_doctors'];* * $firstname = $form_state['values']['firstname'];* * $lastname = $form_state['values']['lastname'];* * $gender1= $form_state['values']['gender'];* *$gender = $gender1 ? t('female') : t('male');* * $status1 = $form_state['values']['status'];* *$status = $status1 ? t('inactive') : t('active');* *$query = "UPDATE {doctor} SET firstname = '$firstname', lastname= '$lastname', gender = '$gender', status = '$status' WHERE doctorid=$doctor->doctorid";* * $rs = db_query($query); * * * * }* *drupal_goto("doctor");* *}* when i put hardcoded value infront of doctorid like doctorid=2 then its getting edited after i click on edit button but when i paasing it using varible and clicking edit button then its showing following error where firstname ->anitha,lastname->abc are the values i enetering in form while editing. *user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 query: UPDATE doctor SET firstname = 'anitha', lastname= 'abc', gender = 'female', status = 'inactive' WHERE doctorid= in D:\FR-Server\Apache2\htdocs\fr\sites\all\Modules\doctor\doctor.module on line 157.* my html table on drupal screen Doctor NameGenderStatusAction Mahesh Gajabarmaleinactive Edit| Delete Anitha PatilfemaleactiveEdit| Delete Pavithra MfemaleactiveEdit| Delete Ravi MandayammaleactiveEdit| Delete edit form : First Name: Last Name: Gender: male female Status: active inactive Cancel Please help me how i can pass that doctorid and also help me for getting default values in form when i click edit button in table. *MAHESH GAJABAR Software Developer FrontalRain Technologies,Bengaluru* --===============2984114618923958591== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 SGkgPGJyPkkgaGF2ZSB3cm90ZSBhIG1vZHVsZSBmb3IgZGVzcGFseWluZyBteSBkYXRhYmFzZSB0 YWJsZSBkYXRhIGludG8gaHRtbCBmb3JtYXQgdGFibGUuIEkgaGF2ZSBkZWxldGUgYW5kIGVkaXQg YnV0dG9uIGluZnJvbnQgb2YgZXZlcnkgYnV0dG9uLiBkZWxldGUgZnVuY3Rpb24gaXMgd29ya2lu ZyBmaW5lLiBDb2RlIGlzIGFzIGJlbG93PGJyPjxicj48YnI+PGJyPjxkaXYgc3R5bGU9Im1hcmdp bi1sZWZ0OiA0MHB4OyBmb250LWZhbWlseTogdmVyZGFuYSxzYW5zLXNlcmlmOyI+CjxpPjxiPiZs dDs/cGhwPC9iPjwvaT48YnI+PGJyPjxpPjxiPmZ1bmN0aW9uIGRvY3Rvcl9tZW51KCkgezwvYj48 L2k+PGJyPjxpPjxiPqAgJGl0ZW1zID0gYXJyYXkoKTs8L2I+PC9pPjxicj48aT48Yj6gPC9iPjwv aT48YnI+PGk+PGI+oCAkaXRlbXNbJiMzOTtkb2N0b3ImIzM5O10gPSBhcnJheSg8L2I+PC9pPjxi cj48aT48Yj6goKAgJiMzOTt0aXRsZSYjMzk7ID0mZ3Q7IHQoJiMzOTtEb2N0b3JzJiMzOTspLDwv Yj48L2k+PGJyPgo8aT48Yj6goKAgJiMzOTtwYWdlIGNhbGxiYWNrJiMzOTsgPSZndDsgJiMzOTtk b2N0b3JzX2xpc3QmIzM5Oyw8L2I+PC9pPjxicj48aT48Yj6goKAgJiMzOTthY2Nlc3MgYXJndW1l bnRzJiMzOTsgPSZndDsgYXJyYXkoJiMzOTthY2Nlc3MgZG9jdG9yJiMzOTspLDwvYj48L2k+PGJy PjxpPjxiPqCgoCAmIzM5O3R5cGUmIzM5OyA9Jmd0OyBNRU5VX05PUk1BTF9JVEVNLDwvYj48L2k+ PGJyPgo8aT48Yj6gICk7PC9iPjwvaT48YnI+PGk+PGI+oDwvYj48L2k+PGJyPjxpPjxiPqAgJGl0 ZW1zWyYjMzk7ZG9jdG9yL2RlbGV0ZS8lZG9jdG9yX3VzZXImIzM5O10gPSBhcnJheSg8L2I+PC9p Pjxicj48aT48Yj6goKAgJiMzOTt0aXRsZSYjMzk7ID0mZ3Q7IHQoJiMzOTtEZWxldGUgZG9jdG9y JiMzOTspLDwvYj48L2k+PGJyPjxpPjxiPqCgoCAmIzM5O3BhZ2UgY2FsbGJhY2smIzM5OyA9Jmd0 OyAmIzM5O2RydXBhbF9nZXRfZm9ybSYjMzk7LDwvYj48L2k+PGJyPgo8aT48Yj6goKAgJiMzOTtw YWdlIGFyZ3VtZW50cyYjMzk7ID0mZ3Q7IGFycmF5KCYjMzk7ZG9jdG9yX2RlbGV0ZV9jb25maXJt JiMzOTssIDIpLDwvYj48L2k+PGJyPjxpPjxiPqCgoCAmIzM5O2FjY2VzcyBhcmd1bWVudHMmIzM5 OyA9Jmd0OyBhcnJheSgmIzM5O2FjY2VzcyBkb2N0b3ImIzM5OyksPC9iPjwvaT48YnI+PGk+PGI+ oKCgICYjMzk7dHlwZSYjMzk7ID0mZ3Q7IE1FTlVfQ0FMTEJBQ0ssPC9iPjwvaT48YnI+CjxpPjxi PqAgKTs8L2I+PC9pPjxicj48aT48Yj6gPC9iPjwvaT48YnI+PGk+PGI+oCRpdGVtc1smIzM5O2Rv Y3Rvci9lZGl0L2Zvcm0mIzM5O10gPSBhcnJheSg8L2I+PC9pPjxicj48aT48Yj6goKAgJiMzOTt0 aXRsZSYjMzk7ID0mZ3Q7IHQoJiMzOTtkb2N0b3ImIzM5OyksPC9iPjwvaT48YnI+PGk+PGI+oKCg ICYjMzk7cGFnZSBjYWxsYmFjayYjMzk7ID0mZ3Q7ICYjMzk7ZHJ1cGFsX2dldF9mb3JtJiMzOTss PC9iPjwvaT48YnI+CjxpPjxiPqCgoCAmIzM5O3BhZ2UgYXJndW1lbnRzJiMzOTsgPSZndDsgYXJy YXkoJiMzOTtkb2N0b3JfcGFnZSYjMzk7LDIpLDwvYj48L2k+PGJyPjxpPjxiPqCgoCAmIzM5O2Fj Y2VzcyBhcmd1bWVudHMmIzM5OyA9Jmd0OyBhcnJheSgmIzM5O2FjY2VzcyBkb2N0b3ImIzM5Oyks PC9iPjwvaT48YnI+PGk+PGI+oKCgICYjMzk7dHlwZSYjMzk7ID0mZ3Q7IE1FTlVfTk9STUFMX0lU RU0sPC9iPjwvaT48YnI+CjxpPjxiPqAgKTs8L2I+PC9pPjxicj48YnI+PGk+PGI+JGl0ZW1zWyYj Mzk7ZG9jdG9yL2VkaXQvJWRvY3Rvcl91c2VyJiMzOTtdID0gYXJyYXkoPC9iPjwvaT48YnI+PGk+ PGI+oKCgICYjMzk7dGl0bGUmIzM5OyA9Jmd0OyB0KCYjMzk7RWRpdCBGb3JtJiMzOTspLDwvYj48 L2k+PGJyPjxpPjxiPqCgoCAmIzM5O3BhZ2UgY2FsbGJhY2smIzM5OyA9Jmd0OyAmIzM5O2RydXBh bF9nZXRfZm9ybSYjMzk7LDwvYj48L2k+PGJyPgo8aT48Yj6goKAgJiMzOTtwYWdlIGFyZ3VtZW50 cyYjMzk7ID0mZ3Q7IGFycmF5KCYjMzk7ZG9jdG9yX2VkaXRfY29uZmlybSYjMzk7LCAyKSw8L2I+ PC9pPjxicj48aT48Yj6goCAmIzM5O2FjY2VzcyBhcmd1bWVudHMmIzM5OyA9Jmd0OyBhcnJheSgm IzM5O2FjY2VzcyBkb2N0b3ImIzM5OyksPC9iPjwvaT48YnI+PGk+PGI+oKCgICYjMzk7dHlwZSYj Mzk7ID0mZ3Q7IE1FTlVfTk9STUFMX0lURU0sPC9iPjwvaT48YnI+CjxpPjxiPqAgKTs8L2I+PC9p Pjxicj48aT48Yj6gIHJldHVybiAkaXRlbXM7PC9iPjwvaT48YnI+PGk+PGI+fTwvYj48L2k+PGJy Pjxicj48aT48Yj5mdW5jdGlvbiBkb2N0b3JzX2xpc3QoKSB7PC9iPjwvaT48YnI+PGk+PGI+oKCg ICRoZWFkZXIgPSBhcnJheSh0KCYjMzk7RG9jdG9yIE5hbWUmIzM5OyksIHQoJiMzOTtHZW5kZXIm IzM5OyksoCB0KCYjMzk7U3RhdHVzJiMzOTspLCB0KCYjMzk7QWN0aW9uJiMzOTspKTs8L2I+PC9p Pjxicj4KPGk+PGI+oDwvYj48L2k+PGJyPjxpPjxiPqCgoCAkcXVlcnkgPSAmcXVvdDtTRUxFQ1Qg KiBGUk9NIHtkb2N0b3J9JnF1b3Q7OzwvYj48L2k+PGJyPjxpPjxiPqCgoCAkcnMgPSBkYl9xdWVy eSgkcXVlcnkpOzwvYj48L2k+PGJyPjxpPjxiPqA8L2I+PC9pPjxicj48aT48Yj6goKAgJHJvdyA9 IGFycmF5KCk7PC9iPjwvaT48YnI+PGk+PGI+oDwvYj48L2k+PGJyPjxpPjxiPqCgoCBpZiAoJHJz KSB7PC9iPjwvaT48YnI+CjxpPjxiPqCgoCCgoKAgd2hpbGUgKCRkYXRhID0gZGJfZmV0Y2hfb2Jq ZWN0KCRycykpIHs8L2I+PC9pPjxicj48aT48Yj6goKAgoKCgIKCgoCAkZ2VuZGVyID0gJGRhdGEt Jmd0O2dlbmRlcjs8L2I+PC9pPjxicj48aT48Yj6goKAgoKCgIKCgoCAkc3RhdHVzID0gJGRhdGEt Jmd0O3N0YXR1cyA7PC9iPjwvaT48YnI+PGk+PGI+oKCgIKCgoCCgoKAgJHJvd1tdID0gYXJyYXko c3RyaXBzbGFzaGVzKHVjd29yZHMoJGRhdGEtJmd0O2ZpcnN0bmFtZSkpIC4gJiMzOTsgJiMzOTsg LiBzdHJpcHNsYXNoZXModWN3b3JkcygkZGF0YS0mZ3Q7bGFzdG5hbWUpKSwgJGdlbmRlciwgJHN0 YXR1cywgPC9iPjwvaT48YnI+CjxpPjxiPqCgoCCgoKAgoKCgICZxdW90OyZsdDthIGhyZWY9JiMz OTtkb2N0b3IvZWRpdC97JGRhdGEtJmd0O2RvY3RvcmlkfSYjMzk7Jmd0OyZxdW90OyAuIHQoJiMz OTtFZGl0JiMzOTspIC4gJnF1b3Q7Jmx0Oy9hJmd0OyB8ICZsdDthIGhyZWY9JiMzOTtkb2N0b3Iv ZGVsZXRlL3skZGF0YS0mZ3Q7ZG9jdG9yaWR9JiMzOTsmZ3Q7JnF1b3Q7IC4gdCgmIzM5O0RlbGV0 ZSYjMzk7KSAuICZxdW90OyZsdDsvYSZndDsmcXVvdDspOzwvYj48L2k+PGJyPgo8aT48Yj6goKAg oKCgIH08L2I+PC9pPjxicj48aT48Yj6goKAgfTwvYj48L2k+PGJyPjxpPjxiPqA8L2I+PC9pPjxi cj48aT48Yj6goKAgJHN0ciAuPSB0aGVtZV90YWJsZSgkaGVhZGVyLCAkcm93KTs8L2I+PC9pPjxi cj48aT48Yj6gPC9iPjwvaT48YnI+PGk+PGI+oKCgIHJldHVybiAkc3RyOzwvYj48L2k+PGJyPjxp PjxiPn08L2I+PC9pPjxicj48aT48Yj5mdW5jdGlvbiBkb2N0b3JfdXNlcl9sb2FkKCRkb2N0b3Jp ZCkgezwvYj48L2k+PGJyPgo8aT48Yj6goKAgJHF1ZXJ5ID0gJnF1b3Q7U0VMRUNUICogRlJPTSB7 ZG9jdG9yfSBXSEVSRSBkb2N0b3JpZCA9ICVkJnF1b3Q7OzwvYj48L2k+PGJyPjxpPjxiPqCgoCAk cnMgPSBkYl9xdWVyeSgkcXVlcnksICRkb2N0b3JpZCk7PC9iPjwvaT48YnI+PGk+PGI+oDwvYj48 L2k+PGJyPjxpPjxiPqCgoCBpZiAoJHJzKSB7PC9iPjwvaT48YnI+PGk+PGI+oKCgIKCgoCB3aGls ZSAoJGRhdGEgPSBkYl9mZXRjaF9vYmplY3QoJHJzKSkgezwvYj48L2k+PGJyPgo8aT48Yj6goKAg oKCgIKCgoCByZXR1cm4gJGRhdGE7PC9iPjwvaT48YnI+PGk+PGI+oKCgIKCgoCB9PC9iPjwvaT48 YnI+PGk+PGI+oKCgIH08L2I+PC9pPjxicj48aT48Yj6gPC9iPjwvaT48YnI+PGk+PGI+oKCgIHJl dHVybiBGQUxTRTs8L2I+PC9pPjxicj48aT48Yj59PC9iPjwvaT48YnI+PGJyPjxicj48aT48Yj5m dW5jdGlvbiBkb2N0b3JfZGVsZXRlX2NvbmZpcm0oJmFtcDskZm9ybV9zdGF0ZSwgJGRvY3Rvcikg ezwvYj48L2k+PGJyPgo8aT48Yj6goKAgJGZvcm1bJiMzOTtfZG9jdG9yJiMzOTtdID0gYXJyYXko PC9iPjwvaT48YnI+PGk+PGI+oKCgIKCgoCAmIzM5OyN0eXBlJiMzOTsgPSZndDsgJiMzOTt2YWx1 ZSYjMzk7LDwvYj48L2k+PGJyPjxpPjxiPqCgoCCgoKAgJiMzOTsjdmFsdWUmIzM5OyA9Jmd0OyAk ZG9jdG9yLDwvYj48L2k+PGJyPjxpPjxiPqCgoCApOzwvYj48L2k+PGJyPjxpPjxiPqA8L2I+PC9p Pjxicj48aT48Yj6goKAgcmV0dXJuIGNvbmZpcm1fZm9ybSgkZm9ybSw8L2I+PC9pPjxicj4KPGk+ PGI+oKCgIKCgoCB0KCYjMzk7QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGRv Y3Rvcj8mIzM5OyksPC9iPjwvaT48YnI+PGk+PGI+oKCgIKCgoCBpc3NldCgkX0dFVFsmIzM5O2Rl c3RpbmF0aW9uJiMzOTtdKSA/ICRfR0VUWyYjMzk7ZGVzdGluYXRpb24mIzM5O10gOiAmcXVvdDtk b2N0b3ImcXVvdDssPC9iPjwvaT48YnI+PGk+PGI+oKCgIKCgoCB0KCYjMzk7VGhpcyBhY3Rpb24g Y2Fubm90IGJlIHVuZG9uZS4mIzM5OyksPC9iPjwvaT48YnI+CjxpPjxiPqCgoCCgoKAgdCgmIzM5 O0RlbGV0ZSYjMzk7KSw8L2I+PC9pPjxicj48aT48Yj6goKAgoKCgIHQoJiMzOTtDYW5jZWwmIzM5 OykpOzwvYj48L2k+PGJyPjxpPjxiPn08L2I+PC9pPjxicj48YnI+PGk+PGI+ZnVuY3Rpb24gZG9j dG9yX2RlbGV0ZV9jb25maXJtX3N1Ym1pdCgkZm9ybSwgJmFtcDskZm9ybV9zdGF0ZSkgezwvYj48 L2k+PGJyPjxpPjxiPqCgoCAkZm9ybV92YWx1ZXMgPSAkZm9ybV9zdGF0ZVsmIzM5O3ZhbHVlcyYj Mzk7XTs8L2I+PC9pPjxicj4KPGk+PGI+oDwvYj48L2k+PGJyPjxpPjxiPqCgoCBpZiAoJGZvcm1f c3RhdGVbJiMzOTt2YWx1ZXMmIzM5O11bJiMzOTtjb25maXJtJiMzOTtdKSB7PC9iPjwvaT48YnI+ PGk+PGI+oKCgIKCgoCAkZG9jdG9yID0gJGZvcm1fc3RhdGVbJiMzOTt2YWx1ZXMmIzM5O11bJiMz OTtfZG9jdG9yJiMzOTtdOzwvYj48L2k+PGJyPjxpPjxiPqCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKAgPC9iPjwvaT48YnI+CjxpPjxiPqCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoCAkcXVlcnkgPSAmcXVvdDtERUxFVEWgIEZST00ge2RvY3Rvcn0gd2hlcmUg ZG9jdG9yaWQ9JGRvY3Rvci0mZ3Q7ZG9jdG9yaWQmcXVvdDs7PC9iPjwvaT48YnI+PGk+PGI+oKCg IKCgoKCgoKCgoKCgoKCgoKCgoCAkcnMgPSBkYl9xdWVyeSgkcXVlcnkpOzwvYj48L2k+PGJyPjxp PjxiPqA8L2I+PC9pPjxicj48aT48Yj6goKAgoKCgIC8vZG9jdG9yX2RlbGV0ZSgkZm9ybV9zdGF0 ZVsmIzM5O3ZhbHVlcyYjMzk7XSwgJGRvY3Rvci0mZ3Q7ZG9jdG9yaWQpO6CgoCCgoKAgoKCgIDwv Yj48L2k+PGJyPgo8aT48Yj6gPC9iPjwvaT48YnI+PGk+PGI+oKCgIKCgoCBkcnVwYWxfc2V0X21l c3NhZ2UodCgmIzM5O0RvY3RvciBoYXMgYmVlbiBkZWxldGVkIHN1Y2Nlc3NmdWxseS4mIzM5Oykp OzwvYj48L2k+PGJyPjxpPjxiPqAgoKCgIH08L2I+PC9pPjxicj48aT48Yj6gPC9iPjwvaT48YnI+ PGk+PGI+oKCgIGRydXBhbF9nb3RvKCZxdW90O2RvY3RvciZxdW90Oyk7PC9iPjwvaT48YnI+PGk+ PGI+fTwvYj48L2k+PGJyPgo8YnI+PGk+PGI+ZnVuY3Rpb24gZG9jdG9yX2VkaXRfY29uZmlybSgm YW1wOyRmb3JtX3N0YXRlLCRkb2N0b3IpezwvYj48L2k+PGJyPjxpPjxiPqAkZm9ybSA9IGFycmF5 KCk7PC9iPjwvaT48YnI+PGk+PGI+JGZvcm1bJiMzOTtfZG9jdG9yJiMzOTtdID0gYXJyYXkoPC9i PjwvaT48YnI+PGk+PGI+oKCgIKCgoCAmIzM5OyN0eXBlJiMzOTsgPSZndDsgJiMzOTt2YWx1ZSYj Mzk7LDwvYj48L2k+PGJyPgo8aT48Yj6goKAgoKCgICYjMzk7I3ZhbHVlJiMzOTsgPSZndDsgJGRv Y3Rvciw8L2I+PC9pPjxicj48aT48Yj6goKAgKTs8L2I+PC9pPjxicj48aT48Yj6gJGZvcm1bJiMz OTtmaXJzdG5hbWUmIzM5O109YXJyYXkoPC9iPjwvaT48YnI+PGk+PGI+oKCgIKCgoCAmIzM5OyN0 aXRsZSYjMzk7PSZndDt0KCYjMzk7Rmlyc3QgTmFtZSYjMzk7KSw8L2I+PC9pPjxicj48aT48Yj6g oKAgoKCgICYjMzk7I3R5cGUmIzM5Oz0mZ3Q7JiMzOTt0ZXh0ZmllbGQmIzM5Oyw8L2I+PC9pPjxi cj4KPGk+PGI+oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIC8vJiMzOTsjcHJl Zml4JiMzOTs9Jmd0OyYjMzk7Jmx0O3RhYmxlIGNsYXNzPSZxdW90O2Zvcm10YWJsZSZxdW90OyZn dDsmbHQ7dHImZ3Q7Jmx0O3RkIGNsYXNzPSZxdW90O2xhYmVsdGV4dCZxdW90OyZndDtGaXJzdCBO YW1lJmx0Oy90ZCZndDsmbHQ7dGQgY2xhc3M9JnF1b3Q7dGV4dGJveCZxdW90OyZndDsmIzM5Oyw8 L2I+PC9pPjxicj4KPGk+PGI+oKCgIKCgoCAmIzM5OyNzdWZmaXgmIzM5Oz0mZ3Q7JiMzOTsmbHQ7 L3RkJmd0OyZsdDsvdHImZ3Q7JiMzOTssPC9iPjwvaT48YnI+PGk+PGI+oCApOzwvYj48L2k+PGJy PjxpPjxiPiRmb3JtWyYjMzk7bGFzdG5hbWUmIzM5O109YXJyYXkoPC9iPjwvaT48YnI+PGk+PGI+ oKCgIKCgoCAmIzM5OyN0aXRsZSYjMzk7PSZndDt0KCYjMzk7TGFzdCBOYW1lJiMzOTspLDwvYj48 L2k+PGJyPgo8aT48Yj6goKAgoKCgICYjMzk7I3R5cGUmIzM5Oz0mZ3Q7JiMzOTt0ZXh0ZmllbGQm IzM5Oyw8L2I+PC9pPjxicj48aT48Yj6goKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKAgJiMzOTsjZGVmYXVsdF92YWx1ZSYjMzk7ID0mZ3Q7ICRsYXN0bmFtZSw8L2I+PC9pPjxicj48 aT48Yj6goKAgKTs8L2I+PC9pPjxicj48aT48Yj4kZm9ybVsmIzM5O2dlbmRlciYjMzk7XT1hcnJh eSg8L2I+PC9pPjxicj4KPGk+PGI+oKCgIKCgoCAmIzM5OyN0aXRsZSYjMzk7PSZndDt0KCYjMzk7 R2VuZGVyJiMzOTspLDwvYj48L2k+PGJyPjxpPjxiPqCgoCCgoKAgJiMzOTsjdHlwZSYjMzk7PSZn dDsmIzM5O3JhZGlvcyYjMzk7LDwvYj48L2k+PGJyPjxpPjxiPqCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKAgPC9iPjwvaT48YnI+PGk+PGI+oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoCAmIzM5OyNvcHRpb25zJiMzOTsgPSZndDsgYXJyYXkodCgmIzM5O21hbGUmIzM5 OyksIHQoJiMzOTtmZW1hbGUmIzM5OykpLDwvYj48L2k+PGJyPgo8aT48Yj6goKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgJiMzOTsjZGVmYXVsdF92YWx1ZSYjMzk7ID0mZ3Q7IG1h bGUsPC9iPjwvaT48YnI+PGk+PGI+oKCgICk7PC9iPjwvaT48YnI+PGk+PGI+JGZvcm1bJiMzOTtz dGF0dXMmIzM5O109YXJyYXkoPC9iPjwvaT48YnI+PGk+PGI+oKCgIKCgoCAmIzM5OyN0aXRsZSYj Mzk7PSZndDt0KCYjMzk7U3RhdHVzJiMzOTspLDwvYj48L2k+PGJyPgo8aT48Yj6goKAgoKCgICYj Mzk7I3R5cGUmIzM5Oz0mZ3Q7JiMzOTtyYWRpb3MmIzM5Oyw8L2I+PC9pPjxicj48aT48Yj6goKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgJiMzOTsjZGVmYXVsdF92YWx1ZSYjMzk7 ID0mZ3Q7IGFjdGl2ZSw8L2I+PC9pPjxicj48aT48Yj6goKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKAgJiMzOTsjb3B0aW9ucyYjMzk7ID0mZ3Q7IGFycmF5KHQoJiMzOTthY3RpdmUm IzM5OyksIHQoJiMzOTtpbmFjdGl2ZSYjMzk7KSksPC9iPjwvaT48YnI+CjxpPjxiPqCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgPC9iPjwvaT48YnI+PGk+PGI+oKCgICk7PC9i PjwvaT48YnI+PGk+PGI+oKCgIDwvYj48L2k+PGJyPjxpPjxiPnJldHVybiBjb25maXJtX2Zvcm0o JGZvcm0sdCgmIzM5OyYjMzk7KSw8L2I+PC9pPjxicj48aT48Yj6goKAgoKCgIGlzc2V0KCRfR0VU WyYjMzk7ZGVzdGluYXRpb24mIzM5O10pID8gJF9HRVRbJiMzOTtkZXN0aW5hdGlvbiYjMzk7XSA6 ICZxdW90O2RvY3RvciZxdW90Oyw8L2I+PC9pPjxicj4KPGk+PGI+oKCgIKCgoCB0KCYjMzk7JiMz OTspLDwvYj48L2k+PGJyPjxpPjxiPqCgoCCgoKAgdCgmIzM5O0VkaXQmIzM5OyksPC9iPjwvaT48 YnI+PGk+PGI+oKCgIKCgoCB0KCYjMzk7Q2FuY2VsJiMzOTspKTs8L2I+PC9pPjxicj48aT48Yj59 PC9iPjwvaT48YnI+PGJyPjxpPjxiPmZ1bmN0aW9uIGRvY3Rvcl9lZGl0X2NvbmZpcm1fc3VibWl0 KCRmb3JtLCAmYW1wOyRmb3JtX3N0YXRlKTwvYj48L2k+PGJyPgo8aT48Yj57PC9iPjwvaT48YnI+ PGk+PGI+aWYgKCRmb3JtX3N0YXRlWyYjMzk7dmFsdWVzJiMzOTtdWyYjMzk7Y29uZmlybSYjMzk7 XSkgezwvYj48L2k+PGJyPjxpPjxiPiRkb2N0b3IgPSAkZm9ybV9zdGF0ZVsmIzM5O3ZhbHVlcyYj Mzk7XVsmIzM5O19kb2N0b3JzJiMzOTtdOzwvYj48L2k+PGJyPjxpPjxiPqAkZmlyc3RuYW1lID0g JGZvcm1fc3RhdGVbJiMzOTt2YWx1ZXMmIzM5O11bJiMzOTtmaXJzdG5hbWUmIzM5O107PC9iPjwv aT48YnI+CjxpPjxiPqCgoCAkbGFzdG5hbWUgPSAkZm9ybV9zdGF0ZVsmIzM5O3ZhbHVlcyYjMzk7 XVsmIzM5O2xhc3RuYW1lJiMzOTtdOzwvYj48L2k+PGJyPjxpPjxiPqCgoCAkZ2VuZGVyMT0gJGZv cm1fc3RhdGVbJiMzOTt2YWx1ZXMmIzM5O11bJiMzOTtnZW5kZXImIzM5O107PC9iPjwvaT48YnI+ PGk+PGI+JGdlbmRlciA9oCAkZ2VuZGVyMSA/IHQoJiMzOTtmZW1hbGUmIzM5OykgOiB0KCYjMzk7 bWFsZSYjMzk7KTs8L2I+PC9pPjxicj4KPGk+PGI+oKCgICRzdGF0dXMxID0gJGZvcm1fc3RhdGVb JiMzOTt2YWx1ZXMmIzM5O11bJiMzOTtzdGF0dXMmIzM5O107PC9iPjwvaT48YnI+PGk+PGI+JHN0 YXR1cyA9ICRzdGF0dXMxID8gdCgmIzM5O2luYWN0aXZlJiMzOTspIDogdCgmIzM5O2FjdGl2ZSYj Mzk7KTs8L2I+PC9pPjxicj48YnI+PGJyPjxpPjxiPiRxdWVyeSA9ICZxdW90O1VQREFURaAge2Rv Y3Rvcn0gU0VUIGZpcnN0bmFtZSA9ICYjMzk7JGZpcnN0bmFtZSYjMzk7LCBsYXN0bmFtZT0gJiMz OTskbGFzdG5hbWUmIzM5OywgZ2VuZGVyID0gJiMzOTskZ2VuZGVyJiMzOTssIHN0YXR1cyA9ICYj Mzk7JHN0YXR1cyYjMzk7oCBXSEVSRSBkb2N0b3JpZD0kZG9jdG9yLSZndDtkb2N0b3JpZCZxdW90 Ozs8L2I+PC9pPjxicj4KPGk+PGI+oCRycyA9IGRiX3F1ZXJ5KCRxdWVyeSk7oKCgIKCgoCA8L2I+ PC9pPjxicj48aT48Yj6goKCgIDwvYj48L2k+PGJyPjxpPjxiPqB9PC9iPjwvaT48YnI+PGk+PGI+ ZHJ1cGFsX2dvdG8oJnF1b3Q7ZG9jdG9yJnF1b3Q7KTs8L2I+PC9pPjxicj48aT48Yj59PC9iPjwv aT48YnI+PGJyPjxkaXYgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7Ij48YnI+PC9kaXY+PC9kaXY+ d2hlbiBpIHB1dCBoYXJkY29kZWQgdmFsdWUgaW5mcm9udCBvZiBkb2N0b3JpZCBsaWtlIGRvY3Rv cmlkPTIgdGhlbiBpdHMgZ2V0dGluZyBlZGl0ZWQgYWZ0ZXIgaSBjbGljayBvbiBlZGl0IGJ1dHRv biBidXQgd2hlbiBpIHBhYXNpbmcgaXQgdXNpbmcgdmFyaWJsZSBhbmQgY2xpY2tpbmcgZWRpdCBi dXR0b24gdGhlbiBpdHMgc2hvd2luZyBmb2xsb3dpbmcgZXJyb3Igd2hlcmUgZmlyc3RuYW1lIC0m Z3Q7YW5pdGhhLGxhc3RuYW1lLSZndDthYmMgYXJlIHRoZSB2YWx1ZXMgaSBlbmV0ZXJpbmcgaW4g Zm9ybSB3aGlsZSBlZGl0aW5nLjxicj4KPGJyPjxpIHN0eWxlPSJmb250LWZhbWlseTogdmVyZGFu YSxzYW5zLXNlcmlmOyI+PGI+dXNlciB3YXJuaW5nOiBZb3UgaGF2ZSBhbiBlcnJvciBpbiB5b3Vy IFNRTCBzeW50YXg7IGNoZWNrIHRoZSBtYW51YWwgCnRoYXQgY29ycmVzcG9uZHMgdG8geW91ciBN eVNRTCBzZXJ2ZXIgdmVyc2lvbiBmb3IgdGhlIHJpZ2h0IHN5bnRheCB0byAKdXNlIG5lYXIgJiMz OTsmIzM5OyBhdCBsaW5lIDEKcXVlcnk6IFVQREFURSAgZG9jdG9yIFNFVCBmaXJzdG5hbWUgPSAm IzM5O2FuaXRoYSYjMzk7LCBsYXN0bmFtZT0gJiMzOTthYmMmIzM5OywgZ2VuZGVyID0KICYjMzk7 ZmVtYWxlJiMzOTssIHN0YXR1cyA9ICYjMzk7aW5hY3RpdmUmIzM5OyAgV0hFUkUgIGRvY3Rvcmlk PSBpbiAKRDpcRlItU2VydmVyXEFwYWNoZTJcaHRkb2NzXGZyXHNpdGVzXGFsbFxNb2R1bGVzXGRv Y3Rvclxkb2N0b3IubW9kdWxlIG9uCiBsaW5lIDE1Ny48L2I+PC9pPjxicj48YnI+bXkgaHRtbCB0 YWJsZSBvbiBkcnVwYWwgc2NyZWVuIDxicj48dGFibGUgY2xhc3M9InN0aWNreS1lbmFibGVkIHN0 aWNreS10YWJsZSI+PHRoZWFkIGNsYXNzPSJ0YWJsZUhlYWRlci1wcm9jZXNzZWQiPjx0cj48dGg+ RG9jdG9yIE5hbWU8L3RoPjx0aD5HZW5kZXI8L3RoPjx0aD5TdGF0dXM8L3RoPjx0aD5BY3Rpb248 L3RoPiA8L3RyPjwvdGhlYWQ+Cjx0Ym9keT4KIDx0ciBjbGFzcz0ib2RkIj48dGQ+TWFoZXNoIEdh amFiYXI8L3RkPjx0ZD5tYWxlPC90ZD48dGQ+aW5hY3RpdmUgPC90ZD48dGQ+PGEgaHJlZj0iaHR0 cDovL2xvY2FsaG9zdC9mci9kb2N0b3IvZWRpdC8xIj5FZGl0PC9hPiB8IDxhIGhyZWY9Imh0dHA6 Ly9sb2NhbGhvc3QvZnIvZG9jdG9yL2RlbGV0ZS8xIj5EZWxldGU8L2E+PC90ZD4gPC90cj4KIDx0 ciBjbGFzcz0iZXZlbiI+PHRkPkFuaXRoYSBQYXRpbDwvdGQ+PHRkPmZlbWFsZTwvdGQ+PHRkPmFj dGl2ZTwvdGQ+PHRkPjxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3QvZnIvZG9jdG9yL2VkaXQvMiI+ RWRpdDwvYT4gfCA8YSBocmVmPSJodHRwOi8vbG9jYWxob3N0L2ZyL2RvY3Rvci9kZWxldGUvMiI+ RGVsZXRlPC9hPjwvdGQ+IDwvdHI+CiA8dHIgY2xhc3M9Im9kZCI+PHRkPlBhdml0aHJhIE08L3Rk Pjx0ZD5mZW1hbGU8L3RkPjx0ZD5hY3RpdmU8L3RkPjx0ZD48YSBocmVmPSJodHRwOi8vbG9jYWxo b3N0L2ZyL2RvY3Rvci9lZGl0LzMiPkVkaXQ8L2E+IHwgPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9z dC9mci9kb2N0b3IvZGVsZXRlLzMiPkRlbGV0ZTwvYT48L3RkPiA8L3RyPgogPHRyIGNsYXNzPSJl dmVuIj48dGQ+UmF2aSBNYW5kYXlhbTwvdGQ+PHRkPm1hbGU8L3RkPjx0ZD5hY3RpdmU8L3RkPjx0 ZD48YSBocmVmPSJodHRwOi8vbG9jYWxob3N0L2ZyL2RvY3Rvci9lZGl0LzQiPkVkaXQ8L2E+IHwg PGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdC9mci9kb2N0b3IvZGVsZXRlLzQiPkRlbGV0ZTwvYT48 L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjxicj5lZGl0IGZvcm0gOjxicj4KPGJyPgoKPHAgY2xh c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDAuMDAwMXB0OyBsaW5lLWhlaWdo dDogbm9ybWFsOyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTJwdDsgZm9udC1mYW1pbHk6ICZx dW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90OzsiPkZpcnN0IE5hbWU6 IDxpbnB1dCBtYXhsZW5ndGg9IjEyOCIgc2l6ZT0iNjAiIG5hbWU9ImZpcnN0bmFtZSIgdHlwZT0i dGV4dCI+PC9zcGFuPjwvcD4KCgo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJv dHRvbTogMC4wMDAxcHQ7IGxpbmUtaGVpZ2h0OiBub3JtYWw7Ij48c3BhbiBzdHlsZT0iZm9udC1z aXplOiAxMnB0OyBmb250LWZhbWlseTogJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90 O3NlcmlmJnF1b3Q7OyI+TGFzdCBOYW1lOiA8aW5wdXQgbWF4bGVuZ3RoPSIxMjgiIHNpemU9IjYw IiBuYW1lPSJsYXN0bmFtZSIgdHlwZT0idGV4dCI+PC9zcGFuPjwvcD4KCgo8cCBjbGFzcz0iTXNv Tm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMC4wMDAxcHQ7IGxpbmUtaGVpZ2h0OiBub3Jt YWw7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMnB0OyBmb250LWZhbWlseTogJnF1b3Q7VGlt ZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7OyI+R2VuZGVyOiA8L3NwYW4+PC9w PgoKPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDAuMDAwMXB0OyBs aW5lLWhlaWdodDogbm9ybWFsOyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTJwdDsgZm9udC1m YW1pbHk6ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90OzsiPjxp bnB1dCBuYW1lPSJnZW5kZXIiIHZhbHVlPSIwIiB0eXBlPSJyYWRpbyI+bWFsZQo8L3NwYW4+PC9w PgoKPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0b206IDAuMDAwMXB0OyBs aW5lLWhlaWdodDogbm9ybWFsOyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTJwdDsgZm9udC1m YW1pbHk6ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90OzsiPjxp bnB1dCBuYW1lPSJnZW5kZXIiIHZhbHVlPSIxIiB0eXBlPSJyYWRpbyI+ZmVtYWxlCjwvc3Bhbj48 L3A+Cgo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMC4wMDAxcHQ7 IGxpbmUtaGVpZ2h0OiBub3JtYWw7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMnB0OyBmb250 LWZhbWlseTogJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7OyI+ U3RhdHVzOiA8L3NwYW4+PC9wPgoKPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1i b3R0b206IDAuMDAwMXB0OyBsaW5lLWhlaWdodDogbm9ybWFsOyI+PHNwYW4gc3R5bGU9ImZvbnQt c2l6ZTogMTJwdDsgZm9udC1mYW1pbHk6ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVv dDtzZXJpZiZxdW90OzsiPjxpbnB1dCBuYW1lPSJzdGF0dXMiIHZhbHVlPSIwIiB0eXBlPSJyYWRp byI+YWN0aXZlCjwvc3Bhbj48L3A+Cgo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2lu LWJvdHRvbTogMC4wMDAxcHQ7IGxpbmUtaGVpZ2h0OiBub3JtYWw7Ij48c3BhbiBzdHlsZT0iZm9u dC1zaXplOiAxMnB0OyBmb250LWZhbWlseTogJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZx dW90O3NlcmlmJnF1b3Q7OyI+PGlucHV0IG5hbWU9InN0YXR1cyIgdmFsdWU9IjEiIHR5cGU9InJh ZGlvIj5pbmFjdGl2ZQo8L3NwYW4+PC9wPgoKPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1h cmdpbi1ib3R0b206IDAuMDAwMXB0OyBsaW5lLWhlaWdodDogbm9ybWFsOyI+PHNwYW4gc3R5bGU9 ImZvbnQtc2l6ZTogMTJwdDsgZm9udC1mYW1pbHk6ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90 OywmcXVvdDtzZXJpZiZxdW90OzsiPjxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+PGlucHV0 IG5hbWU9ImNvbmZpcm0iIHZhbHVlPSIxIiB0eXBlPSJoaWRkZW4iPjwvc3Bhbj48L3NwYW4+PC9w PgoKCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwLjAwMDFwdDsg bGluZS1oZWlnaHQ6IG5vcm1hbDsiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEycHQ7IGZvbnQt ZmFtaWx5OiAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDs7Ij48 aW5wdXQgdmFsdWU9IkVkaXQiIG5hbWU9Im9wIiB0eXBlPSJzdWJtaXQiPjxhIGhyZWY9Imh0dHA6 Ly9sb2NhbGhvc3QvZnIvZG9jdG9yIj48c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5DYW5jZWw8 L3NwYW4+PC9hPjwvc3Bhbj48L3A+CgoKPHAgY2xhc3M9Ik1zb05vcm1hbCI+oDwvcD4KCjxicj5Q bGVhc2UgaGVscCBtZSBob3cgaSBjYW4gcGFzcyB0aGF0IGRvY3RvcmlkIGFuZCBhbHNvIGhlbHAg bWUgZm9yIGdldHRpbmcgZGVmYXVsdCB2YWx1ZXMgaW4gZm9ybSB3aGVuIGkgY2xpY2sgZWRpdCBi dXR0b24gaW4gdGFibGUuIDxicj48YnI+PGJyPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDM0LCAz NCwgMzQpOyBmb250LWZhbWlseTogJiMzOTtMdWNpZGEgR3JhbmRlJiMzOTssJiMzOTtEZWphVnUg U2FucyYjMzk7LCYjMzk7Qml0c3RyZWFtIFZlcmEgU2FucyYjMzk7LFZlcmRhbmEsQXJpYWwsc2Fu cy1zZXJpZjsgZm9udC1zaXplOiAxM3B4OyBsaW5lLWhlaWdodDogMThweDsiPjxwIHN0eWxlPSJi b3JkZXItd2lkdGg6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IGZvbnQtc2l6 ZTogMTNweDsgbWFyZ2luOiAwcHggMHB4IDAuNjkyZW07IHBhZGRpbmc6IDBweDsgdmVydGljYWwt YWxpZ246IGJhc2VsaW5lOyI+Cgo8c3BhbiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0 ZTsgY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6ICYjMzk7VGltZXMgTmV3IFJvbWFu JiMzOTs7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50OiBub3JtYWw7IGZvbnQtd2Vp Z2h0OiBub3JtYWw7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IGxpbmUtaGVpZ2h0OiBub3JtYWw7 IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9y bWFsOyB3b3JkLXNwYWNpbmc6IDBweDsgZm9udC1zaXplOiBtZWRpdW07Ij48c3BhbiBzdHlsZT0i Zm9udC1mYW1pbHk6IGFyaWFsOyBmb250LXNpemU6IHNtYWxsOyI+PGI+PGkgc3R5bGU9ImNvbG9y OiByZ2IoMCwgMTUzLCAwKTsgZm9udC1mYW1pbHk6ICYjMzk7Y29taWMgc2FucyBtcyYjMzk7LHNh bnMtc2VyaWY7Ij48Zm9udCBzdHlsZT0iY29sb3I6IHJnYigwLCAxNTMsIDApOyIgc2l6ZT0iMiI+ TUFIRVNIIEdBSkFCQVI8L2ZvbnQ+PC9pPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAxNTMsIDAp OyBmb250LWZhbWlseTogJiMzOTtjb21pYyBzYW5zIG1zJiMzOTssc2Fucy1zZXJpZjsiPgoKPGZv bnQgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMTUzLCAwKTsgZm9udC1mYW1pbHk6ICYjMzk7Y29taWMg c2FucyBtcyYjMzk7LHNhbnMtc2VyaWY7IiBzaXplPSIyIj48aT5Tb2Z0d2FyZSBEZXZlbG9wZXI8 YnI+RnJvbnRhbFJhaW4gVGVjaG5vbG9naWVzLEJlbmdhbHVydTwvaT48L2ZvbnQ+PC9iPjxicj48 L3NwYW4+PC9zcGFuPjwvcD48cCBzdHlsZT0iYm9yZGVyLXdpZHRoOiAwcHg7IGJhY2tncm91bmQt Y29sb3I6IHRyYW5zcGFyZW50OyBmb250LXNpemU6IDEzcHg7IG1hcmdpbjogMHB4IDBweCAwLjY5 MmVtOyBwYWRkaW5nOiAwcHg7IHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsiPgoKPC9wPjwvc3Bh bj48YnI+PGJyPgo= --===============2984114618923958591==-- From carl.wiedemann@gmail.com Tue Jan 11 17:37:08 2011 From: Carl Wiedemann To: development@drupal.org Subject: Re: [development] Id is not passing Date: Tue, 11 Jan 2011 10:37:05 -0700 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2461859486387502715==" --===============2461859486387502715== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable First, your update query is not safe from SQL injection. Please learn how to use db_query properly http://api.drupal.org/api/drupal/includes--database.pgsql.inc/function/db_que= ry/6 Second, you have a typo -- should be '_doctor' not '_doctors' in your _submit() function. Default values are clearly explained here http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html/= 6#default_value Please *read the documentation* and try to solve your own PHP bugs before posting to this list in the future. On Mon, Jan 10, 2011 at 2:26 AM, mahesh gajabar wrote: > Hi > I have wrote a module for despalying my database table data into html > format table. I have delete and edit button infront of every button. delete > function is working fine. Code is as below > > > > * > *function doctor_menu() {* > * $items =3D array();* > * * > * $items['doctor'] =3D array(* > * 'title' =3D> t('Doctors'),* > * 'page callback' =3D> 'doctors_list',* > * 'access arguments' =3D> array('access doctor'),* > * 'type' =3D> MENU_NORMAL_ITEM,* > * );* > * * > * $items['doctor/delete/%doctor_user'] =3D array(* > * 'title' =3D> t('Delete doctor'),* > * 'page callback' =3D> 'drupal_get_form',* > * 'page arguments' =3D> array('doctor_delete_confirm', 2),* > * 'access arguments' =3D> array('access doctor'),* > * 'type' =3D> MENU_CALLBACK,* > * );* > * * > * $items['doctor/edit/form'] =3D array(* > * 'title' =3D> t('doctor'),* > * 'page callback' =3D> 'drupal_get_form',* > * 'page arguments' =3D> array('doctor_page',2),* > * 'access arguments' =3D> array('access doctor'),* > * 'type' =3D> MENU_NORMAL_ITEM,* > * );* > > *$items['doctor/edit/%doctor_user'] =3D array(* > * 'title' =3D> t('Edit Form'),* > * 'page callback' =3D> 'drupal_get_form',* > * 'page arguments' =3D> array('doctor_edit_confirm', 2),* > * 'access arguments' =3D> array('access doctor'),* > * 'type' =3D> MENU_NORMAL_ITEM,* > * );* > * return $items;* > *}* > > *function doctors_list() {* > * $header =3D array(t('Doctor Name'), t('Gender'), t('Status'), > t('Action'));* > * * > * $query =3D "SELECT * FROM {doctor}";* > * $rs =3D db_query($query);* > * * > * $row =3D array();* > * * > * if ($rs) {* > * while ($data =3D db_fetch_object($rs)) {* > * $gender =3D $data->gender;* > * $status =3D $data->status ;* > * $row[] =3D array(stripslashes(ucwords($data->firstname)) . ' ' > . stripslashes(ucwords($data->lastname)), $gender, $status, * > * "doctorid}'>" . t('Edit') . > " | doctorid}'>" . t('Delete') . "= "); > * > * }* > * }* > * * > * $str .=3D theme_table($header, $row);* > * * > * return $str;* > *}* > *function doctor_user_load($doctorid) {* > * $query =3D "SELECT * FROM {doctor} WHERE doctorid =3D %d";* > * $rs =3D db_query($query, $doctorid);* > * * > * if ($rs) {* > * while ($data =3D db_fetch_object($rs)) {* > * return $data;* > * }* > * }* > * * > * return FALSE;* > *}* > > > *function doctor_delete_confirm(&$form_state, $doctor) {* > * $form['_doctor'] =3D array(* > * '#type' =3D> 'value',* > * '#value' =3D> $doctor,* > * );* > * * > * return confirm_form($form,* > * t('Are you sure you want to delete this doctor?'),* > * isset($_GET['destination']) ? $_GET['destination'] : "doctor",* > * t('This action cannot be undone.'),* > * t('Delete'),* > * t('Cancel'));* > *}* > > *function doctor_delete_confirm_submit($form, &$form_state) {* > * $form_values =3D $form_state['values'];* > * * > * if ($form_state['values']['confirm']) {* > * $doctor =3D $form_state['values']['_doctor'];* > * * > * $query =3D "DELETE FROM {doctor} > where doctorid=3D$doctor->doctorid";* > * $rs =3D db_query($query);* > * * > * //doctor_delete($form_state['values'], $doctor->doctorid); > * > * * > * drupal_set_message(t('Doctor has been deleted successfully.'));* > * }* > * * > * drupal_goto("doctor");* > *}* > > *function doctor_edit_confirm(&$form_state,$doctor){* > * $form =3D array();* > *$form['_doctor'] =3D array(* > * '#type' =3D> 'value',* > * '#value' =3D> $doctor,* > * );* > * $form['firstname']=3Darray(* > * '#title'=3D>t('First Name'),* > * '#type'=3D>'textfield',* > * //'#prefix'=3D>'
First Name',* * '#suffix'=>'
class=3D"formtable">',* > * );* > *$form['lastname']=3Darray(* > * '#title'=3D>t('Last Name'),* > * '#type'=3D>'textfield',* > * '#default_value' =3D> $lastname,* > * );* > *$form['gender']=3Darray(* > * '#title'=3D>t('Gender'),* > * '#type'=3D>'radios',* > * * > * '#options' =3D> array(t('male'), > t('female')),* > * '#default_value' =3D> male,* > * );* > *$form['status']=3Darray(* > * '#title'=3D>t('Status'),* > * '#type'=3D>'radios',* > * '#default_value' =3D> active,* > * '#options' =3D> array(t('active'), > t('inactive')),* > * * > * );* > * * > *return confirm_form($form,t(''),* > * isset($_GET['destination']) ? $_GET['destination'] : "doctor",* > * t(''),* > * t('Edit'),* > * t('Cancel'));* > *}* > > *function doctor_edit_confirm_submit($form, &$form_state)* > *{* > *if ($form_state['values']['confirm']) {* > *$doctor =3D $form_state['values']['_doctors'];* > * $firstname =3D $form_state['values']['firstname'];* > * $lastname =3D $form_state['values']['lastname'];* > * $gender1=3D $form_state['values']['gender'];* > *$gender =3D $gender1 ? t('female') : t('male');* > * $status1 =3D $form_state['values']['status'];* > *$status =3D $status1 ? t('inactive') : t('active');* > > > *$query =3D "UPDATE {doctor} SET firstname =3D '$firstname', lastname=3D > '$lastname', gender =3D '$gender', status =3D '$status' WHERE > doctorid=3D$doctor->doctorid";* > * $rs =3D db_query($query); * > * * > * }* > *drupal_goto("doctor");* > *}* > > > when i put hardcoded value infront of doctorid like doctorid=3D2 then its > getting edited after i click on edit button but when i paasing it using > varible and clicking edit button then its showing following error where > firstname ->anitha,lastname->abc are the values i enetering in form while > editing. > > *user warning: You have an error in your SQL syntax; check the manual that > corresponds to your MySQL server version for the right syntax to use near '' > at line 1 query: UPDATE doctor SET firstname =3D 'anitha', lastname=3D 'abc= ', > gender =3D 'female', status =3D 'inactive' WHERE doctorid=3D in > D:\FR-Server\Apache2\htdocs\fr\sites\all\Modules\doctor\doctor.module on > line 157.* > > my html table on drupal screen > Doctor NameGenderStatusAction Mahesh Gajabarmaleinactive Edit| > Delete Anitha PatilfemaleactiveEdit| > Delete Pavithra MfemaleactiveEdit| > Delete Ravi MandayammaleactiveEdit| > Delete > edit form : > > First Name: > > Last Name: > > Gender: > > male > > female > > Status: > > active > > inactive > > Cancel > > > > Please help me how i can pass that doctorid and also help me for getting > default values in form when i click edit button in table. > > > *MAHESH GAJABAR > Software Developer > FrontalRain Technologies,Bengaluru* > > > > --===============2461859486387502715== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 Rmlyc3QsIHlvdXIgdXBkYXRlIHF1ZXJ5IGlzIG5vdCBzYWZlIGZyb20gU1FMIGluamVjdGlvbi4g UGxlYXNlIGxlYXJuIGhvdyB0byB1c2UgZGJfcXVlcnkgcHJvcGVybHmgPGEgaHJlZj0iaHR0cDov L2FwaS5kcnVwYWwub3JnL2FwaS9kcnVwYWwvaW5jbHVkZXMtLWRhdGFiYXNlLnBnc3FsLmluYy9m dW5jdGlvbi9kYl9xdWVyeS82Ij5odHRwOi8vYXBpLmRydXBhbC5vcmcvYXBpL2RydXBhbC9pbmNs dWRlcy0tZGF0YWJhc2UucGdzcWwuaW5jL2Z1bmN0aW9uL2RiX3F1ZXJ5LzY8L2E+PGRpdj4KPGJy PjwvZGl2PjxkaXY+U2Vjb25kLCB5b3UgaGF2ZSBhIHR5cG8gLS0gc2hvdWxkIGJlICYjMzk7X2Rv Y3RvciYjMzk7IG5vdCAmIzM5O19kb2N0b3JzJiMzOTsgaW4geW91ciBfc3VibWl0KCkgZnVuY3Rp b24uPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5EZWZhdWx0IHZhbHVlcyBhcmUgY2xlYXJseSBl eHBsYWluZWQgaGVyZaA8YSBocmVmPSJodHRwOi8vYXBpLmRydXBhbC5vcmcvYXBpL2RydXBhbC9k ZXZlbG9wZXItLXRvcGljcy0tZm9ybXNfYXBpX3JlZmVyZW5jZS5odG1sLzYjZGVmYXVsdF92YWx1 ZSI+aHR0cDovL2FwaS5kcnVwYWwub3JnL2FwaS9kcnVwYWwvZGV2ZWxvcGVyLS10b3BpY3MtLWZv cm1zX2FwaV9yZWZlcmVuY2UuaHRtbC82I2RlZmF1bHRfdmFsdWU8L2E+PC9kaXY+CjxkaXY+PGJy PjwvZGl2PjxkaXY+UGxlYXNlICpyZWFkIHRoZSBkb2N1bWVudGF0aW9uKiBhbmQgdHJ5IHRvIHNv bHZlIHlvdXIgb3duIFBIUCBidWdzIGJlZm9yZSBwb3N0aW5nIHRvIHRoaXMgbGlzdCBpbiB0aGUg ZnV0dXJlLjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1 b3RlIj5PbiBNb24sIEphbiAxMCwgMjAxMSBhdCAyOjI2IEFNLCBtYWhlc2ggZ2FqYWJhciA8c3Bh biBkaXI9Imx0ciI+Jmx0OzxhIGhyZWY9Im1haWx0bzptYWhlc2gxNDNhbkBnbWFpbC5jb20iPm1h aGVzaDE0M2FuQGdtYWlsLmNvbTwvYT4mZ3Q7PC9zcGFuPiB3cm90ZTo8YnI+CjxibG9ja3F1b3Rl IGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4O2JvcmRlci1sZWZ0 OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDoxZXg7Ij5IaSA8YnI+SSBoYXZlIHdyb3RlIGEg bW9kdWxlIGZvciBkZXNwYWx5aW5nIG15IGRhdGFiYXNlIHRhYmxlIGRhdGEgaW50byBodG1sIGZv cm1hdCB0YWJsZS4gSSBoYXZlIGRlbGV0ZSBhbmQgZWRpdCBidXR0b24gaW5mcm9udCBvZiBldmVy eSBidXR0b24uIGRlbGV0ZSBmdW5jdGlvbiBpcyB3b3JraW5nIGZpbmUuIENvZGUgaXMgYXMgYmVs b3c8YnI+Cjxicj48YnI+PGJyPjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjQwcHg7Zm9udC1mYW1p bHk6dmVyZGFuYSxzYW5zLXNlcmlmIj4KPGk+PGI+Jmx0Oz9waHA8L2I+PC9pPjxicj48YnI+PGk+ PGI+ZnVuY3Rpb24gZG9jdG9yX21lbnUoKSB7PC9iPjwvaT48YnI+PGk+PGI+oCAkaXRlbXMgPSBh cnJheSgpOzwvYj48L2k+PGJyPjxpPjxiPqA8L2I+PC9pPjxicj48aT48Yj6gICRpdGVtc1smIzM5 O2RvY3RvciYjMzk7XSA9IGFycmF5KDwvYj48L2k+PGJyPjxpPjxiPqCgoCAmIzM5O3RpdGxlJiMz OTsgPSZndDsgdCgmIzM5O0RvY3RvcnMmIzM5OyksPC9iPjwvaT48YnI+Cgo8aT48Yj6goKAgJiMz OTtwYWdlIGNhbGxiYWNrJiMzOTsgPSZndDsgJiMzOTtkb2N0b3JzX2xpc3QmIzM5Oyw8L2I+PC9p Pjxicj48aT48Yj6goKAgJiMzOTthY2Nlc3MgYXJndW1lbnRzJiMzOTsgPSZndDsgYXJyYXkoJiMz OTthY2Nlc3MgZG9jdG9yJiMzOTspLDwvYj48L2k+PGJyPjxpPjxiPqCgoCAmIzM5O3R5cGUmIzM5 OyA9Jmd0OyBNRU5VX05PUk1BTF9JVEVNLDwvYj48L2k+PGJyPgoKPGk+PGI+oCApOzwvYj48L2k+ PGJyPjxpPjxiPqA8L2I+PC9pPjxicj48aT48Yj6gICRpdGVtc1smIzM5O2RvY3Rvci9kZWxldGUv JWRvY3Rvcl91c2VyJiMzOTtdID0gYXJyYXkoPC9iPjwvaT48YnI+PGk+PGI+oKCgICYjMzk7dGl0 bGUmIzM5OyA9Jmd0OyB0KCYjMzk7RGVsZXRlIGRvY3RvciYjMzk7KSw8L2I+PC9pPjxicj48aT48 Yj6goKAgJiMzOTtwYWdlIGNhbGxiYWNrJiMzOTsgPSZndDsgJiMzOTtkcnVwYWxfZ2V0X2Zvcm0m IzM5Oyw8L2I+PC9pPjxicj4KCjxpPjxiPqCgoCAmIzM5O3BhZ2UgYXJndW1lbnRzJiMzOTsgPSZn dDsgYXJyYXkoJiMzOTtkb2N0b3JfZGVsZXRlX2NvbmZpcm0mIzM5OywgMiksPC9iPjwvaT48YnI+ PGk+PGI+oKCgICYjMzk7YWNjZXNzIGFyZ3VtZW50cyYjMzk7ID0mZ3Q7IGFycmF5KCYjMzk7YWNj ZXNzIGRvY3RvciYjMzk7KSw8L2I+PC9pPjxicj48aT48Yj6goKAgJiMzOTt0eXBlJiMzOTsgPSZn dDsgTUVOVV9DQUxMQkFDSyw8L2I+PC9pPjxicj4KCjxpPjxiPqAgKTs8L2I+PC9pPjxicj48aT48 Yj6gPC9iPjwvaT48YnI+PGk+PGI+oCRpdGVtc1smIzM5O2RvY3Rvci9lZGl0L2Zvcm0mIzM5O10g PSBhcnJheSg8L2I+PC9pPjxicj48aT48Yj6goKAgJiMzOTt0aXRsZSYjMzk7ID0mZ3Q7IHQoJiMz OTtkb2N0b3ImIzM5OyksPC9iPjwvaT48YnI+PGk+PGI+oKCgICYjMzk7cGFnZSBjYWxsYmFjayYj Mzk7ID0mZ3Q7ICYjMzk7ZHJ1cGFsX2dldF9mb3JtJiMzOTssPC9iPjwvaT48YnI+Cgo8aT48Yj6g oKAgJiMzOTtwYWdlIGFyZ3VtZW50cyYjMzk7ID0mZ3Q7IGFycmF5KCYjMzk7ZG9jdG9yX3BhZ2Um IzM5OywyKSw8L2I+PC9pPjxicj48aT48Yj6goKAgJiMzOTthY2Nlc3MgYXJndW1lbnRzJiMzOTsg PSZndDsgYXJyYXkoJiMzOTthY2Nlc3MgZG9jdG9yJiMzOTspLDwvYj48L2k+PGJyPjxpPjxiPqCg oCAmIzM5O3R5cGUmIzM5OyA9Jmd0OyBNRU5VX05PUk1BTF9JVEVNLDwvYj48L2k+PGJyPgoKPGk+ PGI+oCApOzwvYj48L2k+PGJyPjxicj48aT48Yj4kaXRlbXNbJiMzOTtkb2N0b3IvZWRpdC8lZG9j dG9yX3VzZXImIzM5O10gPSBhcnJheSg8L2I+PC9pPjxicj48aT48Yj6goKAgJiMzOTt0aXRsZSYj Mzk7ID0mZ3Q7IHQoJiMzOTtFZGl0IEZvcm0mIzM5OyksPC9iPjwvaT48YnI+PGk+PGI+oKCgICYj Mzk7cGFnZSBjYWxsYmFjayYjMzk7ID0mZ3Q7ICYjMzk7ZHJ1cGFsX2dldF9mb3JtJiMzOTssPC9i PjwvaT48YnI+Cgo8aT48Yj6goKAgJiMzOTtwYWdlIGFyZ3VtZW50cyYjMzk7ID0mZ3Q7IGFycmF5 KCYjMzk7ZG9jdG9yX2VkaXRfY29uZmlybSYjMzk7LCAyKSw8L2I+PC9pPjxicj48aT48Yj6goCAm IzM5O2FjY2VzcyBhcmd1bWVudHMmIzM5OyA9Jmd0OyBhcnJheSgmIzM5O2FjY2VzcyBkb2N0b3Im IzM5OyksPC9iPjwvaT48YnI+PGk+PGI+oKCgICYjMzk7dHlwZSYjMzk7ID0mZ3Q7IE1FTlVfTk9S TUFMX0lURU0sPC9iPjwvaT48YnI+Cgo8aT48Yj6gICk7PC9iPjwvaT48YnI+PGk+PGI+oCByZXR1 cm4gJGl0ZW1zOzwvYj48L2k+PGJyPjxpPjxiPn08L2I+PC9pPjxicj48YnI+PGk+PGI+ZnVuY3Rp b24gZG9jdG9yc19saXN0KCkgezwvYj48L2k+PGJyPjxpPjxiPqCgoCAkaGVhZGVyID0gYXJyYXko dCgmIzM5O0RvY3RvciBOYW1lJiMzOTspLCB0KCYjMzk7R2VuZGVyJiMzOTspLKAgdCgmIzM5O1N0 YXR1cyYjMzk7KSwgdCgmIzM5O0FjdGlvbiYjMzk7KSk7PC9iPjwvaT48YnI+Cgo8aT48Yj6gPC9i PjwvaT48YnI+PGk+PGI+oKCgICRxdWVyeSA9ICZxdW90O1NFTEVDVCAqIEZST00ge2RvY3Rvcn0m cXVvdDs7PC9iPjwvaT48YnI+PGk+PGI+oKCgICRycyA9IGRiX3F1ZXJ5KCRxdWVyeSk7PC9iPjwv aT48YnI+PGk+PGI+oDwvYj48L2k+PGJyPjxpPjxiPqCgoCAkcm93ID0gYXJyYXkoKTs8L2I+PC9p Pjxicj48aT48Yj6gPC9iPjwvaT48YnI+PGk+PGI+oKCgIGlmICgkcnMpIHs8L2I+PC9pPjxicj4K CjxpPjxiPqCgoCCgoKAgd2hpbGUgKCRkYXRhID0gZGJfZmV0Y2hfb2JqZWN0KCRycykpIHs8L2I+ PC9pPjxicj48aT48Yj6goKAgoKCgIKCgoCAkZ2VuZGVyID0gJGRhdGEtJmd0O2dlbmRlcjs8L2I+ PC9pPjxicj48aT48Yj6goKAgoKCgIKCgoCAkc3RhdHVzID0gJGRhdGEtJmd0O3N0YXR1cyA7PC9i PjwvaT48YnI+PGk+PGI+oKCgIKCgoCCgoKAgJHJvd1tdID0gYXJyYXkoc3RyaXBzbGFzaGVzKHVj d29yZHMoJGRhdGEtJmd0O2ZpcnN0bmFtZSkpIC4gJiMzOTsgJiMzOTsgLiBzdHJpcHNsYXNoZXMo dWN3b3JkcygkZGF0YS0mZ3Q7bGFzdG5hbWUpKSwgJGdlbmRlciwgJHN0YXR1cywgPC9iPjwvaT48 YnI+Cgo8aT48Yj6goKAgoKCgIKCgoCAmcXVvdDsmbHQ7YSBocmVmPSYjMzk7ZG9jdG9yL2VkaXQv eyRkYXRhLSZndDtkb2N0b3JpZH0mIzM5OyZndDsmcXVvdDsgLiB0KCYjMzk7RWRpdCYjMzk7KSAu ICZxdW90OyZsdDsvYSZndDsgfCAmbHQ7YSBocmVmPSYjMzk7ZG9jdG9yL2RlbGV0ZS97JGRhdGEt Jmd0O2RvY3RvcmlkfSYjMzk7Jmd0OyZxdW90OyAuIHQoJiMzOTtEZWxldGUmIzM5OykgLiAmcXVv dDsmbHQ7L2EmZ3Q7JnF1b3Q7KTs8L2I+PC9pPjxicj4KCjxpPjxiPqCgoCCgoKAgfTwvYj48L2k+ PGJyPjxpPjxiPqCgoCB9PC9iPjwvaT48YnI+PGk+PGI+oDwvYj48L2k+PGJyPjxpPjxiPqCgoCAk c3RyIC49IHRoZW1lX3RhYmxlKCRoZWFkZXIsICRyb3cpOzwvYj48L2k+PGJyPjxpPjxiPqA8L2I+ PC9pPjxicj48aT48Yj6goKAgcmV0dXJuICRzdHI7PC9iPjwvaT48YnI+PGk+PGI+fTwvYj48L2k+ PGJyPjxpPjxiPmZ1bmN0aW9uIGRvY3Rvcl91c2VyX2xvYWQoJGRvY3RvcmlkKSB7PC9iPjwvaT48 YnI+Cgo8aT48Yj6goKAgJHF1ZXJ5ID0gJnF1b3Q7U0VMRUNUICogRlJPTSB7ZG9jdG9yfSBXSEVS RSBkb2N0b3JpZCA9ICVkJnF1b3Q7OzwvYj48L2k+PGJyPjxpPjxiPqCgoCAkcnMgPSBkYl9xdWVy eSgkcXVlcnksICRkb2N0b3JpZCk7PC9iPjwvaT48YnI+PGk+PGI+oDwvYj48L2k+PGJyPjxpPjxi PqCgoCBpZiAoJHJzKSB7PC9iPjwvaT48YnI+PGk+PGI+oKCgIKCgoCB3aGlsZSAoJGRhdGEgPSBk Yl9mZXRjaF9vYmplY3QoJHJzKSkgezwvYj48L2k+PGJyPgoKPGk+PGI+oKCgIKCgoCCgoKAgcmV0 dXJuICRkYXRhOzwvYj48L2k+PGJyPjxpPjxiPqCgoCCgoKAgfTwvYj48L2k+PGJyPjxpPjxiPqCg oCB9PC9iPjwvaT48YnI+PGk+PGI+oDwvYj48L2k+PGJyPjxpPjxiPqCgoCByZXR1cm4gRkFMU0U7 PC9iPjwvaT48YnI+PGk+PGI+fTwvYj48L2k+PGJyPjxicj48YnI+PGk+PGI+ZnVuY3Rpb24gZG9j dG9yX2RlbGV0ZV9jb25maXJtKCZhbXA7JGZvcm1fc3RhdGUsICRkb2N0b3IpIHs8L2I+PC9pPjxi cj4KCjxpPjxiPqCgoCAkZm9ybVsmIzM5O19kb2N0b3ImIzM5O10gPSBhcnJheSg8L2I+PC9pPjxi cj48aT48Yj6goKAgoKCgICYjMzk7I3R5cGUmIzM5OyA9Jmd0OyAmIzM5O3ZhbHVlJiMzOTssPC9i PjwvaT48YnI+PGk+PGI+oKCgIKCgoCAmIzM5OyN2YWx1ZSYjMzk7ID0mZ3Q7ICRkb2N0b3IsPC9i PjwvaT48YnI+PGk+PGI+oKCgICk7PC9iPjwvaT48YnI+PGk+PGI+oDwvYj48L2k+PGJyPjxpPjxi PqCgoCByZXR1cm4gY29uZmlybV9mb3JtKCRmb3JtLDwvYj48L2k+PGJyPgoKPGk+PGI+oKCgIKCg oCB0KCYjMzk7QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGRvY3Rvcj8mIzM5 OyksPC9iPjwvaT48YnI+PGk+PGI+oKCgIKCgoCBpc3NldCgkX0dFVFsmIzM5O2Rlc3RpbmF0aW9u JiMzOTtdKSA/ICRfR0VUWyYjMzk7ZGVzdGluYXRpb24mIzM5O10gOiAmcXVvdDtkb2N0b3ImcXVv dDssPC9iPjwvaT48YnI+PGk+PGI+oKCgIKCgoCB0KCYjMzk7VGhpcyBhY3Rpb24gY2Fubm90IGJl IHVuZG9uZS4mIzM5OyksPC9iPjwvaT48YnI+Cgo8aT48Yj6goKAgoKCgIHQoJiMzOTtEZWxldGUm IzM5OyksPC9iPjwvaT48YnI+PGk+PGI+oKCgIKCgoCB0KCYjMzk7Q2FuY2VsJiMzOTspKTs8L2I+ PC9pPjxicj48aT48Yj59PC9iPjwvaT48YnI+PGJyPjxpPjxiPmZ1bmN0aW9uIGRvY3Rvcl9kZWxl dGVfY29uZmlybV9zdWJtaXQoJGZvcm0sICZhbXA7JGZvcm1fc3RhdGUpIHs8L2I+PC9pPjxicj48 aT48Yj6goKAgJGZvcm1fdmFsdWVzID0gJGZvcm1fc3RhdGVbJiMzOTt2YWx1ZXMmIzM5O107PC9i PjwvaT48YnI+Cgo8aT48Yj6gPC9iPjwvaT48YnI+PGk+PGI+oKCgIGlmICgkZm9ybV9zdGF0ZVsm IzM5O3ZhbHVlcyYjMzk7XVsmIzM5O2NvbmZpcm0mIzM5O10pIHs8L2I+PC9pPjxicj48aT48Yj6g oKAgoKCgICRkb2N0b3IgPSAkZm9ybV9zdGF0ZVsmIzM5O3ZhbHVlcyYjMzk7XVsmIzM5O19kb2N0 b3ImIzM5O107PC9iPjwvaT48YnI+PGk+PGI+oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoCA8L2I+PC9pPjxicj4KCjxpPjxiPqCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoCAkcXVlcnkgPSAmcXVvdDtERUxFVEWgIEZST00ge2RvY3Rvcn0gd2hlcmUgZG9jdG9y aWQ9JGRvY3Rvci0mZ3Q7ZG9jdG9yaWQmcXVvdDs7PC9iPjwvaT48YnI+PGk+PGI+oKCgIKCgoKCg oKCgoKCgoKCgoKCgoCAkcnMgPSBkYl9xdWVyeSgkcXVlcnkpOzwvYj48L2k+PGJyPjxpPjxiPqA8 L2I+PC9pPjxicj48aT48Yj6goKAgoKCgIC8vZG9jdG9yX2RlbGV0ZSgkZm9ybV9zdGF0ZVsmIzM5 O3ZhbHVlcyYjMzk7XSwgJGRvY3Rvci0mZ3Q7ZG9jdG9yaWQpO6CgoCCgoKAgoKCgIDwvYj48L2k+ PGJyPgoKPGk+PGI+oDwvYj48L2k+PGJyPjxpPjxiPqCgoCCgoKAgZHJ1cGFsX3NldF9tZXNzYWdl KHQoJiMzOTtEb2N0b3IgaGFzIGJlZW4gZGVsZXRlZCBzdWNjZXNzZnVsbHkuJiMzOTspKTs8L2I+ PC9pPjxicj48aT48Yj6gIKCgoCB9PC9iPjwvaT48YnI+PGk+PGI+oDwvYj48L2k+PGJyPjxpPjxi PqCgoCBkcnVwYWxfZ290bygmcXVvdDtkb2N0b3ImcXVvdDspOzwvYj48L2k+PGJyPjxpPjxiPn08 L2I+PC9pPjxicj4KCjxicj48aT48Yj5mdW5jdGlvbiBkb2N0b3JfZWRpdF9jb25maXJtKCZhbXA7 JGZvcm1fc3RhdGUsJGRvY3Rvcil7PC9iPjwvaT48YnI+PGk+PGI+oCRmb3JtID0gYXJyYXkoKTs8 L2I+PC9pPjxicj48aT48Yj4kZm9ybVsmIzM5O19kb2N0b3ImIzM5O10gPSBhcnJheSg8L2I+PC9p Pjxicj48aT48Yj6goKAgoKCgICYjMzk7I3R5cGUmIzM5OyA9Jmd0OyAmIzM5O3ZhbHVlJiMzOTss PC9iPjwvaT48YnI+Cgo8aT48Yj6goKAgoKCgICYjMzk7I3ZhbHVlJiMzOTsgPSZndDsgJGRvY3Rv ciw8L2I+PC9pPjxicj48aT48Yj6goKAgKTs8L2I+PC9pPjxicj48aT48Yj6gJGZvcm1bJiMzOTtm aXJzdG5hbWUmIzM5O109YXJyYXkoPC9iPjwvaT48YnI+PGk+PGI+oKCgIKCgoCAmIzM5OyN0aXRs ZSYjMzk7PSZndDt0KCYjMzk7Rmlyc3QgTmFtZSYjMzk7KSw8L2I+PC9pPjxicj48aT48Yj6goKAg oKCgICYjMzk7I3R5cGUmIzM5Oz0mZ3Q7JiMzOTt0ZXh0ZmllbGQmIzM5Oyw8L2I+PC9pPjxicj4K CjxpPjxiPqCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCAvLyYjMzk7I3ByZWZp eCYjMzk7PSZndDsmIzM5OyZsdDt0YWJsZSBjbGFzcz0mcXVvdDtmb3JtdGFibGUmcXVvdDsmZ3Q7 Jmx0O3RyJmd0OyZsdDt0ZCBjbGFzcz0mcXVvdDtsYWJlbHRleHQmcXVvdDsmZ3Q7Rmlyc3QgTmFt ZSZsdDsvdGQmZ3Q7Jmx0O3RkIGNsYXNzPSZxdW90O3RleHRib3gmcXVvdDsmZ3Q7JiMzOTssPC9i PjwvaT48YnI+Cgo8aT48Yj6goKAgoKCgICYjMzk7I3N1ZmZpeCYjMzk7PSZndDsmIzM5OyZsdDsv dGQmZ3Q7Jmx0Oy90ciZndDsmIzM5Oyw8L2I+PC9pPjxicj48aT48Yj6gICk7PC9iPjwvaT48YnI+ PGk+PGI+JGZvcm1bJiMzOTtsYXN0bmFtZSYjMzk7XT1hcnJheSg8L2I+PC9pPjxicj48aT48Yj6g oKAgoKCgICYjMzk7I3RpdGxlJiMzOTs9Jmd0O3QoJiMzOTtMYXN0IE5hbWUmIzM5OyksPC9iPjwv aT48YnI+Cgo8aT48Yj6goKAgoKCgICYjMzk7I3R5cGUmIzM5Oz0mZ3Q7JiMzOTt0ZXh0ZmllbGQm IzM5Oyw8L2I+PC9pPjxicj48aT48Yj6goKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKAgJiMzOTsjZGVmYXVsdF92YWx1ZSYjMzk7ID0mZ3Q7ICRsYXN0bmFtZSw8L2I+PC9pPjxicj48 aT48Yj6goKAgKTs8L2I+PC9pPjxicj48aT48Yj4kZm9ybVsmIzM5O2dlbmRlciYjMzk7XT1hcnJh eSg8L2I+PC9pPjxicj4KCjxpPjxiPqCgoCCgoKAgJiMzOTsjdGl0bGUmIzM5Oz0mZ3Q7dCgmIzM5 O0dlbmRlciYjMzk7KSw8L2I+PC9pPjxicj48aT48Yj6goKAgoKCgICYjMzk7I3R5cGUmIzM5Oz0m Z3Q7JiMzOTtyYWRpb3MmIzM5Oyw8L2I+PC9pPjxicj48aT48Yj6goKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgIDwvYj48L2k+PGJyPjxpPjxiPqCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKAgJiMzOTsjb3B0aW9ucyYjMzk7ID0mZ3Q7IGFycmF5KHQoJiMzOTttYWxlJiMz OTspLCB0KCYjMzk7ZmVtYWxlJiMzOTspKSw8L2I+PC9pPjxicj4KCjxpPjxiPqCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCAmIzM5OyNkZWZhdWx0X3ZhbHVlJiMzOTsgPSZndDsg bWFsZSw8L2I+PC9pPjxicj48aT48Yj6goKAgKTs8L2I+PC9pPjxicj48aT48Yj4kZm9ybVsmIzM5 O3N0YXR1cyYjMzk7XT1hcnJheSg8L2I+PC9pPjxicj48aT48Yj6goKAgoKCgICYjMzk7I3RpdGxl JiMzOTs9Jmd0O3QoJiMzOTtTdGF0dXMmIzM5OyksPC9iPjwvaT48YnI+Cgo8aT48Yj6goKAgoKCg ICYjMzk7I3R5cGUmIzM5Oz0mZ3Q7JiMzOTtyYWRpb3MmIzM5Oyw8L2I+PC9pPjxicj48aT48Yj6g oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgJiMzOTsjZGVmYXVsdF92YWx1ZSYj Mzk7ID0mZ3Q7IGFjdGl2ZSw8L2I+PC9pPjxicj48aT48Yj6goKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKAgJiMzOTsjb3B0aW9ucyYjMzk7ID0mZ3Q7IGFycmF5KHQoJiMzOTthY3Rp dmUmIzM5OyksIHQoJiMzOTtpbmFjdGl2ZSYjMzk7KSksPC9iPjwvaT48YnI+Cgo8aT48Yj6goKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIDwvYj48L2k+PGJyPjxpPjxiPqCgoCAp OzwvYj48L2k+PGJyPjxpPjxiPqCgoCA8L2I+PC9pPjxicj48aT48Yj5yZXR1cm4gY29uZmlybV9m b3JtKCRmb3JtLHQoJiMzOTsmIzM5OyksPC9iPjwvaT48YnI+PGk+PGI+oKCgIKCgoCBpc3NldCgk X0dFVFsmIzM5O2Rlc3RpbmF0aW9uJiMzOTtdKSA/ICRfR0VUWyYjMzk7ZGVzdGluYXRpb24mIzM5 O10gOiAmcXVvdDtkb2N0b3ImcXVvdDssPC9iPjwvaT48YnI+Cgo8aT48Yj6goKAgoKCgIHQoJiMz OTsmIzM5OyksPC9iPjwvaT48YnI+PGk+PGI+oKCgIKCgoCB0KCYjMzk7RWRpdCYjMzk7KSw8L2I+ PC9pPjxicj48aT48Yj6goKAgoKCgIHQoJiMzOTtDYW5jZWwmIzM5OykpOzwvYj48L2k+PGJyPjxp PjxiPn08L2I+PC9pPjxicj48YnI+PGk+PGI+ZnVuY3Rpb24gZG9jdG9yX2VkaXRfY29uZmlybV9z dWJtaXQoJGZvcm0sICZhbXA7JGZvcm1fc3RhdGUpPC9iPjwvaT48YnI+Cgo8aT48Yj57PC9iPjwv aT48YnI+PGk+PGI+aWYgKCRmb3JtX3N0YXRlWyYjMzk7dmFsdWVzJiMzOTtdWyYjMzk7Y29uZmly bSYjMzk7XSkgezwvYj48L2k+PGJyPjxpPjxiPiRkb2N0b3IgPSAkZm9ybV9zdGF0ZVsmIzM5O3Zh bHVlcyYjMzk7XVsmIzM5O19kb2N0b3JzJiMzOTtdOzwvYj48L2k+PGJyPjxpPjxiPqAkZmlyc3Ru YW1lID0gJGZvcm1fc3RhdGVbJiMzOTt2YWx1ZXMmIzM5O11bJiMzOTtmaXJzdG5hbWUmIzM5O107 PC9iPjwvaT48YnI+Cgo8aT48Yj6goKAgJGxhc3RuYW1lID0gJGZvcm1fc3RhdGVbJiMzOTt2YWx1 ZXMmIzM5O11bJiMzOTtsYXN0bmFtZSYjMzk7XTs8L2I+PC9pPjxicj48aT48Yj6goKAgJGdlbmRl cjE9ICRmb3JtX3N0YXRlWyYjMzk7dmFsdWVzJiMzOTtdWyYjMzk7Z2VuZGVyJiMzOTtdOzwvYj48 L2k+PGJyPjxpPjxiPiRnZW5kZXIgPaAgJGdlbmRlcjEgPyB0KCYjMzk7ZmVtYWxlJiMzOTspIDog dCgmIzM5O21hbGUmIzM5Oyk7PC9iPjwvaT48YnI+Cgo8aT48Yj6goKAgJHN0YXR1czEgPSAkZm9y bV9zdGF0ZVsmIzM5O3ZhbHVlcyYjMzk7XVsmIzM5O3N0YXR1cyYjMzk7XTs8L2I+PC9pPjxicj48 aT48Yj4kc3RhdHVzID0gJHN0YXR1czEgPyB0KCYjMzk7aW5hY3RpdmUmIzM5OykgOiB0KCYjMzk7 YWN0aXZlJiMzOTspOzwvYj48L2k+PGJyPjxicj48YnI+PGk+PGI+JHF1ZXJ5ID0gJnF1b3Q7VVBE QVRFoCB7ZG9jdG9yfSBTRVQgZmlyc3RuYW1lID0gJiMzOTskZmlyc3RuYW1lJiMzOTssIGxhc3Ru YW1lPSAmIzM5OyRsYXN0bmFtZSYjMzk7LCBnZW5kZXIgPSAmIzM5OyRnZW5kZXImIzM5Oywgc3Rh dHVzID0gJiMzOTskc3RhdHVzJiMzOTugIFdIRVJFIGRvY3RvcmlkPSRkb2N0b3ItJmd0O2RvY3Rv cmlkJnF1b3Q7OzwvYj48L2k+PGJyPgoKPGk+PGI+oCRycyA9IGRiX3F1ZXJ5KCRxdWVyeSk7oKCg IKCgoCA8L2I+PC9pPjxicj48aT48Yj6goKCgIDwvYj48L2k+PGJyPjxpPjxiPqB9PC9iPjwvaT48 YnI+PGk+PGI+ZHJ1cGFsX2dvdG8oJnF1b3Q7ZG9jdG9yJnF1b3Q7KTs8L2I+PC9pPjxicj48aT48 Yj59PC9iPjwvaT48YnI+PGJyPjxkaXYgc3R5bGU9InRleHQtYWxpZ246bGVmdCI+PGJyPjwvZGl2 PjwvZGl2PndoZW4gaSBwdXQgaGFyZGNvZGVkIHZhbHVlIGluZnJvbnQgb2YgZG9jdG9yaWQgbGlr ZSBkb2N0b3JpZD0yIHRoZW4gaXRzIGdldHRpbmcgZWRpdGVkIGFmdGVyIGkgY2xpY2sgb24gZWRp dCBidXR0b24gYnV0IHdoZW4gaSBwYWFzaW5nIGl0IHVzaW5nIHZhcmlibGUgYW5kIGNsaWNraW5n IGVkaXQgYnV0dG9uIHRoZW4gaXRzIHNob3dpbmcgZm9sbG93aW5nIGVycm9yIHdoZXJlIGZpcnN0 bmFtZSAtJmd0O2FuaXRoYSxsYXN0bmFtZS0mZ3Q7YWJjIGFyZSB0aGUgdmFsdWVzIGkgZW5ldGVy aW5nIGluIGZvcm0gd2hpbGUgZWRpdGluZy48YnI+Cgo8YnI+PGkgc3R5bGU9ImZvbnQtZmFtaWx5 OnZlcmRhbmEsc2Fucy1zZXJpZiI+PGI+dXNlciB3YXJuaW5nOiBZb3UgaGF2ZSBhbiBlcnJvciBp biB5b3VyIFNRTCBzeW50YXg7IGNoZWNrIHRoZSBtYW51YWwgCnRoYXQgY29ycmVzcG9uZHMgdG8g eW91ciBNeVNRTCBzZXJ2ZXIgdmVyc2lvbiBmb3IgdGhlIHJpZ2h0IHN5bnRheCB0byAKdXNlIG5l YXIgJiMzOTsmIzM5OyBhdCBsaW5lIDEKcXVlcnk6IFVQREFURSAgZG9jdG9yIFNFVCBmaXJzdG5h bWUgPSAmIzM5O2FuaXRoYSYjMzk7LCBsYXN0bmFtZT0gJiMzOTthYmMmIzM5OywgZ2VuZGVyID0K ICYjMzk7ZmVtYWxlJiMzOTssIHN0YXR1cyA9ICYjMzk7aW5hY3RpdmUmIzM5OyAgV0hFUkUgIGRv Y3RvcmlkPSBpbiAKRDpcRlItU2VydmVyXEFwYWNoZTJcaHRkb2NzXGZyXHNpdGVzXGFsbFxNb2R1 bGVzXGRvY3Rvclxkb2N0b3IubW9kdWxlIG9uCiBsaW5lIDE1Ny48L2I+PC9pPjxicj48YnI+bXkg aHRtbCB0YWJsZSBvbiBkcnVwYWwgc2NyZWVuIDxicj48dGFibGU+PHRoZWFkPjx0cj48dGg+RG9j dG9yIE5hbWU8L3RoPjx0aD5HZW5kZXI8L3RoPjx0aD5TdGF0dXM8L3RoPjx0aD5BY3Rpb248L3Ro PiA8L3RyPjwvdGhlYWQ+Cjx0Ym9keT4KIDx0cj48dGQ+TWFoZXNoIEdhamFiYXI8L3RkPjx0ZD5t YWxlPC90ZD48dGQ+aW5hY3RpdmUgPC90ZD48dGQ+PGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdC9m ci9kb2N0b3IvZWRpdC8xIiB0YXJnZXQ9Il9ibGFuayI+RWRpdDwvYT4gfCA8YSBocmVmPSJodHRw Oi8vbG9jYWxob3N0L2ZyL2RvY3Rvci9kZWxldGUvMSIgdGFyZ2V0PSJfYmxhbmsiPkRlbGV0ZTwv YT48L3RkPiA8L3RyPgogPHRyPjx0ZD5Bbml0aGEgUGF0aWw8L3RkPjx0ZD5mZW1hbGU8L3RkPjx0 ZD5hY3RpdmU8L3RkPjx0ZD48YSBocmVmPSJodHRwOi8vbG9jYWxob3N0L2ZyL2RvY3Rvci9lZGl0 LzIiIHRhcmdldD0iX2JsYW5rIj5FZGl0PC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Qv ZnIvZG9jdG9yL2RlbGV0ZS8yIiB0YXJnZXQ9Il9ibGFuayI+RGVsZXRlPC9hPjwvdGQ+IDwvdHI+ CiA8dHI+PHRkPlBhdml0aHJhIE08L3RkPjx0ZD5mZW1hbGU8L3RkPjx0ZD5hY3RpdmU8L3RkPjx0 ZD48YSBocmVmPSJodHRwOi8vbG9jYWxob3N0L2ZyL2RvY3Rvci9lZGl0LzMiIHRhcmdldD0iX2Js YW5rIj5FZGl0PC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3QvZnIvZG9jdG9yL2RlbGV0 ZS8zIiB0YXJnZXQ9Il9ibGFuayI+RGVsZXRlPC9hPjwvdGQ+IDwvdHI+CiA8dHI+PHRkPlJhdmkg TWFuZGF5YW08L3RkPjx0ZD5tYWxlPC90ZD48dGQ+YWN0aXZlPC90ZD48dGQ+PGEgaHJlZj0iaHR0 cDovL2xvY2FsaG9zdC9mci9kb2N0b3IvZWRpdC80IiB0YXJnZXQ9Il9ibGFuayI+RWRpdDwvYT4g fCA8YSBocmVmPSJodHRwOi8vbG9jYWxob3N0L2ZyL2RvY3Rvci9kZWxldGUvNCIgdGFyZ2V0PSJf YmxhbmsiPkRlbGV0ZTwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPgo8YnI+ZWRpdCBmb3Jt IDo8YnI+Cjxicj4KCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjAu MDAwMXB0O2xpbmUtaGVpZ2h0Om5vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMnB0O2Zv bnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90OyI+ Rmlyc3QgTmFtZTogPGlucHV0IG1heGxlbmd0aD0iMTI4IiBzaXplPSI2MCIgbmFtZT0iZmlyc3Ru YW1lIiB0eXBlPSJ0ZXh0Ij48L3NwYW4+PC9wPgoKCgo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls ZT0ibWFyZ2luLWJvdHRvbTowLjAwMDFwdDtsaW5lLWhlaWdodDpub3JtYWwiPjxzcGFuIHN0eWxl PSJmb250LXNpemU6MTJwdDtmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDss JnF1b3Q7c2VyaWYmcXVvdDsiPkxhc3QgTmFtZTogPGlucHV0IG1heGxlbmd0aD0iMTI4IiBzaXpl PSI2MCIgbmFtZT0ibGFzdG5hbWUiIHR5cGU9InRleHQiPjwvc3Bhbj48L3A+CgoKCjxwIGNsYXNz PSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjAuMDAwMXB0O2xpbmUtaGVpZ2h0Om5v cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMnB0O2ZvbnQtZmFtaWx5OiZxdW90O1RpbWVz IE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90OyI+R2VuZGVyOiA8L3NwYW4+PC9wPgoK PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0b206MC4wMDAxcHQ7bGluZS1o ZWlnaHQ6bm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEycHQ7Zm9udC1mYW1pbHk6JnF1 b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij48aW5wdXQgbmFtZT0i Z2VuZGVyIiB2YWx1ZT0iMCIgdHlwZT0icmFkaW8iPm1hbGUKPC9zcGFuPjwvcD4KCjxwIGNsYXNz PSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjAuMDAwMXB0O2xpbmUtaGVpZ2h0Om5v cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMnB0O2ZvbnQtZmFtaWx5OiZxdW90O1RpbWVz IE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90OyI+PGlucHV0IG5hbWU9ImdlbmRlciIg dmFsdWU9IjEiIHR5cGU9InJhZGlvIj5mZW1hbGUKPC9zcGFuPjwvcD4KCjxwIGNsYXNzPSJNc29O b3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjAuMDAwMXB0O2xpbmUtaGVpZ2h0Om5vcm1hbCI+ PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMnB0O2ZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBS b21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90OyI+U3RhdHVzOiA8L3NwYW4+PC9wPgoKPHAgY2xh c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0b206MC4wMDAxcHQ7bGluZS1oZWlnaHQ6 bm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEycHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGlt ZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij48aW5wdXQgbmFtZT0ic3RhdHVz IiB2YWx1ZT0iMCIgdHlwZT0icmFkaW8iPmFjdGl2ZQo8L3NwYW4+PC9wPgoKPHAgY2xhc3M9Ik1z b05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0b206MC4wMDAxcHQ7bGluZS1oZWlnaHQ6bm9ybWFs Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEycHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3 IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij48aW5wdXQgbmFtZT0ic3RhdHVzIiB2YWx1 ZT0iMSIgdHlwZT0icmFkaW8iPmluYWN0aXZlCjwvc3Bhbj48L3A+Cgo8cCBjbGFzcz0iTXNvTm9y bWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTowLjAwMDFwdDtsaW5lLWhlaWdodDpub3JtYWwiPjxz cGFuIHN0eWxlPSJmb250LXNpemU6MTJwdDtmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9t YW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDsiPjxzcGFuPjxpbnB1dCBuYW1lPSJjb25maXJtIiB2 YWx1ZT0iMSIgdHlwZT0iaGlkZGVuIj48L3NwYW4+PC9zcGFuPjwvcD4KCgoKPHAgY2xhc3M9Ik1z b05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0b206MC4wMDAxcHQ7bGluZS1oZWlnaHQ6bm9ybWFs Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEycHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3 IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij48aW5wdXQgdmFsdWU9IkVkaXQiIG5hbWU9 Im9wIiB0eXBlPSJzdWJtaXQiPjxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3QvZnIvZG9jdG9yIiB0 YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImNvbG9yOmJsdWUiPkNhbmNlbDwvc3Bhbj48L2E+ PC9zcGFuPjwvcD4KCgoKPHAgY2xhc3M9Ik1zb05vcm1hbCI+oDwvcD4KCjxicj5QbGVhc2UgaGVs cCBtZSBob3cgaSBjYW4gcGFzcyB0aGF0IGRvY3RvcmlkIGFuZCBhbHNvIGhlbHAgbWUgZm9yIGdl dHRpbmcgZGVmYXVsdCB2YWx1ZXMgaW4gZm9ybSB3aGVuIGkgY2xpY2sgZWRpdCBidXR0b24gaW4g dGFibGUuIDxicj48Zm9udCBjb2xvcj0iIzg4ODg4OCI+PGJyPjxicj48c3BhbiBzdHlsZT0iY29s b3I6cmdiKDM0LCAzNCwgMzQpO2ZvbnQtZmFtaWx5OiYjMzk7THVjaWRhIEdyYW5kZSYjMzk7LCYj Mzk7RGVqYVZ1IFNhbnMmIzM5OywmIzM5O0JpdHN0cmVhbSBWZXJhIFNhbnMmIzM5OyxWZXJkYW5h LEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MThweCI+PHAgc3R5 bGU9ImJvcmRlci13aWR0aDowcHg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXNp emU6MTNweDttYXJnaW46MHB4IDBweCAwLjY5MmVtO3BhZGRpbmc6MHB4O3ZlcnRpY2FsLWFsaWdu OmJhc2VsaW5lIj4KCgo8c3BhbiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlO2NvbG9y OnJnYigwLCAwLCAwKTtmb250LWZhbWlseTomIzM5O1RpbWVzIE5ldyBSb21hbiYjMzk7O2ZvbnQt c3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2xldHRl ci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDpub3JtYWw7dGV4dC1pbmRlbnQ6MHB4O3RleHQt dHJhbnNmb3JtOm5vbmU7d2hpdGUtc3BhY2U6bm9ybWFsO3dvcmQtc3BhY2luZzowcHg7Zm9udC1z aXplOm1lZGl1bSI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OmFyaWFsO2ZvbnQtc2l6ZTpzbWFs bCI+PGI+PGkgc3R5bGU9ImNvbG9yOnJnYigwLCAxNTMsIDApO2ZvbnQtZmFtaWx5OiYjMzk7Y29t aWMgc2FucyBtcyYjMzk7LHNhbnMtc2VyaWYiPjxmb250IHN0eWxlPSJjb2xvcjpyZ2IoMCwgMTUz LCAwKSIgc2l6ZT0iMiI+TUFIRVNIIEdBSkFCQVI8L2ZvbnQ+PC9pPjxiciBzdHlsZT0iY29sb3I6 cmdiKDAsIDE1MywgMCk7Zm9udC1mYW1pbHk6JiMzOTtjb21pYyBzYW5zIG1zJiMzOTssc2Fucy1z ZXJpZiI+CgoKPGZvbnQgc3R5bGU9ImNvbG9yOnJnYigwLCAxNTMsIDApO2ZvbnQtZmFtaWx5OiYj Mzk7Y29taWMgc2FucyBtcyYjMzk7LHNhbnMtc2VyaWYiIHNpemU9IjIiPjxpPlNvZnR3YXJlIERl dmVsb3Blcjxicj5Gcm9udGFsUmFpbiBUZWNobm9sb2dpZXMsQmVuZ2FsdXJ1PC9pPjwvZm9udD48 L2I+PGJyPjwvc3Bhbj48L3NwYW4+PC9wPjxwIHN0eWxlPSJib3JkZXItd2lkdGg6MHB4O2JhY2tn cm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC1zaXplOjEzcHg7bWFyZ2luOjBweCAwcHggMC42 OTJlbTtwYWRkaW5nOjBweDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZSI+CgoKPC9wPjwvc3Bhbj48 YnI+PGJyPgo8L2ZvbnQ+PC9ibG9ja3F1b3RlPjwvZGl2Pjxicj48L2Rpdj4K --===============2461859486387502715==--
First Name class=3D"textbox">',* > * '#suffix'=3D>'