From d9624f6616dfc97912a865b5db49feedaf32a809 Mon Sep 17 00:00:00 2001 From: felipecode Date: Fri, 1 Dec 2017 19:27:27 +0100 Subject: [PATCH 001/121] Adding the benchmark to the client, a first big step. --- PythonClient/benchmarks/__init__.py | 0 PythonClient/benchmarks/agent.py | 72 ++++ PythonClient/benchmarks/benchmark.py | 309 +++++++++++++++ PythonClient/benchmarks/corl.py | 137 +++++++ PythonClient/benchmarks/experiment.py | 37 ++ PythonClient/benchmarks/metrics.py | 292 ++++++++++++++ PythonClient/carla/planner/astar.py | 145 +++++++ PythonClient/carla/planner/bezier.py | 37 ++ PythonClient/carla/planner/graph.py | 152 ++++++++ PythonClient/carla/planner/planner.py | 541 ++++++++++++++++++++++++++ PythonClient/run_benchmark.py | 77 ++++ 11 files changed, 1799 insertions(+) create mode 100644 PythonClient/benchmarks/__init__.py create mode 100644 PythonClient/benchmarks/agent.py create mode 100644 PythonClient/benchmarks/benchmark.py create mode 100644 PythonClient/benchmarks/corl.py create mode 100644 PythonClient/benchmarks/experiment.py create mode 100644 PythonClient/benchmarks/metrics.py create mode 100644 PythonClient/carla/planner/astar.py create mode 100644 PythonClient/carla/planner/bezier.py create mode 100644 PythonClient/carla/planner/graph.py create mode 100644 PythonClient/carla/planner/planner.py create mode 100644 PythonClient/run_benchmark.py diff --git a/PythonClient/benchmarks/__init__.py b/PythonClient/benchmarks/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/PythonClient/benchmarks/agent.py b/PythonClient/benchmarks/agent.py new file mode 100644 index 000000000..a0d450307 --- /dev/null +++ b/PythonClient/benchmarks/agent.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python2 +# -*- coding: utf-8 -*- +""" +Created on Sat Jun 10 19:12:37 2017 + +@author: german,felipecode +""" +from __future__ import print_function +import time +import math +from carla import sensor +from carla.client import make_carla_client +from carla.sensor import Camera +from carla.settings import CarlaSettings +from carla.tcp import TCPConnectionError +from carla.util import print_over_same_line +from carla.planner.planner import Planner + +from carla.carla_server_pb2 import Control + + + +class Agent(object, ): + def __init__(self, **kwargs): + import os + dir_path = os.path.dirname(__file__) + + planner = Planner(dir_path+'/../planner/' + city_name + '.txt',\ + dir_path+'/../planner/' + city_name + '.png') + + + + def get_initial_distance(self): + + _,path_distance=planner.get_next_command([positions[start_point].location.x\ + ,positions[start_point].location.y,22],[positions[start_point].orientation.x\ + ,positions[start_point].orientation.y,22],[positions[end_point].location.x\ + ,positions[end_point].location.y,22],(1,0,0)) + # We calculate the timout based on the distance + + return path_distance + + + # Function to be redefined by the AI. + def run_step(self, data): + pass + + + +""" + def compute_distance(self, curr, prev, target): + # no history info + if(prev[0] == -1 and prev[1] == -1): + distance = math.sqrt((curr[0] - target[0])*(curr[0] - target[0]) + (curr[1] - target[1])*(curr[1] - target[1])) + else: + # distance point to segment + v1 = [target[0]-curr[0], target[1]-curr[1]] + v2 = [prev[0]-curr[0], prev[1]-curr[1]] + + w1 = v1[0]*v2[0] + v1[1]*v2[1] + w2 = v2[0]*v2[0] + v2[1]*v2[1] + t_hat = w1 / (w2 + 1e-4) + t_start = min(max(t_hat, 0.0), 1.0) + + s = [0, 0] + s[0] = curr[0] + t_start * (prev[0] - curr[0]) + s[1] = curr[1] + t_start * (prev[1] - curr[1]) + distance = math.sqrt((s[0] - target[0])*(s[0] - target[0]) + (s[1] - target[1])*(s[1] - target[1])) + + + return distance +""" diff --git a/PythonClient/benchmarks/benchmark.py b/PythonClient/benchmarks/benchmark.py new file mode 100644 index 000000000..11b13d1f6 --- /dev/null +++ b/PythonClient/benchmarks/benchmark.py @@ -0,0 +1,309 @@ + +from .metrics import plot_summary + +class Benchmark(object,): + + # Param @name to be used for saving purposes + def __init__(self,name): + self._base_name = name # Sends a base name, the rest will be saved with respect to what the episode was about + self._dict_stats = {'exp_id':-1, + 'rep':-1, + 'weather':-1, + 'start_point':-1, + 'end_point':-1, + 'result':-1, + 'initial_distance':-1, + 'final_distance':-1, + 'final_time':-1, + 'time_out':-1 + + + } + with open(self._base_name + self._suffix_name , 'wb') as ofd: + + w = csv.DictWriter(ofd, self._dict_stats.keys()) + w.writeheader() + + + self._dict_rewards = { + 'exp_id':-1, + 'rep':-1, + 'weather':-1, + 'collision_gen':-1, + 'collision_ped':-1, + 'collision_car':-1, + 'lane_intersect':-1, + 'sidewalk_intersect':-1, + 'pos_x':-1, + 'pos_y':-1 + } + + + def run_navigation_episode(self, agent,carla, time_out, target): + + + curr_x = -1 + curr_y = -1 + prev_x = -1 + prev_y = -1 + measurements,sensor_data= carla.read_data() + carla.send_control(Control()) + t0 = measurements.game_timestamp + t1=t0 + success = False + step = 0 + accum_lane_intersect = 0.0 + accum_sidewalk_intersect = 0.0 + distance = 100000 + measurement_vec=[] + while((t1-t0) < (time_out*1000) and not success): + capture_time = time.time() + measurements,sensor_data = carla.read_data() + print (sensor_data) + print (measurements) + print (time.time()-capture_time) + control = agent.run_step(measurements,sensor_data,target) + print ('STEER ',control.steer,'GAS ',control.throttle,'Brake ',control.brake) + carla.send_control(control) + + + # meassure distance to target + + prev_x = curr_x + prev_y = curr_y + curr_x = measurements.player_measurements.transform.location.x + curr_y = measurements.player_measurements.transform.location.y + + + measurement_vec.append(measurements.player_measurements) + + t1 = measurements.game_timestamp + print (t1-t0) + + # accumulate layout related signal + # accum_lane_intersect += reward.road_intersect + #accum_sidewalk_intersect += reward.sidewalk_intersect + step += 1 + # This distance is wrong + + agent.compute_distance() + #distance = self.compute_distance([curr_x, curr_y], [prev_x, prev_y], [target.location.x, target.location.y]) + # debug + print('[d=%f] c_x = %f, c_y = %f ---> t_x = %f, t_y = %f' % (float(distance), curr_x, curr_y, target.location.x, target.location.y)) + + if(distance < 200.0): + success = True + + + + if(success): + return (1, measurement_vec, float(t1-t0)/1000.0,distance) + else: + return (0, measurement_vec, time_out,distance) + + + def benchmark_agent(self,agent,carla,starting_position=0): + + + + experiments = self._build_experiments() # Returns a experiment class that is build from a benchmark inherited class + self._suffix_name = self._get_names(experiments[starting_position:]) # The fixed name considering all the experiments being run + + + for experiment in experiments[starting_position:]: + + + self.write_experiment(experiment) # write the experiment being run + + + #poses_exp = start_goal_poses[experiment_id] + #repetitions = repetitions_per_experiment[experiment_id] + #pedestrians_exp = pedestrians[experiment_id] + #ehicles_exp = vehicles[experiment_id] + + #for rep in range(repetitions): # CONTROL REPETITION INSIDE EXPERIMENT ??? + + # for the different weathers + #for weather_cond in weathers: + # let's go through all the starting-goal positions of the experiment + + + + + positions = carla.load_settings(experiment.conditions).player_start_spots + + for pose in experiment.poses: + for rep in experiment.repetitions: + + trajectory = experiment.poses + + #ped = pedestrians_exp[i] + #vehic = vehicles_exp[i] + + start_point = trajectory[0] + end_point = trajectory[1] + + carla.start_episode(start_point) + + print('======== !!!! ==========') + + path_distance = agent.get_initial_distance(positions[start_point],positions[end_point]) + + time_out = self._calculate_time_out(path_distance) + # running the agent + (result, reward_vec, final_time, remaining_distance) = self.run_until(agent,carla,time_out,positions[end_point]) + + + + # compute stats for the experiment + + self.write_summary_results(experiment,pose,rep,path_distance,remaining_distance,final_time,time_out,result) + + + #rw.writerow(dict_rewards) + + self.write_reward_results(reward_vec) + + + + # save results of the experiment + #list_stats.append(dict_stats) + #print (dict_stats) + #w.writerow(dict_stats) + + + if(result > 0): + print('+++++ Target achieved in %f seconds! +++++' % final_time) + else: + print('----- Tmeout! -----') + + return list_stats + + + + + def write_details(self): + pass + + def write_summary_results(self,experiment,pose,rep,path_distance,remaining_distance,final_time,time_out,result): + + self._dict_stats['exp_id'] = experiment.id + self._dict_stats['rep'] = rep + self._dict_stats['weather'] = experiment.Conditions.WeatherId + self._dict_stats['start_point'] = pose[0] + self._dict_stats['end_point'] = pose[1] + self._dict_stats['result'] = result + self._dict_stats['initial_distance'] = path_distance + self._dict_stats['final_distance'] = remaining_distance + self._dict_stats['final_time'] = final_time + self._dict_stats['time_out'] = time_out + + + + with open(self._base_name + self._suffix_name , 'a+') as ofd: + + w = csv.DictWriter(ofd, self._dict_stats.keys()) + + + w.writerow(dict_stats) + + + + def write_reward_results(self,experiment,rep,reward_vec): + + with open('rewards_' + self._base_name + self._suffix_name , 'a+') as ofd: + + rw = csv.DictWriter(rfd, dict_rewards.keys()) + rw.writeheader() + + + for i in range(len(reward_vec)): + dict_rewards['exp_id'] = experiment.id + dict_rewards['rep'] = rep + dict_rewards['weather'] = experiment.Conditions.WeatherId + dict_rewards['collision_gen'] = reward_vec[i].collision_other + dict_rewards['collision_ped'] = reward_vec[i].collision_pedestrians + dict_rewards['collision_car'] = reward_vec[i].collision_vehicles + dict_rewards['lane_intersect'] = reward_vec[i].intersection_otherlane + dict_rewards['sidewalk_intersect'] = reward_vec[i].intersection_offroad + dict_rewards['pos_x'] = reward_vec[i].transform.location.x + dict_rewards['pos_y'] = reward_vec[i].transform.location.y + + rw.writerow(dict_rewards) + + + + + + def plot_summary_test(self): + + + summary_weathers = {'train_weather': [1,3,6,8]} + + summary = plot_summary(self._base_name + self._suffix_name,summary_weathers, ) + + + def plot_summary_train(self): + + + summary_weathers = {'test_weather': [4,14]} + + summary = plot_summary(self._base_name + self._suffix_name,summary_weathers) + + + + # To be redefined on subclasses on how to calculate timeout for an episode + def _calculate_time_out(self,distance): + return 0 + + # To be redefined on subclasses + def build_experiments(self): + pass + + + def _get_experiments(self,experiments): + + name_cat ='_t' + for experiment in experiments: + + name_cat += str(experiment.id) + '.' + + name_cat ='_w' + + for experiment in experiments: + + name_cat += str(experiment.Conditions.WeatherId) +'.' + + + return name_cat + + + + +""" + w = csv.DictWriter(ofd, dict_stats.keys()) + w.writeheader() + rw = csv.DictWriter(rfd, dict_rewards.keys()) + rw.writeheader() + + + + carla = opt_dict['CARLA'] + width = opt_dict['WIDTH'] + height = opt_dict['HEIGHT'] + host = opt_dict['HOST'] + port = opt_dict['PORT'] + + output_summary = opt_dict['OUTPUT_SUMMARY'] + runnable = opt_dict['RUNNABLE'] + experiments_to_run = opt_dict['EXPERIMENTS_TO_RUN'] + pedestrians = opt_dict['PEDESTRIANS'] + vehicles = opt_dict['VEHICLES'] + repetitions_per_experiment = opt_dict['REPETITIONS'] + weathers = opt_dict['WEATHERS'] + start_goal_poses = opt_dict['START_GOAL_POSES'] + cameras = opt_dict['CAMERAS'] + + list_stats = [] + +""" diff --git a/PythonClient/benchmarks/corl.py b/PythonClient/benchmarks/corl.py new file mode 100644 index 000000000..c7b032493 --- /dev/null +++ b/PythonClient/benchmarks/corl.py @@ -0,0 +1,137 @@ + +from .benchmark import Benchmark +from .experiment import Experiment + + +# Function to return the timeout ( in miliseconds) that is calculated based on distance to goal. +# This is the same timeout as used on the CoRL paper. + + + +class CoRL(Benchmark): + + def _calculate_time_out(self,distance): + return ((path_distance/100000.0)/10.0)*3600.0 + 10.0 + + def _poses_town01(self): + + return [ [[36,40],[39,35],[110,114],[7,3],[0,4],\ + [68,50],[61,59],[47,64],[147,90],[33,87],\ + [26,19],[80,76],[45,49],[55,44],[29,107],\ + [95,104],[34,84],[51,67],[22,17],[91,148],\ + [20,107],[78,70],[95,102],[68,44],[45,69]], + + [[138,17],[46,16],[26,9],[42,49],[140,26],\ + [85,97],[65,133],[137,51],[76,66],[46,39],\ + [40,60],[1,28],[4,129],[121,107],[2,129],\ + [78,44],[68,85],[41,102],[95,70],[68,129],\ + [84,69],[47,79],[110,15],[130,17],[0,17]], + + [[105,29],[27,130],[102,87],[132,27],[24,44],\ + [96,26],[34,67],[28,1],[140,134],[105,9],\ + [148,129],[65,18],[21,16],[147,97],[42,51],\ + [30,41],[18,107],[69,45],[102,95],[18,145],\ + [111,64],[79,45],[84,69],[73,31],[37,81]], + + [[105,29],[27,130],[102,87],[132,27],[24,44],\ + [96,26],[34,67],[28,1],[140,134],[105,9],\ + [148,129],[65,18],[21,16],[147,97],[42,51],\ + [30,41],[18,107],[69,45],[102,95],[18,145],\ + [111,64],[79,45],[84,69],[73,31],[37,81]] + + ] + + def _poses_town02(self): + + return [ [[38, 34], [4, 2], [12, 10], [62, 55], [43, 47],\ + [64, 66], [78, 76],[59,57],[61,18],[35,39],\ + [12,8],[0,18],[75,68],[54,60],[45,49],\ + [46,42],[53,46],[80,29],[65,63],[0,81],\ + [54,63],[51,42],[16,19],[17,26],[77,68]], + + [[37, 76], [8, 24], [60, 69], [38, 10], [21, 1],\ + [58,71],[74,32],[44,0],[71,16],[14,24],\ + [34,11],[43,14],[75,16],[80,21],[3,23],\ + [75,59],[50,47],[11,19],[77,34],[79,25] ,\ + [40,63],[58,76],[79,55],[16,61],[27,11]], + + [[19,66],[79,14],[19,57],[23,1],\ + [53,76],[42,13],[31,71],[33,5],\ + [54,30],[10,61],[66,3],[27,12],\ + [79,19],[2,29],[16,14],[5,57],\ + [70,73],[46,67],[57,50],[61,49],[21,12],\ + [51,81],[77,68],[56,65],[43,54]], + + [[19,66],[79,14],[19,57],[23,1],\ + [53,76],[42,13],[31,71],[33,5],\ + [54,30],[10,61],[66,3],[27,12],\ + [79,19],[2,29],[16,14],[5,57],\ + [70,73],[46,67],[57,50],[61,49],[21,12],\ + [51,81],[77,68],[56,65],[43,54]] + + ] + + + def build_experiments(self,town): + + + # We set the camera that is going to be used for all experiments + camera = Camera('CameraRGB') + camera.set(CameraFOV=100) + + + camera.set_image_size(800, 600) + + camera.set_position(200, 0, 140) + camera.set_rotation(-15.0,0,0) + + weathers = [1,3,6,8,4,14] + if town == 'Town01': + poses_tasks = self._poses_town01() + vehicles_tasks =[0,0,0,20] + pedestrians_tasks = [0,0,0,50] + else: + poses_tasks = self._poses_town02() + vehicles_tasks =[0,0,0,15] + pedestrians_tasks = [0,0,0,50] + + + + experiments_vector = [] + + + for weather in weathers: + + + for iteration in range(len(poses_tasks)): + + poses = poses_tasks[iteration] + vehicles = vehicles_tasks[iteration] + pedestrians = pedestrians_tasks[iteration] + + + + conditions = CarlaSettings() + conditions.set( + SynchronousMode=True, + SendNonPlayerAgentsInfo=True, + NumberOfVehicles=vehicles, + NumberOfPedestrians=pedestrians, + WeatherId=weather, + SeedVehicles=123456789, + SeedPedestrians=123456789 + ) + # Add all the cameras that were set for this experiments + + conditions.add_sensor(camera) + + experiment = Experiment() + experiment.set( + Conditions=conditions, + Poses= poses, + Id = iteration, + Repetions = 1 + ) + experiments_vector.append(experiment) + + return experiments_vector diff --git a/PythonClient/benchmarks/experiment.py b/PythonClient/benchmarks/experiment.py new file mode 100644 index 000000000..3d26052c3 --- /dev/null +++ b/PythonClient/benchmarks/experiment.py @@ -0,0 +1,37 @@ + +from carla.settings import CarlaSettings +from carla.sensor import Camera + +class Experiment(object): + + def __init__(self,**kwargs): + self.Id = '' + self.Conditions = CarlaSettings() + self.Poses = [[]] + self.Repetitions = 1 + + #self. ,vehicles,pedestrians,weather,cameras + + + def set(self, **kwargs): + for key, value in kwargs.items(): + if not hasattr(self, key): + raise ValueError('Experiment: no key named %r' % key) + setattr(self, key, value) + + @property + def name(self): + return self.Id + + @property + def conditions(self): + return self.Conditions + + @property + def poses(self): + return self.Poses + + @property + def repetitions(self): + return self.Repetitions + diff --git a/PythonClient/benchmarks/metrics.py b/PythonClient/benchmarks/metrics.py new file mode 100644 index 000000000..3e8bf2859 --- /dev/null +++ b/PythonClient/benchmarks/metrics.py @@ -0,0 +1,292 @@ + +import numpy as np +import math +import matplotlib.pyplot as plt + + +import argparse +sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) +flatten = lambda l: [item for sublist in l for item in sublist] + + + +def task_complete_percentages(data_matrix): + + complete_per = [] + pos_ant =0 + for pos in reset_positions: + complete_per.append(sum(data_matrix[pos_ant:pos,1])/len(reset_positions)) + pos_ant =pos + + return complete_per + +def task_average_time_percentages(data_matrix,reset_positions): + + complete_per = [] + pos_ant =0 + for pos in reset_positions: + complete_per.append(sum(data_matrix[pos_ant:pos,0])/25.0) + pos_ant =pos + + return complete_per + + +def get_colisions(selected_matrix,header): + + count_gen =0 + count_ped =0 + count_car = 0 + i=1 + + while i < selected_matrix.shape[0]: + if (selected_matrix[i,header.index('collision_gen')] - selected_matrix[(i-10),header.index('collision_gen')]) > 40000: + count_gen+=1 + i+=20 + i+=1 + + + i=1 + while i < selected_matrix.shape[0]: + if (selected_matrix[i,header.index('collision_car')] - selected_matrix[(i-10),header.index('collision_car')]) > 40000: + count_car+=1 + i+=30 + i+=1 + + + i=1 + while i < selected_matrix.shape[0]: + if (selected_matrix[i,header.index('collision_ped')] - selected_matrix[i-5,header.index('collision_ped')]) > 30000: + count_ped+=1 + i+=100 + i+=1 + + + return count_gen,count_car,count_ped + +def get_distance_traveled(selected_matrix,header): + + prev_x = selected_matrix[0,header.index('pos_x')] + prev_y = selected_matrix[0,header.index('pos_y')] + + i =1 + acummulated_distance =0 + while i < selected_matrix.shape[0]: + + x = selected_matrix[i,header.index('pos_x')] + y = selected_matrix[i,header.index('pos_y')] + + + acummulated_distance += sldist((x,y),(prev_x,prev_y)) + #print sldist((x,y),(prev_x,prev_y)) + + prev_x =x + prev_y =y + + i+=1 + return (float(acummulated_distance)/float(100*1000)) + +def get_end_positions(data_matrix): + + + i=0 + end_positions_vec = [] + accumulated_time = 0 + while i < data_matrix.shape[0]: + + end_positions_vec.append(accumulated_time) + accumulated_time += data_matrix[i,2]*10 + i+=1 + + return end_positions_vec + + +def is_car_static(pos,reward_matrix): + + + x = reward_matrix[pos,0] + y = reward_matrix[pos,1] + + prev_x = reward_matrix[pos,0] + prev_y = reward_matrix[pos,1] + + if sldist((x,y),(prev_x,prev_y)) > 100: + return False + else: + return True + + + + + + +def get_end_positions_state(end_positions,data_matrix, reward_matrix): + + + vector_of_infractions = [0,0,0,0] # Inf1+inf3 , inf2+inf3 or inf3, , inf1+inf4, timeout + + + for i in range(len(end_positions)): + pos = int(end_positions[i] -20) + + if data_matrix[i,1] == 0: # if it failed, lets find the reason + + if reward_matrix[pos,4] > 30000 and is_car_static(pos,reward_matrix): # If it crashed_general + + if reward_matrix[pos,5] > 0.4: # Check if it is out of road + # Case 0 + vector_of_infractions[0] +=1 + else: # Check it is out of lane or whaever + vector_of_infractions[1] +=1 + + + + + + + elif reward_matrix[pos,2] > 30000 and is_car_static(pos,reward_matrix): + + + if reward_matrix[pos,6] > 0.1: # Check if it is out of lane + vector_of_infractions[2]+=1 + + else: # Likely that the it bumped the car but it didn't bother + vector_of_infractions[3]+=1 + + else: # TimeOUt + vector_of_infractions[3]+=1 + + + return vector_of_infractions + + + + + +def get_out_of_road_lane(selected_matrix,header): + + count_road =0 + count_lane =0 + + + i=0 + + while i < selected_matrix.shape[0]: + #print selected_matrix[i,6] + if (selected_matrix[i,header.index('sidewalk_intersect')] - selected_matrix[(i-10),header.index('sidewalk_intersect')]) > 0.3: + count_road+=1 + i+=20 + if i >= selected_matrix.shape[0]: + break + + if (selected_matrix[i,header.index('lane_intersect')] - selected_matrix[(i-10),header.index('lane_intersect')]) > 0.4: + count_lane+=1 + i+=20 + + i+=1 + + + + + return count_lane,count_road + +def print_infractions(infractions): + print ' Killometers Without Pedestrians Colision - > ',1.0/(infractions[4]+0.0001) + print ' Average Colision',3.0/(infractions[4]+infractions[3] + infractions[2]+0.0001) + print ' Killometers Without Car Colision - > ',1.0/(infractions[3]+0.0001) + print ' Killometers Without Other Colision - > ',1.0/(infractions[2]+0.0001) + print ' Killometers Without Crossing Lane - > ',1.0/(infractions[0]+0.0001) + print ' Killometers Without Going to Sidewalk - > ',1.0/(infractions[1]+0.0001) + print ' Average Infraction ',2.0/(infractions[0]+infractions[1]+0.0001) + + +def plot_summary(file,summary_weathers): + + intervention_acc =[0,0,0,0,0] + completions_acc = [0,0,0,0] + infractions_vec = [0,0,0,0,0] + + compute_infractions = True + #,'test_weather':[4,14] + # 'test_weather':[4,14] + + #tasks =[0] + #tasks =[0,1,2,3] + #weathers = [1,3,6,8,2,14] + #for file in files_parsed: + f = open(file, "rb") + header = f.readline() + header= header.split(',') + header[-1] = header[-1][:-2] + f.close() + print header + f = open('rewards_' + file, "rb") + header_rewards = f.readline() + header_rewards= header_rewards.split(',') + header_rewards[-1] = header_rewards[-1][:-2] + f.close() + print header_rewards + data_matrix = np.loadtxt(open(path + file, "rb"), delimiter=",", skiprows=1) + + tasks = np.unique(data_matrix[:,header.index('exp_id')]) + + reward_matrix = np.loadtxt(open(path + 'rewards_file_' + file, "rb"), delimiter=",", skiprows=1) + + for t in tasks: + task_data_matrix = data_matrix[data_matrix[:,header.index('exp_id')]== t] + weathers = np.unique(task_data_matrix[:,header.index('weather')]) + summaries = {} + for sw in summary_weathers: + summaries[sw] = {'completion': 0., 'infractions': np.zeros(5, dtype=np.float), 'num_weathers': 0} + for w in weathers: + + task_data_matrix =data_matrix[np.logical_and(data_matrix[:,header.index('exp_id')]== t, data_matrix[:,header.index('weather')]== w)] + if compute_infractions: + task_reward_matrix =reward_matrix[np.logical_and(reward_matrix[:,header_rewards.index('exp_id')]== float(t), reward_matrix[:,header_rewards.index('weather')]== float(w))] + + completed_episodes = sum(task_data_matrix[:,header.index('result')])/task_data_matrix.shape[0] + print 'Task ',t , 'Weather', w + + print ' Entire Episodes Completed (%) - > ', completed_episodes + print '' + + #completions_acc = [sum(x) for x in zip(completions, completions_acc)] + + for sw in summary_weathers: + if w in summary_weathers[sw]: + summaries[sw]['completion'] += completed_episodes + summaries[sw]['num_weathers'] += 1 + + if compute_infractions: + print ' ==== Infraction Related =====' + km_run = get_distance_traveled(task_reward_matrix,header_rewards) + print ' Drove (KM) - > ', km_run + lane_road = get_out_of_road_lane(task_reward_matrix,header_rewards) + colisions = get_colisions(task_reward_matrix,header_rewards) + infractions = [lane_road[0]/km_run,lane_road[1]/km_run,colisions[0]/km_run,colisions[1]/km_run,colisions[2]/km_run] + print_infractions(infractions) + + for sw in summary_weathers: + if w in summary_weathers[sw]: + # print summaries[sw] + # print infractions + summaries[sw]['infractions'] += np.array(infractions) + + print '\n\n >>> Task', t, 'summary <<<\n\n' + for sw in summary_weathers: + print sw, summary_weathers[sw] + print 'Num weathers', summaries[sw]['num_weathers'] + print 'Avg completion', summaries[sw]['completion']/summaries[sw]['num_weathers'] + print 'Avg infractions' + print_infractions(summaries[sw]['infractions']/summaries[sw]['num_weathers']) + # + # + #infractions_vec = [sum(x) for x in zip(infractions, infractions_vec)] + #print 'Non_Colisions/Km', (infractions[1]+ infractions[0])/2.0 ,'Lane Cross/Km ',infractions[0],'Side Cross/Km ',infractions[1],'Col Gen /Km ',infractions[2]\ + #,'Col Ped /Km ',infractions[3],'Col Ped /Km ',infractions[4], 'Acidents/Km ', (infractions[4] +infractions[2] + infractions[3])/3,\ + #'total', 1/((infractions[4] +infractions[2] + infractions[3] + infractions[1] + infractions[0])/5.0) + + return summaries + + + + diff --git a/PythonClient/carla/planner/astar.py b/PythonClient/carla/planner/astar.py new file mode 100644 index 000000000..e239247ad --- /dev/null +++ b/PythonClient/carla/planner/astar.py @@ -0,0 +1,145 @@ +import heapq + + +class Cell(object): + def __init__(self, x, y, reachable): + """Initialize new cell. + + @param reachable is cell reachable? not a wall? + @param x cell x coordinate + @param y cell y coordinate + @param g cost to move from the starting cell to this cell. + @param h estimation of the cost to move from this cell + to the ending cell. + @param f f = g + h + """ + self.reachable = reachable + self.x = x + self.y = y + self.parent = None + self.g = 0 + self.h = 0 + self.f = 0 + + +class AStar(object): + def __init__(self): + # open list + self.opened = [] + heapq.heapify(self.opened) + # visited cells list + self.closed = set() + # grid cells + self.cells = [] + self.grid_height = None + self.grid_width = None + + def init_grid(self, width, height, walls, start, end): + """Prepare grid cells, walls. + + @param width grid's width. + @param height grid's height. + @param walls list of wall x,y tuples. + @param start grid starting point x,y tuple. + @param end grid ending point x,y tuple. + """ + self.grid_height = height + self.grid_width = width + for x in range(self.grid_width): + for y in range(self.grid_height): + if (x, y) in walls: + reachable = False + else: + reachable = True + self.cells.append(Cell(x, y, reachable)) + self.start = self.get_cell(*start) + self.end = self.get_cell(*end) + + def get_heuristic(self, cell): + """Compute the heuristic value H for a cell. + + Distance between this cell and the ending cell multiply by 10. + + @returns heuristic value H + """ + return 10 * (abs(cell.x - self.end.x) + abs(cell.y - self.end.y)) + + def get_cell(self, x, y): + """Returns a cell from the cells list. + + @param x cell x coordinate + @param y cell y coordinate + @returns cell + """ + return self.cells[x * self.grid_height + y] + + def get_adjacent_cells(self, cell): + """Returns adjacent cells to a cell. + + Clockwise starting from the one on the right. + + @param cell get adjacent cells for this cell + @returns adjacent cells list. + """ + cells = [] + if cell.x < self.grid_width-1: + cells.append(self.get_cell(cell.x+1, cell.y)) + if cell.y > 0: + cells.append(self.get_cell(cell.x, cell.y-1)) + if cell.x > 0: + cells.append(self.get_cell(cell.x-1, cell.y)) + if cell.y < self.grid_height-1: + cells.append(self.get_cell(cell.x, cell.y+1)) + return cells + + def get_path(self): + cell = self.end + path = [(cell.x, cell.y)] + while cell.parent is not self.start: + cell = cell.parent + path.append((cell.x, cell.y)) + + path.append((self.start.x, self.start.y)) + path.reverse() + return path + + def update_cell(self, adj, cell): + """Update adjacent cell. + + @param adj adjacent cell to current cell + @param cell current cell being processed + """ + adj.g = cell.g + 10 + adj.h = self.get_heuristic(adj) + adj.parent = cell + adj.f = adj.h + adj.g + + def solve(self): + """Solve maze, find path to ending cell. + + @returns path or None if not found. + """ + # add starting cell to open heap queue + heapq.heappush(self.opened, (self.start.f, self.start)) + while len(self.opened): + # pop cell from heap queue + f, cell = heapq.heappop(self.opened) + # add cell to closed list so we don't process it twice + self.closed.add(cell) + # if ending cell, return found path + if cell is self.end: + return self.get_path() + # get adjacent cells for cell + adj_cells = self.get_adjacent_cells(cell) + for adj_cell in adj_cells: + if adj_cell.reachable and adj_cell not in self.closed: + if (adj_cell.f, adj_cell) in self.opened: + # if adj cell in open list, check if current path is + # better than the one previously found + # for this adj cell. + if adj_cell.g > cell.g + 10: + self.update_cell(adj_cell, cell) + else: + self.update_cell(adj_cell, cell) + # add adj cell to open list + heapq.heappush(self.opened, (adj_cell.f, adj_cell)) diff --git a/PythonClient/carla/planner/bezier.py b/PythonClient/carla/planner/bezier.py new file mode 100644 index 000000000..04e46d150 --- /dev/null +++ b/PythonClient/carla/planner/bezier.py @@ -0,0 +1,37 @@ +import numpy as np +from scipy.misc import comb + +def bernstein_poly(i, n, t): + """ + The Bernstein polynomial of n, i as a function of t + """ + + return comb(n, i) * ( t**(n-i) ) * (1 - t)**i + + +def bezier_curve(points, nTimes=1000): + """ + Given a set of control points, return the + bezier curve defined by the control points. + + points should be a list of lists, or list of tuples + such as [ [1,1], + [2,3], + [4,5], ..[Xn, Yn] ] + nTimes is the number of time steps, defaults to 1000 + + See http://processingjs.nihongoresources.com/bezierinfo/ + """ + + nPoints = len(points) + xPoints = np.array([p[0] for p in points]) + yPoints = np.array([p[1] for p in points]) + + t = np.linspace(0.0, 1.0, nTimes) + + polynomial_array = np.array([ bernstein_poly(i, nPoints-1, t) for i in range(0, nPoints) ]) + + xvals = np.dot(xPoints, polynomial_array) + yvals = np.dot(yPoints, polynomial_array) + + return xvals, yvals diff --git a/PythonClient/carla/planner/graph.py b/PythonClient/carla/planner/graph.py new file mode 100644 index 000000000..a3a4d7d4b --- /dev/null +++ b/PythonClient/carla/planner/graph.py @@ -0,0 +1,152 @@ +import math +import numpy as np +from matplotlib import collections as mc +import matplotlib.pyplot as plt + +def string_to_node(string): + vec = string.split(',') + + return (int(vec[0]),int(vec[1])) + +def string_to_floats(string): + vec = string.split(',') + + return (float(vec[0]),float(vec[1]),float(vec[2])) + +def angle_between(v1,v2): + return np.arccos(np.dot(v1,v2) / np.linalg.norm(v1) / np.linalg.norm(v2)) +def signal(v1,v2): + return np.cross(v1,v2) / np.linalg.norm(v1) / np.linalg.norm(v2) + +sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) + +sldist3 = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2 + (c2[2] - c1[2])**2) + +class Graph(object): + """ + A simple directed, weighted graph + """ + + + + + def __init__(self,graph_file=None): + + + self.nodes = set() + self.angles ={} + self.edges = {} + self.distances = {} + if graph_file != None: + with open(graph_file, 'r') as file: + for i in range(5): + next(file) + for line in file: + + from_node, to_node, d = line.split() + from_node = string_to_node(from_node) + to_node = string_to_node(to_node) + + if from_node not in self.nodes: + self.add_node(from_node) + if to_node not in self.nodes: + self.add_node(to_node) + + + + self.edges.setdefault(from_node,[]) + self.edges[from_node].append(to_node) + self.distances[(from_node, to_node)] = float(d) + + + + def add_node(self, value): + self.nodes.add(value) + + + + def make_orientations(self,node,heading): + + import collections + distance_dic = {} + for node_iter in self.nodes: + if node_iter != node: + distance_dic[sldist(node,node_iter)] = node_iter + + + + + distance_dic = collections.OrderedDict(sorted(distance_dic.items())) + + self.angles[node ] = heading + for k, v in distance_dic.iteritems(): + + #print k + #print v + + start_to_goal = np.array([node[0] - v[0], node[1] - v[1]]) + + print start_to_goal + + self.angles[v] = start_to_goal / np.linalg.norm(start_to_goal) + + + def add_edge(self, from_node, to_node, distance): + self._add_edge(from_node, to_node, distance) + + + def _add_edge(self, from_node, to_node, distance): + self.edges.setdefault(from_node, []) + self.edges[from_node].append(to_node) + self.distances[(from_node, to_node)] = distance + + def intersection_nodes(self): + + intersect_nodes = [] + for node in self.nodes: + if len(self.edges[node]) > 2: + intersect_nodes.append(node) + + return intersect_nodes + + # This contains also the non-intersection turns... + + def turn_nodes(self): + + + return self.nodes + + def plot_ori(self,c): + line_len = 1 + print self.angles + lines = [[(p[0], p[1]), (p[0] + line_len*self.angles[p][0], p[1] + \ + line_len*self.angles[p][1])] for p in self.nodes] + lc = mc.LineCollection(lines, linewidth=2,color='green') + fig, ax = plt.subplots() + ax.add_collection(lc) + + + ax.autoscale() + ax.margins(0.1) + + xs = [p[0] for p in self.nodes] + ys = [p[1] for p in self.nodes] + + + plt.scatter(xs, ys,color=c) + + + + def plot(self,c): + + xs = [p[0] for p in self.nodes] + ys = [p[1] for p in self.nodes] + + + plt.scatter(xs, ys,color=c) + + + + + + diff --git a/PythonClient/carla/planner/planner.py b/PythonClient/carla/planner/planner.py new file mode 100644 index 000000000..04c72cd12 --- /dev/null +++ b/PythonClient/carla/planner/planner.py @@ -0,0 +1,541 @@ +from graph import * +from PIL import Image +import math +from astar import * +import time +import collections + +compare = lambda x, y: collections.Counter(x) == collections.Counter(y) + +def angle_between(v1,v2): + return np.arccos(np.dot(v1,v2) / np.linalg.norm(v1) / np.linalg.norm(v2)) + +sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) + +def color_to_angle(color): + return ((float(color)/255.0) ) *2*math.pi + + + +class Planner(object): + + # The built graph. This is the exact same graph that unreal builds. This is a generic structure used for many cases + def __init__(self,city_file,map_file): + # read the conversion parameters from the city file + with open(city_file, 'r') as file: + + linewordloffset = file.readline() + # The offset of the world from the zero coordinates ( The coordinate we consider zero) + self.worldoffset = string_to_floats(linewordloffset) + + #WARNING: for now just considering the y angle + lineworldangles = file.readline() + self.angles = string_to_floats(lineworldangles) + #self.worldrotation = np.array([[math.cos(math.radians(self.angles[0])),0,math.sin(math.radians(self.angles[0])) ],[0,1,0],[-math.sin(math.radians(self.angles[0])),0,math.cos(math.radians(self.angles[0]))]]) + + self.worldrotation = np.array([[math.cos(math.radians(self.angles[2])),-math.sin(math.radians(self.angles[2])) ,0.0],[math.sin(math.radians(self.angles[2])),math.cos(math.radians(self.angles[2])),0.0],[0.0,0.0,1.0]]) + + # Ignore for now + lineworscale = file.readline() + + linemapoffset = file.readline() + + # The offset of the map zero coordinate + self.mapoffset = string_to_floats(linemapoffset) + + # the graph resolution. + linegraphres = file.readline() + self.resolution = string_to_node(linegraphres) + + + #This is the bmp map that will be associated with the graph. + #This map contains the navigable paths drawed + self.graph = Graph(city_file) + + self.map_image = Image.open(map_file) + self.map_image.load() + self.map_image = np.asarray(self.map_image, dtype="int32" ) + + + import os + dir_path = os.path.dirname(__file__) + self.central_path_map_image = Image.open(map_file[:-4] +'c.png') + self.central_path_map_image.load() + self.central_path_map_image = np.asarray(self.central_path_map_image, dtype="int32" ) + self.central_path_map_image =self.central_path_map_image[:,:,0] # Just take the red dimension + + self.grid = self.make_grid() + self.walls = self.make_walls() + + + self.previous_source = (0,0) + self.distance = 0 + self.complete_distance = 0 + + #print self.map_image + self.commands = [] + + self.route =[] + + + # The number of game units per pixel + self.pixel_density = 16.43 + #A pixel positions with respect to graph node position is: Pixel = Node*50 +2 + self.node_density = 50.0 + # This function converts the 2d map into a 3D one in a vector. + + + + + + def _draw_line(self,grid,xi,yi,xf,yf): + + if xf< xi: + aux = xi + xi = xf + xf = aux + + if yf< yi: + aux = yi + yi = yf + yf = aux + + + for i in range(xi,xf+1): + + for j in range(yi,yf+1): + + grid[i,j] = 0.0 + + return grid + + def make_grid(self): # The resolution could be easily increased + + + grid = np.ones((self.resolution[0],self.resolution[1])) + + for key,connections in self.graph.edges.iteritems(): + + # draw a line + for con in connections: + + #print key[0],key[1],con[0],con[1] + grid = self._draw_line(grid,key[0],key[1],con[0],con[1]) + #print grid + + + np.set_printoptions( linewidth =206,threshold=np.nan) + + + return grid + + + def make_walls(self): + walls = set() + + for i in range(self.grid.shape[0]): + + for j in range(self.grid.shape[1]): + if self.grid[i,j] == 1.0: + walls.add((i,j)) + + return walls + + def init(self,source,target): + + self.a_star.init_grid(self.resolution[0],self.resolution[1], self.walls,source,target) + + + def solve(self): + return self.a_star.solve() + + + + + # Convert world position into "Graph World" node positions + def make_node(self,worldvertex): + + pixel = self.make_map_world(worldvertex) + + + node = [] + + + + + node.append((pixel[0])/self.node_density - 2) + node.append((pixel[1])/self.node_density - 2 ) + + return tuple(node) + + def make_map_world(self,world): + + relative_location = [] + pixel=[] + + rotation = np.array([world[0],world[1],world[2]]) + rotation = rotation.dot(self.worldrotation) + + + + relative_location.append(rotation[0] + self.worldoffset[0] - self.mapoffset[0]) + relative_location.append(rotation[1] + self.worldoffset[1] - self.mapoffset[1]) + relative_location.append(rotation[2] + self.worldoffset[2] - self.mapoffset[2]) + + + pixel.append(math.floor(relative_location[0]/float(self.pixel_density))) + pixel.append(math.floor(relative_location[1]/float(self.pixel_density))) + + return pixel + def make_map_node(self,node): + pixel = [] + pixel.append((node[0] +2) *self.node_density) + pixel.append((node[1] +2) *self.node_density) + + return pixel + + def make_world_map(self,pixel): + + relative_location =[] + world_vertex = [] + relative_location.append(pixel[0]*self.pixel_density) + relative_location.append(pixel[1]*self.pixel_density) + + world_vertex.append(relative_location[0]+self.mapoffset[0] -self.worldoffset[0]) + world_vertex.append(relative_location[1]+self.mapoffset[1] -self.worldoffset[1]) + world_vertex.append(22) + return world_vertex + + + def make_world_node(self,node): + + return self.make_world_map(self.make_map_node(node)) + + + def get_distance_closest_node(self,pos): + import collections + distance = [] + for node_iter in self.graph.intersection_nodes(): + + distance.append( sldist(node_iter,pos)) + + return sorted(distance)[0] + + def get_distance_closest_node(self,pos): + import collections + distance = [] + for node_iter in self.graph.intersection_nodes(): + + distance.append( sldist(node_iter,pos)) + + return sorted(distance)[0] + + def get_distance_closest_node_route(self,pos,route): + import collections + distance = [] + #if self.graph.intersection_nodes() == set(): + + for node_iter in route: + + if node_iter in self.graph.intersection_nodes(): + + distance.append( sldist(node_iter,pos)) + + if not distance: + + return sldist(route[-1],pos) + return sorted(distance)[0] + + + def get_target_ori(self,target_pos): + + relative_location = [] + pixel=[] + rotation = np.array([target_pos[0],target_pos[1],target_pos[2]]) + rotation = rotation.dot(self.worldrotation) + + #print 'rot ', rotation + + relative_location.append(rotation[0] + self.worldoffset[0] - self.mapoffset[0]) + relative_location.append(rotation[1] + self.worldoffset[1] - self.mapoffset[1]) + relative_location.append(rotation[2] + self.worldoffset[2] - self.mapoffset[2]) + #print 'trans ', relative_location + + pixel.append(math.floor(relative_location[0]/float(self.pixel_density))) + pixel.append(math.floor(relative_location[1]/float(self.pixel_density))) + #print self.map_image.shape + ori = self.map_image[int(pixel[1]),int(pixel[0]),2] + ori = ((float(ori)/255.0) ) *2*math.pi + + #print self.map_image[int(pixel[1]),int(pixel[0]),:] + #print ori + #print (math.cos(ori),math.sin(ori)) + #print exit() + + return (-math.cos(ori),-math.sin(ori)) + + + + + + + + def search(self,x,y): + visit = [[0,1],[0,-1],[1,0],[1,1],[1,-1],[-1,0],[-1,1],[-1,-1]] + c_x,c_y = x,y + scale=1 + while(self.grid[c_x,c_y] !=0 ): + for offset in visit: + c_x,c_y = x + offset[0]*scale,y + offset[1]*scale + + if c_x>= 0 and c_x = 0 and c_y = 0 and node[0] = 0 and node[1] 1.6 and adj !=target) : + self.grid[adj[0],adj[1]] =1.0 + + added_walls.add((adj[0],adj[1])) + self.walls.add((adj[0],adj[1])) + + return added_walls + + def set_grid_direction_target(self,pos,pos_ori,source): + + free_nodes = self.get_adjacent_free_nodes(pos) + + + added_walls =set() + heading_start = np.array([pos_ori[0], pos_ori[1]]) + for adj in free_nodes: + + start_to_goal = np.array([adj[0] - pos[0], adj[1] - pos[1] ]) + angle = angle_between(heading_start,start_to_goal) + + if (angle < 1.0 and adj !=source) : + self.grid[adj[0],adj[1]] =1.0 + + added_walls.add((adj[0],adj[1])) + self.walls.add((adj[0],adj[1])) + + return added_walls + + + #from the shortest path graph, transform it into a list of commands + # @param the sub graph containing the shortest path + # @param Orientation of the car + # returns list of commands ( 3 is left, 4 is right, 5 is straight) + + def graph_to_commands(self, route ): + + commands_list = [] + + for i in range(0,len(route)): + if route[i] not in self.graph.intersection_nodes(): + continue + + current = route[i] + past =route[i-1] + future = route[i+1] + + past_to_current = np.array([current[0]-past[0], current[1]-past[1]]) + current_to_future = np.array([future[0]-current[0], future[1]-current[1]]) + angle =signal(current_to_future,past_to_current) + + command = 0.0 + if angle < -0.1: + command = 4.0 + elif angle > 0.1: + command = 3.0 + else: + command =5.0 + + commands_list.append(command) + + + return commands_list + + def check_command_completed(self,commands,previous_commands): + if compare(commands,previous_commands): + return False,False + elif (len(commands) + 1) < len(previous_commands): + return True,False + + elif len(commands) < len(previous_commands): + + + + return True,compare(commands,previous_commands[1:]) + else: + return True,False + + + + def get_full_distance_route(self,pos,route): + import collections + distance = 0 + #if self.graph.intersection_nodes() == set(): + current_pos = pos + for node_iter in route: + + + + distance += sldist(node_iter,current_pos) + current_pos = node_iter + + + return distance + + + + + + def get_next_command(self,source,source_ori, target,target_ori): + + + node_source = self.make_node(source) + node_target = self.make_node(target) + + source_ori = np.array([source_ori[0],source_ori[1],source_ori[2]]) + source_ori = source_ori.dot(self.worldrotation) + + + # Trunkate ! + node_source = tuple([ int(x) for x in node_source ]) + node_target = tuple([ int(x) for x in node_target ]) + target_ori = self.get_target_ori(target) + # Set to zero if it is less than zero. + + + + target_ori = np.array([target_ori[0],target_ori[1],0]) + target_ori = target_ori.dot(self.worldrotation) + + + node_source =(max(0,node_source[0]),max(0,node_source[1])) + node_source =(min(self.resolution[0]-1,node_source[0]),min(self.resolution[1]-1,node_source[1])) + # is it x or y ? Check to avoid special corner cases + + + if math.fabs(source_ori[0]) > math.fabs(source_ori[1]): + source_ori = (source_ori[0],0.0,0.0) + else: + source_ori = (0.0,source_ori[1],0.0) + + + + node_source = self.search(node_source[0],node_source[1]) + node_target = self.search(node_target[0],node_target[1]) + #print '' + #print node_source + #print node_target + #print self.grid + + # reach the goal + if node_source == node_target: + return 0,0 + + + # This is to avoid computing a new route when inside the route + distance_node = self.get_distance_closest_node(node_source) + + if (distance_node >1 and self.previous_source != node_source) or self.complete_distance ==0: + + #print node_source + #print node_target + added_walls = self.set_grid_direction(node_source,source_ori,node_target) + #print added_walls + added_walls=added_walls.union(self.set_grid_direction_target(node_target,target_ori,node_source)) + #print added_walls + self.previous_source = node_source + + #print self.grid + + self.a_star =AStar() + self.init(node_source, node_target) + route = self.solve() + #print route # JuSt a Corner Case + if route == None: + for i in added_walls: + self.walls.remove(i) + + self.grid[i[0],i[1]] = 0.0 + added_walls = self.set_grid_direction(node_source,source_ori,node_target) + self.a_star =AStar() + self.init(node_source, node_target) + route = self.solve() + + #print route + + # We recompute the distance based on route + self.distance= self.get_distance_closest_node_route(node_source,route) + self.complete_distance = self.get_full_distance_route(node_source,route)*50.0*16.42 + + for i in added_walls: + self.walls.remove(i) + + self.grid[i[0],i[1]] = 0.0 + + commands = self.graph_to_commands(route) + made_turn,completed_command = self.check_command_completed(commands,self.commands) + + + self.commands = commands + next_node=route[0] + for i in route: + if i in self.graph.nodes: + next_node = i + break + + + + if self.distance > 4: + return 2.0,self.complete_distance + else: + if self.commands: + return self.commands[0],self.complete_distance + else: + return 2.0,self.complete_distance + else: + + if self.distance >4: + return 2.0,self.complete_distance + + if self.commands: + return self.commands[0],self.complete_distance + else: + return 2.0,self.complete_distance + diff --git a/PythonClient/run_benchmark.py b/PythonClient/run_benchmark.py new file mode 100644 index 000000000..0d43c12bf --- /dev/null +++ b/PythonClient/run_benchmark.py @@ -0,0 +1,77 @@ + +import argparse +import logging +import sys + + +from benchmarks.corl import CoRL +from benchmarks.agent import Agent + +from carla.tcp import TCPConnectionError +from carla.client import make_carla_client + + +class Manual(Agent): + def run_step(self, data,target): + control = Control() + control.steer = 0.0 + control.throttle = 0.9 + control.brake = 0.0 + control.hand_brake = False + control.reverse = False + + return control + + +if(__name__ == '__main__'): + + + argparser = argparse.ArgumentParser(description=__doc__) + argparser.add_argument( + '-v', '--verbose', + action='store_true', + dest='debug', + help='print debug information') + argparser.add_argument( + '--host', + metavar='H', + default='localhost', + help='IP of the host server (default: localhost)') + argparser.add_argument( + '-p', '--port', + metavar='P', + default=2000, + type=int, + help='TCP port to listen to (default: 2000)') + + + + args = argparser.parse_args() + + log_level = logging.DEBUG if args.debug else logging.INFO + logging.basicConfig(format='%(levelname)s: %(message)s', level=log_level) + + logging.info('listening to server %s:%s', args.host, args.port) + + while True: + try: + with make_carla_client(host, port) as client: + corl= CoRL('test') + agent = Manual() + results = corl.benchmark_agent(agent,carla) + + break + + except TCPConnectionError as error: + logging.error(error) + time.sleep(1) + except Exception as exception: + logging.exception(exception) + sys.exit(1) + + + + + + +# DETECT AN ERROR AND WRITE THE COMPLETE SUMMARY ALREADY \ No newline at end of file From 85d693032ec769da4a8e5719139dbde24fd64ad3 Mon Sep 17 00:00:00 2001 From: felipecode Date: Tue, 5 Dec 2017 14:22:37 +0100 Subject: [PATCH 002/121] benchmark seems to be working a first version. The planner needs further work " ; --- PythonClient/benchmarks/agent.py | 16 +-- PythonClient/benchmarks/benchmark.py | 129 +++++++++---------- PythonClient/benchmarks/corl.py | 13 +- PythonClient/benchmarks/experiment.py | 2 +- PythonClient/carla/client.py | 2 +- PythonClient/carla/planner/Town01Central.png | Bin 0 -> 27332 bytes PythonClient/carla/planner/Town02Central.png | Bin 0 -> 10624 bytes PythonClient/carla/planner/planner.py | 2 +- PythonClient/run_benchmark.py | 19 ++- 9 files changed, 91 insertions(+), 92 deletions(-) create mode 100644 PythonClient/carla/planner/Town01Central.png create mode 100644 PythonClient/carla/planner/Town02Central.png diff --git a/PythonClient/benchmarks/agent.py b/PythonClient/benchmarks/agent.py index a0d450307..7918c74d7 100644 --- a/PythonClient/benchmarks/agent.py +++ b/PythonClient/benchmarks/agent.py @@ -21,21 +21,21 @@ from carla.carla_server_pb2 import Control class Agent(object, ): - def __init__(self, **kwargs): + def __init__(self,city_name, **kwargs): import os dir_path = os.path.dirname(__file__) - planner = Planner(dir_path+'/../planner/' + city_name + '.txt',\ - dir_path+'/../planner/' + city_name + '.png') + self._planner = Planner(dir_path+'/../carla/planner/' + city_name + '.txt',\ + dir_path+'/../carla/planner/' + city_name + '.png') - def get_initial_distance(self): + def get_distance(self,start_point,end_point): - _,path_distance=planner.get_next_command([positions[start_point].location.x\ - ,positions[start_point].location.y,22],[positions[start_point].orientation.x\ - ,positions[start_point].orientation.y,22],[positions[end_point].location.x\ - ,positions[end_point].location.y,22],(1,0,0)) + _,path_distance=self._planner.get_next_command([start_point.location.x\ + ,start_point.location.y,22],[start_point.orientation.x\ + ,start_point.orientation.y,22],[end_point.location.x\ + ,end_point.location.y,22],(1,0,0)) # We calculate the timout based on the distance return path_distance diff --git a/PythonClient/benchmarks/benchmark.py b/PythonClient/benchmarks/benchmark.py index 11b13d1f6..7424452b9 100644 --- a/PythonClient/benchmarks/benchmark.py +++ b/PythonClient/benchmarks/benchmark.py @@ -1,10 +1,19 @@ from .metrics import plot_summary +try: + from carla import carla_server_pb2 as carla_protocol +except ImportError: + raise RuntimeError('cannot import "carla_server_pb2.py", run the protobuf compiler to generate this file') + + +import json, csv, time + class Benchmark(object,): # Param @name to be used for saving purposes - def __init__(self,name): + def __init__(self,city_name,name): + self._city_name = city_name # The name of the city that is going to be used. self._base_name = name # Sends a base name, the rest will be saved with respect to what the episode was about self._dict_stats = {'exp_id':-1, 'rep':-1, @@ -19,10 +28,6 @@ class Benchmark(object,): } - with open(self._base_name + self._suffix_name , 'wb') as ofd: - - w = csv.DictWriter(ofd, self._dict_stats.keys()) - w.writeheader() self._dict_rewards = { @@ -47,7 +52,7 @@ class Benchmark(object,): prev_x = -1 prev_y = -1 measurements,sensor_data= carla.read_data() - carla.send_control(Control()) + carla.send_control(carla_protocol.Control()) t0 = measurements.game_timestamp t1=t0 success = False @@ -59,9 +64,7 @@ class Benchmark(object,): while((t1-t0) < (time_out*1000) and not success): capture_time = time.time() measurements,sensor_data = carla.read_data() - print (sensor_data) - print (measurements) - print (time.time()-capture_time) + control = agent.run_step(measurements,sensor_data,target) print ('STEER ',control.steer,'GAS ',control.throttle,'Brake ',control.brake) carla.send_control(control) @@ -78,17 +81,12 @@ class Benchmark(object,): measurement_vec.append(measurements.player_measurements) t1 = measurements.game_timestamp - print (t1-t0) - # accumulate layout related signal - # accum_lane_intersect += reward.road_intersect - #accum_sidewalk_intersect += reward.sidewalk_intersect + step += 1 - # This distance is wrong - - agent.compute_distance() - #distance = self.compute_distance([curr_x, curr_y], [prev_x, prev_y], [target.location.x, target.location.y]) - # debug + # The distance is based on graph but quite not exact. + distance = agent.get_distance(measurements.player_measurements.transform,target) + print('[d=%f] c_x = %f, c_y = %f ---> t_x = %f, t_y = %f' % (float(distance), curr_x, curr_y, target.location.x, target.location.y)) if(distance < 200.0): @@ -107,51 +105,46 @@ class Benchmark(object,): experiments = self._build_experiments() # Returns a experiment class that is build from a benchmark inherited class - self._suffix_name = self._get_names(experiments[starting_position:]) # The fixed name considering all the experiments being run + self._suffix_name = self._get_experiments_names(experiments[starting_position:]) # The fixed name considering all the experiments being run + with open(self._base_name + self._suffix_name , 'wb') as ofd: + + w = csv.DictWriter(ofd, self._dict_stats.keys()) + w.writeheader() + + + with open('rewards_' + self._base_name + self._suffix_name , 'wb') as rfd: + + rw = csv.DictWriter(rfd, self._dict_rewards.keys()) + rw.writeheader() + + + + self.write_experiment() # write the experiment being run for experiment in experiments[starting_position:]: - self.write_experiment(experiment) # write the experiment being run - - - #poses_exp = start_goal_poses[experiment_id] - #repetitions = repetitions_per_experiment[experiment_id] - #pedestrians_exp = pedestrians[experiment_id] - #ehicles_exp = vehicles[experiment_id] - - #for rep in range(repetitions): # CONTROL REPETITION INSIDE EXPERIMENT ??? - - # for the different weathers - #for weather_cond in weathers: - # let's go through all the starting-goal positions of the experiment - - - positions = carla.load_settings(experiment.conditions).player_start_spots for pose in experiment.poses: - for rep in experiment.repetitions: + for rep in range(experiment.repetitions): - trajectory = experiment.poses - #ped = pedestrians_exp[i] - #vehic = vehicles_exp[i] - start_point = trajectory[0] - end_point = trajectory[1] + start_point = pose[0] + end_point = pose[1] carla.start_episode(start_point) print('======== !!!! ==========') - path_distance = agent.get_initial_distance(positions[start_point],positions[end_point]) + path_distance = agent.get_distance(positions[start_point],positions[end_point]) time_out = self._calculate_time_out(path_distance) # running the agent - (result, reward_vec, final_time, remaining_distance) = self.run_until(agent,carla,time_out,positions[end_point]) + (result, reward_vec, final_time, remaining_distance) = self.run_navigation_episode(agent,carla,time_out,positions[end_point]) @@ -160,18 +153,11 @@ class Benchmark(object,): self.write_summary_results(experiment,pose,rep,path_distance,remaining_distance,final_time,time_out,result) - #rw.writerow(dict_rewards) - self.write_reward_results(reward_vec) + self.write_reward_results(experiment,rep,reward_vec) - # save results of the experiment - #list_stats.append(dict_stats) - #print (dict_stats) - #w.writerow(dict_stats) - - if(result > 0): print('+++++ Target achieved in %f seconds! +++++' % final_time) else: @@ -182,8 +168,11 @@ class Benchmark(object,): - def write_details(self): - pass + def write_experiment(self): + + with open(self._get_details() , 'wb') as ofd: + pass + def write_summary_results(self,experiment,pose,rep,path_distance,remaining_distance,final_time,time_out,result): @@ -205,31 +194,31 @@ class Benchmark(object,): w = csv.DictWriter(ofd, self._dict_stats.keys()) - w.writerow(dict_stats) + w.writerow(self._dict_stats) def write_reward_results(self,experiment,rep,reward_vec): - with open('rewards_' + self._base_name + self._suffix_name , 'a+') as ofd: + with open('rewards_' + self._base_name + self._suffix_name , 'a+') as rfd: - rw = csv.DictWriter(rfd, dict_rewards.keys()) + rw = csv.DictWriter(rfd, self._dict_rewards.keys()) rw.writeheader() for i in range(len(reward_vec)): - dict_rewards['exp_id'] = experiment.id - dict_rewards['rep'] = rep - dict_rewards['weather'] = experiment.Conditions.WeatherId - dict_rewards['collision_gen'] = reward_vec[i].collision_other - dict_rewards['collision_ped'] = reward_vec[i].collision_pedestrians - dict_rewards['collision_car'] = reward_vec[i].collision_vehicles - dict_rewards['lane_intersect'] = reward_vec[i].intersection_otherlane - dict_rewards['sidewalk_intersect'] = reward_vec[i].intersection_offroad - dict_rewards['pos_x'] = reward_vec[i].transform.location.x - dict_rewards['pos_y'] = reward_vec[i].transform.location.y + self._dict_rewards['exp_id'] = experiment.id + self._dict_rewards['rep'] = rep + self._dict_rewards['weather'] = experiment.Conditions.WeatherId + self._dict_rewards['collision_gen'] = reward_vec[i].collision_other + self._dict_rewards['collision_ped'] = reward_vec[i].collision_pedestrians + self._dict_rewards['collision_car'] = reward_vec[i].collision_vehicles + self._dict_rewards['lane_intersect'] = reward_vec[i].intersection_otherlane + self._dict_rewards['sidewalk_intersect'] = reward_vec[i].intersection_offroad + self._dict_rewards['pos_x'] = reward_vec[i].transform.location.x + self._dict_rewards['pos_y'] = reward_vec[i].transform.location.y - rw.writerow(dict_rewards) + rw.writerow(self._dict_rewards) @@ -240,7 +229,7 @@ class Benchmark(object,): summary_weathers = {'train_weather': [1,3,6,8]} - summary = plot_summary(self._base_name + self._suffix_name,summary_weathers, ) + summary = plot_summary(self._base_name + self._suffix_name,summary_weathers) def plot_summary_train(self): @@ -257,11 +246,11 @@ class Benchmark(object,): return 0 # To be redefined on subclasses - def build_experiments(self): + def _build_experiments(self): pass - def _get_experiments(self,experiments): + def _get_experiments_names(self,experiments): name_cat ='_t' for experiment in experiments: diff --git a/PythonClient/benchmarks/corl.py b/PythonClient/benchmarks/corl.py index c7b032493..17fe61d21 100644 --- a/PythonClient/benchmarks/corl.py +++ b/PythonClient/benchmarks/corl.py @@ -1,7 +1,8 @@ from .benchmark import Benchmark from .experiment import Experiment - +from carla.sensor import Camera +from carla.settings import CarlaSettings # Function to return the timeout ( in miliseconds) that is calculated based on distance to goal. # This is the same timeout as used on the CoRL paper. @@ -10,7 +11,7 @@ from .experiment import Experiment class CoRL(Benchmark): - def _calculate_time_out(self,distance): + def _calculate_time_out(self,path_distance): return ((path_distance/100000.0)/10.0)*3600.0 + 10.0 def _poses_town01(self): @@ -72,7 +73,7 @@ class CoRL(Benchmark): ] - def build_experiments(self,town): + def _build_experiments(self): # We set the camera that is going to be used for all experiments @@ -86,7 +87,7 @@ class CoRL(Benchmark): camera.set_rotation(-15.0,0,0) weathers = [1,3,6,8,4,14] - if town == 'Town01': + if self._city_name == 'Town01': poses_tasks = self._poses_town01() vehicles_tasks =[0,0,0,20] pedestrians_tasks = [0,0,0,50] @@ -130,8 +131,10 @@ class CoRL(Benchmark): Conditions=conditions, Poses= poses, Id = iteration, - Repetions = 1 + Repetitions = 1 ) experiments_vector.append(experiment) return experiments_vector + def _get_details(self): # Function to get automatic information from the experiment for writing purposes + return 'corl_' + self._city_name \ No newline at end of file diff --git a/PythonClient/benchmarks/experiment.py b/PythonClient/benchmarks/experiment.py index 3d26052c3..7e31821ad 100644 --- a/PythonClient/benchmarks/experiment.py +++ b/PythonClient/benchmarks/experiment.py @@ -20,7 +20,7 @@ class Experiment(object): setattr(self, key, value) @property - def name(self): + def id(self): return self.Id @property diff --git a/PythonClient/carla/client.py b/PythonClient/carla/client.py index 748200928..80fde992b 100644 --- a/PythonClient/carla/client.py +++ b/PythonClient/carla/client.py @@ -126,7 +126,7 @@ class CarlaClient(object): def send_control(self, *args, **kwargs): """ Send the VehicleControl to be applied this frame. - + If synchronous mode was requested, the server will pause the simulation until this message is received. """ diff --git a/PythonClient/carla/planner/Town01Central.png b/PythonClient/carla/planner/Town01Central.png new file mode 100644 index 0000000000000000000000000000000000000000..b2d769f94b463364721d7d9e3ffd2e8ba0405441 GIT binary patch literal 27332 zcmeI5ZAep57{{N<-gTr+NXuYls4zoiUwo<1nCLKvMIaKRnP`Co^96|%nj<1JGAKgR zV&D3d)|awOnL#n5=tG1rWiG7n!g1M@feXhi%8k4l(Q{mt)su#ll)XgnUPlc!#R5I2HT>tmDjWo#cTPW zgl-R{u#JjVQ)Q{*vs$YuG;}u&HWKN`WGp#;ZpJ$^uCeQqW#c`6{8wcQ6W;NKBdSHZ z=uKcRLxBQNU@I$NtLyVvmR>)K3mv4ZrDB(&ImxCX z{*+JK#2b3zJNL5Q+Qx>O0DZpv1*vDK<42@>^^5e1*pn}c%}!-_1r?A4Fc8cDW&ksQ z83+c@KnfY)6X6rr!zcF6&dWk$0oeP&x?o*ltN;UG01WVn0R}cS;&|qreW-EeCP?#A z-7ESc?Qqvne8KZcg(~pbNRtR1kS5_W00zJy6o`2kdYF65pEi8p1AKYu*u%!odCt7a z){9lwZiR%F^*MKuwm^155P?*ckO8SGA;TI|RY-wy6(J&50T#to01QF}zyKH!a>6GH zD}YagPYeu|^VBb1J4=^pb(bfKmrhRixhgv>?xe9pL)3VOkq^N(N`?1J4*8oaYjOdj{Zt`T!jJmQdDv3;` z#YYf9C?XI=1iK(R90ag@BrZfk4O<7AUt3gAUt3<*Tsbx!UJXt2oDe* z@TPH-^d6WeYoD^88`#f(BLHFBKb#k5+xK22CCaV3sN-Gsev@K^~P+;(MaSW-r_2$k-US>lc7ROf) z|3y#Z{&A$>2y2?xjs^j<3p_xLqhK@yFhii;O6|teb1~W=nGJU@iaqpwzzSq0So3E0 zA7=rp_hr%t(GF7%aD!+8)elS{+J$ouh++sFl?DaFXt0bX2VgQ7%_XCy1E@F{Efq&A z3t%!Btt3a=4!~qE+Bg_(8~~HSXyahCaR5vPqm6?h-;?}mc+jr=Srj8EHWl3Nu-?&O zV0bUYP(D5W=OT!p7q}nI&>>U-<}YH21F3D$XcPzQ8I>LlmeJ&(Fq#dB%mxo`pOc-# zz{3!{WT4bUd1nhkOHhbdqQ^A&)jp=s51Tv*WK6 zaLE88Xf42K0XjNYJvv7}+Kw3Q7moG|hevbziqXN?Z)diF3$^Xhx0Jw*t5IS!1kghu YSAT|%VlYqiT1$|Or>mdKI;Vst0Q|Fa2><{9 literal 0 HcmV?d00001 diff --git a/PythonClient/carla/planner/planner.py b/PythonClient/carla/planner/planner.py index 04c72cd12..cf898ee20 100644 --- a/PythonClient/carla/planner/planner.py +++ b/PythonClient/carla/planner/planner.py @@ -59,7 +59,7 @@ class Planner(object): import os dir_path = os.path.dirname(__file__) - self.central_path_map_image = Image.open(map_file[:-4] +'c.png') + self.central_path_map_image = Image.open(map_file[:-4] +'Central.png') self.central_path_map_image.load() self.central_path_map_image = np.asarray(self.central_path_map_image, dtype="int32" ) self.central_path_map_image =self.central_path_map_image[:,:,0] # Just take the red dimension diff --git a/PythonClient/run_benchmark.py b/PythonClient/run_benchmark.py index 0d43c12bf..b6cc05a74 100644 --- a/PythonClient/run_benchmark.py +++ b/PythonClient/run_benchmark.py @@ -9,11 +9,16 @@ from benchmarks.agent import Agent from carla.tcp import TCPConnectionError from carla.client import make_carla_client +import time +try: + from carla import carla_server_pb2 as carla_protocol +except ImportError: + raise RuntimeError('cannot import "carla_server_pb2.py", run the protobuf compiler to generate this file') class Manual(Agent): - def run_step(self, data,target): - control = Control() + def run_step(self,measurements,sensor_data,target): + control = carla_protocol.Control() control.steer = 0.0 control.throttle = 0.9 control.brake = 0.0 @@ -55,10 +60,12 @@ if(__name__ == '__main__'): while True: try: - with make_carla_client(host, port) as client: - corl= CoRL('test') - agent = Manual() - results = corl.benchmark_agent(agent,carla) + with make_carla_client(args.host, args.port) as client: + corl= CoRL('Town02','test') + agent = Manual('Town02') + results = corl.benchmark_agent(agent,client) + corl.plot_summary_test() + corl.plot_summary_train() break From 5406d5f0ebe74926b7d3360eb992bf9e525bcabb Mon Sep 17 00:00:00 2001 From: felipecode Date: Tue, 5 Dec 2017 17:02:16 +0100 Subject: [PATCH 003/121] changed the used distance function --- PythonClient/benchmarks/benchmark.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/PythonClient/benchmarks/benchmark.py b/PythonClient/benchmarks/benchmark.py index 7424452b9..48c08fab0 100644 --- a/PythonClient/benchmarks/benchmark.py +++ b/PythonClient/benchmarks/benchmark.py @@ -9,6 +9,8 @@ except ImportError: import json, csv, time +sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) + class Benchmark(object,): # Param @name to be used for saving purposes @@ -85,7 +87,9 @@ class Benchmark(object,): step += 1 # The distance is based on graph but quite not exact. - distance = agent.get_distance(measurements.player_measurements.transform,target) + distance = sldist([curr_x,curr_y],[target.location.x, target.location.y]) + + print('[d=%f] c_x = %f, c_y = %f ---> t_x = %f, t_y = %f' % (float(distance), curr_x, curr_y, target.location.x, target.location.y)) @@ -139,6 +143,7 @@ class Benchmark(object,): carla.start_episode(start_point) print('======== !!!! ==========') + print(' Start Position ',start_point,' End Position ',end_point) path_distance = agent.get_distance(positions[start_point],positions[end_point]) From 1b89041375c11dda68e313b9dcf28922fd2235c1 Mon Sep 17 00:00:00 2001 From: felipecode Date: Tue, 5 Dec 2017 17:04:34 +0100 Subject: [PATCH 004/121] changed the used distance function --- PythonClient/benchmarks/benchmark.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PythonClient/benchmarks/benchmark.py b/PythonClient/benchmarks/benchmark.py index 48c08fab0..26d4b840c 100644 --- a/PythonClient/benchmarks/benchmark.py +++ b/PythonClient/benchmarks/benchmark.py @@ -6,7 +6,7 @@ except ImportError: raise RuntimeError('cannot import "carla_server_pb2.py", run the protobuf compiler to generate this file') -import json, csv, time +import json, csv, time, math sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) From 269979d0c72e05713b2526fcb9c9ae6a17830f10 Mon Sep 17 00:00:00 2001 From: felipecode Date: Tue, 5 Dec 2017 18:28:25 +0100 Subject: [PATCH 005/121] changing spaces. Debugging ploting --- PythonClient/benchmarks/benchmark.py | 19 +-- PythonClient/benchmarks/corl.py | 204 ++++++++++++++------------- PythonClient/benchmarks/metrics.py | 7 +- 3 files changed, 121 insertions(+), 109 deletions(-) diff --git a/PythonClient/benchmarks/benchmark.py b/PythonClient/benchmarks/benchmark.py index 26d4b840c..82f4554a5 100644 --- a/PythonClient/benchmarks/benchmark.py +++ b/PythonClient/benchmarks/benchmark.py @@ -14,7 +14,7 @@ sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) class Benchmark(object,): # Param @name to be used for saving purposes - def __init__(self,city_name,name): + def __init__(self,city_name,name,starting_position=0): self._city_name = city_name # The name of the city that is going to be used. self._base_name = name # Sends a base name, the rest will be saved with respect to what the episode was about self._dict_stats = {'exp_id':-1, @@ -45,6 +45,11 @@ class Benchmark(object,): 'pos_y':-1 } + # Returns a experiment class that is build from a benchmark inherited class + self._experiments = self._build_experiments() + + self._suffix_name = self._get_experiments_names(self._experiments) + def run_navigation_episode(self, agent,carla, time_out, target): @@ -104,12 +109,10 @@ class Benchmark(object,): return (0, measurement_vec, time_out,distance) - def benchmark_agent(self,agent,carla,starting_position=0): + def benchmark_agent(self,agent,carla): - + # The fixed name considering all the experiments being run - experiments = self._build_experiments() # Returns a experiment class that is build from a benchmark inherited class - self._suffix_name = self._get_experiments_names(experiments[starting_position:]) # The fixed name considering all the experiments being run with open(self._base_name + self._suffix_name , 'wb') as ofd: w = csv.DictWriter(ofd, self._dict_stats.keys()) @@ -126,7 +129,7 @@ class Benchmark(object,): self.write_experiment() # write the experiment being run - for experiment in experiments[starting_position:]: + for experiment in self._experiments[starting_position:]: @@ -208,7 +211,7 @@ class Benchmark(object,): with open('rewards_' + self._base_name + self._suffix_name , 'a+') as rfd: rw = csv.DictWriter(rfd, self._dict_rewards.keys()) - rw.writeheader() + for i in range(len(reward_vec)): @@ -258,7 +261,7 @@ class Benchmark(object,): def _get_experiments_names(self,experiments): name_cat ='_t' - for experiment in experiments: + for experiment in experiments: name_cat += str(experiment.id) + '.' diff --git a/PythonClient/benchmarks/corl.py b/PythonClient/benchmarks/corl.py index 17fe61d21..ecd522e1b 100644 --- a/PythonClient/benchmarks/corl.py +++ b/PythonClient/benchmarks/corl.py @@ -1,3 +1,11 @@ +# Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de +# Barcelona (UAB), and the INTEL Visual Computing Lab. +# +# This work is licensed under the terms of the MIT license. +# For a copy, see . + +# CORL experiment set. + from .benchmark import Benchmark from .experiment import Experiment @@ -11,130 +19,136 @@ from carla.settings import CarlaSettings class CoRL(Benchmark): - def _calculate_time_out(self,path_distance): - return ((path_distance/100000.0)/10.0)*3600.0 + 10.0 + def _calculate_time_out(self,path_distance): + return ((path_distance/100000.0)/10.0)*3600.0 + 10.0 - def _poses_town01(self): + def _poses_town01(self): - return [ [[36,40],[39,35],[110,114],[7,3],[0,4],\ - [68,50],[61,59],[47,64],[147,90],[33,87],\ - [26,19],[80,76],[45,49],[55,44],[29,107],\ - [95,104],[34,84],[51,67],[22,17],[91,148],\ - [20,107],[78,70],[95,102],[68,44],[45,69]], + return [ [[36,40],[39,35],[110,114],[7,3],[0,4],\ + [68,50],[61,59],[47,64],[147,90],[33,87],\ + [26,19],[80,76],[45,49],[55,44],[29,107],\ + [95,104],[34,84],[51,67],[22,17],[91,148],\ + [20,107],[78,70],[95,102],[68,44],[45,69]], - [[138,17],[46,16],[26,9],[42,49],[140,26],\ - [85,97],[65,133],[137,51],[76,66],[46,39],\ - [40,60],[1,28],[4,129],[121,107],[2,129],\ - [78,44],[68,85],[41,102],[95,70],[68,129],\ - [84,69],[47,79],[110,15],[130,17],[0,17]], + [[138,17],[46,16],[26,9],[42,49],[140,26],\ + [85,97],[65,133],[137,51],[76,66],[46,39],\ + [40,60],[1,28],[4,129],[121,107],[2,129],\ + [78,44],[68,85],[41,102],[95,70],[68,129],\ + [84,69],[47,79],[110,15],[130,17],[0,17]], - [[105,29],[27,130],[102,87],[132,27],[24,44],\ - [96,26],[34,67],[28,1],[140,134],[105,9],\ - [148,129],[65,18],[21,16],[147,97],[42,51],\ - [30,41],[18,107],[69,45],[102,95],[18,145],\ - [111,64],[79,45],[84,69],[73,31],[37,81]], + [[105,29],[27,130],[102,87],[132,27],[24,44],\ + [96,26],[34,67],[28,1],[140,134],[105,9],\ + [148,129],[65,18],[21,16],[147,97],[42,51],\ + [30,41],[18,107],[69,45],[102,95],[18,145],\ + [111,64],[79,45],[84,69],[73,31],[37,81]], - [[105,29],[27,130],[102,87],[132,27],[24,44],\ - [96,26],[34,67],[28,1],[140,134],[105,9],\ - [148,129],[65,18],[21,16],[147,97],[42,51],\ - [30,41],[18,107],[69,45],[102,95],[18,145],\ - [111,64],[79,45],[84,69],[73,31],[37,81]] + [[105,29],[27,130],[102,87],[132,27],[24,44],\ + [96,26],[34,67],[28,1],[140,134],[105,9],\ + [148,129],[65,18],[21,16],[147,97],[42,51],\ + [30,41],[18,107],[69,45],[102,95],[18,145],\ + [111,64],[79,45],[84,69],[73,31],[37,81]] - ] + ] - def _poses_town02(self): + def _poses_town02(self): - return [ [[38, 34], [4, 2], [12, 10], [62, 55], [43, 47],\ - [64, 66], [78, 76],[59,57],[61,18],[35,39],\ - [12,8],[0,18],[75,68],[54,60],[45,49],\ - [46,42],[53,46],[80,29],[65,63],[0,81],\ - [54,63],[51,42],[16,19],[17,26],[77,68]], + return [ [[38, 34], [4, 2], [12, 10], [62, 55], [43, 47],\ + [64, 66], [78, 76],[59,57],[61,18],[35,39],\ + [12,8],[0,18],[75,68],[54,60],[45,49],\ + [46,42],[53,46],[80,29],[65,63],[0,81],\ + [54,63],[51,42],[16,19],[17,26],[77,68]], - [[37, 76], [8, 24], [60, 69], [38, 10], [21, 1],\ - [58,71],[74,32],[44,0],[71,16],[14,24],\ - [34,11],[43,14],[75,16],[80,21],[3,23],\ - [75,59],[50,47],[11,19],[77,34],[79,25] ,\ - [40,63],[58,76],[79,55],[16,61],[27,11]], + [[37, 76], [8, 24], [60, 69], [38, 10], [21, 1],\ + [58,71],[74,32],[44,0],[71,16],[14,24],\ + [34,11],[43,14],[75,16],[80,21],[3,23],\ + [75,59],[50,47],[11,19],[77,34],[79,25] ,\ + [40,63],[58,76],[79,55],[16,61],[27,11]], - [[19,66],[79,14],[19,57],[23,1],\ - [53,76],[42,13],[31,71],[33,5],\ - [54,30],[10,61],[66,3],[27,12],\ - [79,19],[2,29],[16,14],[5,57],\ - [70,73],[46,67],[57,50],[61,49],[21,12],\ - [51,81],[77,68],[56,65],[43,54]], + [[19,66],[79,14],[19,57],[23,1],\ + [53,76],[42,13],[31,71],[33,5],\ + [54,30],[10,61],[66,3],[27,12],\ + [79,19],[2,29],[16,14],[5,57],\ + [70,73],[46,67],[57,50],[61,49],[21,12],\ + [51,81],[77,68],[56,65],[43,54]], - [[19,66],[79,14],[19,57],[23,1],\ - [53,76],[42,13],[31,71],[33,5],\ - [54,30],[10,61],[66,3],[27,12],\ - [79,19],[2,29],[16,14],[5,57],\ - [70,73],[46,67],[57,50],[61,49],[21,12],\ - [51,81],[77,68],[56,65],[43,54]] + [[19,66],[79,14],[19,57],[23,1],\ + [53,76],[42,13],[31,71],[33,5],\ + [54,30],[10,61],[66,3],[27,12],\ + [79,19],[2,29],[16,14],[5,57],\ + [70,73],[46,67],[57,50],[61,49],[21,12],\ + [51,81],[77,68],[56,65],[43,54]] - ] + ] - def _build_experiments(self): + def _build_experiments(self): + """ Creates the whole set of experiment objects, + The experiments created depend on the selected Town. + """ + + # We set the camera + # This single RGB camera is used on every experiment + + camera = Camera('CameraRGB') + camera.set(CameraFOV=100) - # We set the camera that is going to be used for all experiments - camera = Camera('CameraRGB') - camera.set(CameraFOV=100) + camera.set_image_size(800, 600) + camera.set_position(200, 0, 140) + camera.set_rotation(-15.0,0,0) - camera.set_image_size(800, 600) - - camera.set_position(200, 0, 140) - camera.set_rotation(-15.0,0,0) - - weathers = [1,3,6,8,4,14] - if self._city_name == 'Town01': - poses_tasks = self._poses_town01() - vehicles_tasks =[0,0,0,20] - pedestrians_tasks = [0,0,0,50] - else: - poses_tasks = self._poses_town02() - vehicles_tasks =[0,0,0,15] - pedestrians_tasks = [0,0,0,50] + weathers = [1,3,6,8,4,14] + if self._city_name == 'Town01': + poses_tasks = self._poses_town01() + vehicles_tasks =[0,0,0,20] + pedestrians_tasks = [0,0,0,50] + else: + poses_tasks = self._poses_town02() + vehicles_tasks =[0,0,0,15] + pedestrians_tasks = [0,0,0,50] - experiments_vector = [] + experiments_vector = [] - for weather in weathers: + for weather in weathers: - for iteration in range(len(poses_tasks)): + for iteration in range(len(poses_tasks)): - poses = poses_tasks[iteration] - vehicles = vehicles_tasks[iteration] - pedestrians = pedestrians_tasks[iteration] + poses = poses_tasks[iteration] + vehicles = vehicles_tasks[iteration] + pedestrians = pedestrians_tasks[iteration] - conditions = CarlaSettings() - conditions.set( - SynchronousMode=True, - SendNonPlayerAgentsInfo=True, - NumberOfVehicles=vehicles, - NumberOfPedestrians=pedestrians, - WeatherId=weather, - SeedVehicles=123456789, - SeedPedestrians=123456789 - ) - # Add all the cameras that were set for this experiments + conditions = CarlaSettings() + conditions.set( + SynchronousMode=True, + SendNonPlayerAgentsInfo=True, + NumberOfVehicles=vehicles, + NumberOfPedestrians=pedestrians, + WeatherId=weather, + SeedVehicles=123456789, + SeedPedestrians=123456789 + ) + # Add all the cameras that were set for this experiments - conditions.add_sensor(camera) + conditions.add_sensor(camera) - experiment = Experiment() - experiment.set( - Conditions=conditions, - Poses= poses, - Id = iteration, - Repetitions = 1 - ) - experiments_vector.append(experiment) + experiment = Experiment() + experiment.set( + Conditions=conditions, + Poses= poses, + Id = iteration, + Repetitions = 1 + ) + experiments_vector.append(experiment) - return experiments_vector - def _get_details(self): # Function to get automatic information from the experiment for writing purposes - return 'corl_' + self._city_name \ No newline at end of file + return experiments_vector + + def _get_details(self): + # Function to get automatic information from the experiment for writing purposes + return 'corl_' + self._city_name \ No newline at end of file diff --git a/PythonClient/benchmarks/metrics.py b/PythonClient/benchmarks/metrics.py index 3e8bf2859..bd3856ad5 100644 --- a/PythonClient/benchmarks/metrics.py +++ b/PythonClient/benchmarks/metrics.py @@ -278,12 +278,7 @@ def plot_summary(file,summary_weathers): print 'Avg completion', summaries[sw]['completion']/summaries[sw]['num_weathers'] print 'Avg infractions' print_infractions(summaries[sw]['infractions']/summaries[sw]['num_weathers']) - # - # - #infractions_vec = [sum(x) for x in zip(infractions, infractions_vec)] - #print 'Non_Colisions/Km', (infractions[1]+ infractions[0])/2.0 ,'Lane Cross/Km ',infractions[0],'Side Cross/Km ',infractions[1],'Col Gen /Km ',infractions[2]\ - #,'Col Ped /Km ',infractions[3],'Col Ped /Km ',infractions[4], 'Acidents/Km ', (infractions[4] +infractions[2] + infractions[3])/3,\ - #'total', 1/((infractions[4] +infractions[2] + infractions[3] + infractions[1] + infractions[0])/5.0) + return summaries From 876d5a091ec9808b559468acb3945bcc29264495 Mon Sep 17 00:00:00 2001 From: felipecode Date: Wed, 6 Dec 2017 15:17:46 +0100 Subject: [PATCH 006/121] Correcting the metrics path and adding a new path definition for the experiments --- PythonClient/benchmarks/benchmark.py | 20 ++++++++++++-------- PythonClient/benchmarks/corl.py | 9 +++++++-- PythonClient/benchmarks/metrics.py | 17 ++++++++--------- 3 files changed, 27 insertions(+), 19 deletions(-) diff --git a/PythonClient/benchmarks/benchmark.py b/PythonClient/benchmarks/benchmark.py index 82f4554a5..428a036f1 100644 --- a/PythonClient/benchmarks/benchmark.py +++ b/PythonClient/benchmarks/benchmark.py @@ -6,7 +6,7 @@ except ImportError: raise RuntimeError('cannot import "carla_server_pb2.py", run the protobuf compiler to generate this file') -import json, csv, time, math +import json, csv, time, math,os sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) @@ -49,7 +49,15 @@ class Benchmark(object,): self._experiments = self._build_experiments() self._suffix_name = self._get_experiments_names(self._experiments) - + + + self._full_name = '_benchmarks_results/' + self._base_name +'_' + self._get_details() +'/' + folder = os.path.dirname(self._full_name) + if not os.path.isdir(folder): + os.makedirs(folder) + + + def run_navigation_episode(self, agent,carla, time_out, target): @@ -174,12 +182,8 @@ class Benchmark(object,): return list_stats - - - def write_experiment(self): - with open(self._get_details() , 'wb') as ofd: - pass + def write_summary_results(self,experiment,pose,rep,path_distance,remaining_distance,final_time,time_out,result): @@ -236,7 +240,7 @@ class Benchmark(object,): summary_weathers = {'train_weather': [1,3,6,8]} - + print self._base_name + self._suffix_name summary = plot_summary(self._base_name + self._suffix_name,summary_weathers) diff --git a/PythonClient/benchmarks/corl.py b/PythonClient/benchmarks/corl.py index ecd522e1b..59872bff6 100644 --- a/PythonClient/benchmarks/corl.py +++ b/PythonClient/benchmarks/corl.py @@ -12,6 +12,9 @@ from .experiment import Experiment from carla.sensor import Camera from carla.settings import CarlaSettings +import datetime + + # Function to return the timeout ( in miliseconds) that is calculated based on distance to goal. # This is the same timeout as used on the CoRL paper. @@ -88,7 +91,7 @@ class CoRL(Benchmark): # We set the camera # This single RGB camera is used on every experiment - + camera = Camera('CameraRGB') camera.set(CameraFOV=100) @@ -150,5 +153,7 @@ class CoRL(Benchmark): return experiments_vector def _get_details(self): + + now = datetime.datetime.now() # Function to get automatic information from the experiment for writing purposes - return 'corl_' + self._city_name \ No newline at end of file + return 'corl_' + self._city_name + '_' + now.strftime("%Y%m%d%H%M") \ No newline at end of file diff --git a/PythonClient/benchmarks/metrics.py b/PythonClient/benchmarks/metrics.py index bd3856ad5..5597ed6c9 100644 --- a/PythonClient/benchmarks/metrics.py +++ b/PythonClient/benchmarks/metrics.py @@ -206,30 +206,29 @@ def plot_summary(file,summary_weathers): infractions_vec = [0,0,0,0,0] compute_infractions = True - #,'test_weather':[4,14] - # 'test_weather':[4,14] + # Separate the PATH and the basename + path = os.path.dirname(file) + base_name = os.path.basename(file) + - #tasks =[0] - #tasks =[0,1,2,3] - #weathers = [1,3,6,8,2,14] - #for file in files_parsed: f = open(file, "rb") header = f.readline() header= header.split(',') header[-1] = header[-1][:-2] f.close() print header - f = open('rewards_' + file, "rb") + + f = open(os.path.join(path,'rewards_' , base_name), "rb") header_rewards = f.readline() header_rewards= header_rewards.split(',') header_rewards[-1] = header_rewards[-1][:-2] f.close() print header_rewards - data_matrix = np.loadtxt(open(path + file, "rb"), delimiter=",", skiprows=1) + data_matrix = np.loadtxt(open(file, "rb"), delimiter=",", skiprows=1) tasks = np.unique(data_matrix[:,header.index('exp_id')]) - reward_matrix = np.loadtxt(open(path + 'rewards_file_' + file, "rb"), delimiter=",", skiprows=1) + reward_matrix = np.loadtxt(open(os.path.join(path,'rewards_' , base_name), "rb"), delimiter=",", skiprows=1) for t in tasks: task_data_matrix = data_matrix[data_matrix[:,header.index('exp_id')]== t] From 9a622b5fbef4b906beba66e2bfd92fe1d17b1615 Mon Sep 17 00:00:00 2001 From: felipecode Date: Sat, 9 Dec 2017 18:51:34 +0100 Subject: [PATCH 007/121] A new version of the benchmark, now able to continue were stopped Added a installation script, currently have to install for pip --- PythonClient/MANIFEST.in | 2 + PythonClient/benchmarks/benchmark.py | 310 ------------------ PythonClient/benchmarks/metrics.py | 286 ---------------- .../{ => carla}/benchmarks/__init__.py | 0 PythonClient/{ => carla}/benchmarks/agent.py | 4 +- PythonClient/carla/benchmarks/benchmark.py | 296 +++++++++++++++++ PythonClient/{ => carla}/benchmarks/corl.py | 145 ++++++-- .../{ => carla}/benchmarks/experiment.py | 0 PythonClient/carla/benchmarks/metrics.py | 201 ++++++++++++ PythonClient/run_benchmark.py | 91 ++--- PythonClient/setup.py | 12 + 11 files changed, 673 insertions(+), 674 deletions(-) create mode 100644 PythonClient/MANIFEST.in delete mode 100644 PythonClient/benchmarks/benchmark.py delete mode 100644 PythonClient/benchmarks/metrics.py rename PythonClient/{ => carla}/benchmarks/__init__.py (100%) rename PythonClient/{ => carla}/benchmarks/agent.py (93%) create mode 100644 PythonClient/carla/benchmarks/benchmark.py rename PythonClient/{ => carla}/benchmarks/corl.py (55%) rename PythonClient/{ => carla}/benchmarks/experiment.py (100%) create mode 100644 PythonClient/carla/benchmarks/metrics.py create mode 100644 PythonClient/setup.py diff --git a/PythonClient/MANIFEST.in b/PythonClient/MANIFEST.in new file mode 100644 index 000000000..824b0ad1d --- /dev/null +++ b/PythonClient/MANIFEST.in @@ -0,0 +1,2 @@ +include carla/planner/*.txt +include carla/planner/*.png diff --git a/PythonClient/benchmarks/benchmark.py b/PythonClient/benchmarks/benchmark.py deleted file mode 100644 index 428a036f1..000000000 --- a/PythonClient/benchmarks/benchmark.py +++ /dev/null @@ -1,310 +0,0 @@ - -from .metrics import plot_summary -try: - from carla import carla_server_pb2 as carla_protocol -except ImportError: - raise RuntimeError('cannot import "carla_server_pb2.py", run the protobuf compiler to generate this file') - - -import json, csv, time, math,os - - -sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) - -class Benchmark(object,): - - # Param @name to be used for saving purposes - def __init__(self,city_name,name,starting_position=0): - self._city_name = city_name # The name of the city that is going to be used. - self._base_name = name # Sends a base name, the rest will be saved with respect to what the episode was about - self._dict_stats = {'exp_id':-1, - 'rep':-1, - 'weather':-1, - 'start_point':-1, - 'end_point':-1, - 'result':-1, - 'initial_distance':-1, - 'final_distance':-1, - 'final_time':-1, - 'time_out':-1 - - - } - - - self._dict_rewards = { - 'exp_id':-1, - 'rep':-1, - 'weather':-1, - 'collision_gen':-1, - 'collision_ped':-1, - 'collision_car':-1, - 'lane_intersect':-1, - 'sidewalk_intersect':-1, - 'pos_x':-1, - 'pos_y':-1 - } - - # Returns a experiment class that is build from a benchmark inherited class - self._experiments = self._build_experiments() - - self._suffix_name = self._get_experiments_names(self._experiments) - - - self._full_name = '_benchmarks_results/' + self._base_name +'_' + self._get_details() +'/' - folder = os.path.dirname(self._full_name) - if not os.path.isdir(folder): - os.makedirs(folder) - - - - - def run_navigation_episode(self, agent,carla, time_out, target): - - - curr_x = -1 - curr_y = -1 - prev_x = -1 - prev_y = -1 - measurements,sensor_data= carla.read_data() - carla.send_control(carla_protocol.Control()) - t0 = measurements.game_timestamp - t1=t0 - success = False - step = 0 - accum_lane_intersect = 0.0 - accum_sidewalk_intersect = 0.0 - distance = 100000 - measurement_vec=[] - while((t1-t0) < (time_out*1000) and not success): - capture_time = time.time() - measurements,sensor_data = carla.read_data() - - control = agent.run_step(measurements,sensor_data,target) - print ('STEER ',control.steer,'GAS ',control.throttle,'Brake ',control.brake) - carla.send_control(control) - - - # meassure distance to target - - prev_x = curr_x - prev_y = curr_y - curr_x = measurements.player_measurements.transform.location.x - curr_y = measurements.player_measurements.transform.location.y - - - measurement_vec.append(measurements.player_measurements) - - t1 = measurements.game_timestamp - - - step += 1 - # The distance is based on graph but quite not exact. - distance = sldist([curr_x,curr_y],[target.location.x, target.location.y]) - - - - print('[d=%f] c_x = %f, c_y = %f ---> t_x = %f, t_y = %f' % (float(distance), curr_x, curr_y, target.location.x, target.location.y)) - - if(distance < 200.0): - success = True - - - - if(success): - return (1, measurement_vec, float(t1-t0)/1000.0,distance) - else: - return (0, measurement_vec, time_out,distance) - - - def benchmark_agent(self,agent,carla): - - # The fixed name considering all the experiments being run - - with open(self._base_name + self._suffix_name , 'wb') as ofd: - - w = csv.DictWriter(ofd, self._dict_stats.keys()) - w.writeheader() - - - with open('rewards_' + self._base_name + self._suffix_name , 'wb') as rfd: - - rw = csv.DictWriter(rfd, self._dict_rewards.keys()) - rw.writeheader() - - - - self.write_experiment() # write the experiment being run - - - for experiment in self._experiments[starting_position:]: - - - - positions = carla.load_settings(experiment.conditions).player_start_spots - - for pose in experiment.poses: - for rep in range(experiment.repetitions): - - - - start_point = pose[0] - end_point = pose[1] - - carla.start_episode(start_point) - - print('======== !!!! ==========') - print(' Start Position ',start_point,' End Position ',end_point) - - path_distance = agent.get_distance(positions[start_point],positions[end_point]) - - time_out = self._calculate_time_out(path_distance) - # running the agent - (result, reward_vec, final_time, remaining_distance) = self.run_navigation_episode(agent,carla,time_out,positions[end_point]) - - - - # compute stats for the experiment - - self.write_summary_results(experiment,pose,rep,path_distance,remaining_distance,final_time,time_out,result) - - - - self.write_reward_results(experiment,rep,reward_vec) - - - - if(result > 0): - print('+++++ Target achieved in %f seconds! +++++' % final_time) - else: - print('----- Tmeout! -----') - - return list_stats - - - - - - - def write_summary_results(self,experiment,pose,rep,path_distance,remaining_distance,final_time,time_out,result): - - self._dict_stats['exp_id'] = experiment.id - self._dict_stats['rep'] = rep - self._dict_stats['weather'] = experiment.Conditions.WeatherId - self._dict_stats['start_point'] = pose[0] - self._dict_stats['end_point'] = pose[1] - self._dict_stats['result'] = result - self._dict_stats['initial_distance'] = path_distance - self._dict_stats['final_distance'] = remaining_distance - self._dict_stats['final_time'] = final_time - self._dict_stats['time_out'] = time_out - - - - with open(self._base_name + self._suffix_name , 'a+') as ofd: - - w = csv.DictWriter(ofd, self._dict_stats.keys()) - - - w.writerow(self._dict_stats) - - - - def write_reward_results(self,experiment,rep,reward_vec): - - with open('rewards_' + self._base_name + self._suffix_name , 'a+') as rfd: - - rw = csv.DictWriter(rfd, self._dict_rewards.keys()) - - - - for i in range(len(reward_vec)): - self._dict_rewards['exp_id'] = experiment.id - self._dict_rewards['rep'] = rep - self._dict_rewards['weather'] = experiment.Conditions.WeatherId - self._dict_rewards['collision_gen'] = reward_vec[i].collision_other - self._dict_rewards['collision_ped'] = reward_vec[i].collision_pedestrians - self._dict_rewards['collision_car'] = reward_vec[i].collision_vehicles - self._dict_rewards['lane_intersect'] = reward_vec[i].intersection_otherlane - self._dict_rewards['sidewalk_intersect'] = reward_vec[i].intersection_offroad - self._dict_rewards['pos_x'] = reward_vec[i].transform.location.x - self._dict_rewards['pos_y'] = reward_vec[i].transform.location.y - - rw.writerow(self._dict_rewards) - - - - - - def plot_summary_test(self): - - - summary_weathers = {'train_weather': [1,3,6,8]} - print self._base_name + self._suffix_name - summary = plot_summary(self._base_name + self._suffix_name,summary_weathers) - - - def plot_summary_train(self): - - - summary_weathers = {'test_weather': [4,14]} - - summary = plot_summary(self._base_name + self._suffix_name,summary_weathers) - - - - # To be redefined on subclasses on how to calculate timeout for an episode - def _calculate_time_out(self,distance): - return 0 - - # To be redefined on subclasses - def _build_experiments(self): - pass - - - def _get_experiments_names(self,experiments): - - name_cat ='_t' - for experiment in experiments: - - name_cat += str(experiment.id) + '.' - - name_cat ='_w' - - for experiment in experiments: - - name_cat += str(experiment.Conditions.WeatherId) +'.' - - - return name_cat - - - - -""" - w = csv.DictWriter(ofd, dict_stats.keys()) - w.writeheader() - rw = csv.DictWriter(rfd, dict_rewards.keys()) - rw.writeheader() - - - - carla = opt_dict['CARLA'] - width = opt_dict['WIDTH'] - height = opt_dict['HEIGHT'] - host = opt_dict['HOST'] - port = opt_dict['PORT'] - - output_summary = opt_dict['OUTPUT_SUMMARY'] - runnable = opt_dict['RUNNABLE'] - experiments_to_run = opt_dict['EXPERIMENTS_TO_RUN'] - pedestrians = opt_dict['PEDESTRIANS'] - vehicles = opt_dict['VEHICLES'] - repetitions_per_experiment = opt_dict['REPETITIONS'] - weathers = opt_dict['WEATHERS'] - start_goal_poses = opt_dict['START_GOAL_POSES'] - cameras = opt_dict['CAMERAS'] - - list_stats = [] - -""" diff --git a/PythonClient/benchmarks/metrics.py b/PythonClient/benchmarks/metrics.py deleted file mode 100644 index 5597ed6c9..000000000 --- a/PythonClient/benchmarks/metrics.py +++ /dev/null @@ -1,286 +0,0 @@ - -import numpy as np -import math -import matplotlib.pyplot as plt - - -import argparse -sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) -flatten = lambda l: [item for sublist in l for item in sublist] - - - -def task_complete_percentages(data_matrix): - - complete_per = [] - pos_ant =0 - for pos in reset_positions: - complete_per.append(sum(data_matrix[pos_ant:pos,1])/len(reset_positions)) - pos_ant =pos - - return complete_per - -def task_average_time_percentages(data_matrix,reset_positions): - - complete_per = [] - pos_ant =0 - for pos in reset_positions: - complete_per.append(sum(data_matrix[pos_ant:pos,0])/25.0) - pos_ant =pos - - return complete_per - - -def get_colisions(selected_matrix,header): - - count_gen =0 - count_ped =0 - count_car = 0 - i=1 - - while i < selected_matrix.shape[0]: - if (selected_matrix[i,header.index('collision_gen')] - selected_matrix[(i-10),header.index('collision_gen')]) > 40000: - count_gen+=1 - i+=20 - i+=1 - - - i=1 - while i < selected_matrix.shape[0]: - if (selected_matrix[i,header.index('collision_car')] - selected_matrix[(i-10),header.index('collision_car')]) > 40000: - count_car+=1 - i+=30 - i+=1 - - - i=1 - while i < selected_matrix.shape[0]: - if (selected_matrix[i,header.index('collision_ped')] - selected_matrix[i-5,header.index('collision_ped')]) > 30000: - count_ped+=1 - i+=100 - i+=1 - - - return count_gen,count_car,count_ped - -def get_distance_traveled(selected_matrix,header): - - prev_x = selected_matrix[0,header.index('pos_x')] - prev_y = selected_matrix[0,header.index('pos_y')] - - i =1 - acummulated_distance =0 - while i < selected_matrix.shape[0]: - - x = selected_matrix[i,header.index('pos_x')] - y = selected_matrix[i,header.index('pos_y')] - - - acummulated_distance += sldist((x,y),(prev_x,prev_y)) - #print sldist((x,y),(prev_x,prev_y)) - - prev_x =x - prev_y =y - - i+=1 - return (float(acummulated_distance)/float(100*1000)) - -def get_end_positions(data_matrix): - - - i=0 - end_positions_vec = [] - accumulated_time = 0 - while i < data_matrix.shape[0]: - - end_positions_vec.append(accumulated_time) - accumulated_time += data_matrix[i,2]*10 - i+=1 - - return end_positions_vec - - -def is_car_static(pos,reward_matrix): - - - x = reward_matrix[pos,0] - y = reward_matrix[pos,1] - - prev_x = reward_matrix[pos,0] - prev_y = reward_matrix[pos,1] - - if sldist((x,y),(prev_x,prev_y)) > 100: - return False - else: - return True - - - - - - -def get_end_positions_state(end_positions,data_matrix, reward_matrix): - - - vector_of_infractions = [0,0,0,0] # Inf1+inf3 , inf2+inf3 or inf3, , inf1+inf4, timeout - - - for i in range(len(end_positions)): - pos = int(end_positions[i] -20) - - if data_matrix[i,1] == 0: # if it failed, lets find the reason - - if reward_matrix[pos,4] > 30000 and is_car_static(pos,reward_matrix): # If it crashed_general - - if reward_matrix[pos,5] > 0.4: # Check if it is out of road - # Case 0 - vector_of_infractions[0] +=1 - else: # Check it is out of lane or whaever - vector_of_infractions[1] +=1 - - - - - - - elif reward_matrix[pos,2] > 30000 and is_car_static(pos,reward_matrix): - - - if reward_matrix[pos,6] > 0.1: # Check if it is out of lane - vector_of_infractions[2]+=1 - - else: # Likely that the it bumped the car but it didn't bother - vector_of_infractions[3]+=1 - - else: # TimeOUt - vector_of_infractions[3]+=1 - - - return vector_of_infractions - - - - - -def get_out_of_road_lane(selected_matrix,header): - - count_road =0 - count_lane =0 - - - i=0 - - while i < selected_matrix.shape[0]: - #print selected_matrix[i,6] - if (selected_matrix[i,header.index('sidewalk_intersect')] - selected_matrix[(i-10),header.index('sidewalk_intersect')]) > 0.3: - count_road+=1 - i+=20 - if i >= selected_matrix.shape[0]: - break - - if (selected_matrix[i,header.index('lane_intersect')] - selected_matrix[(i-10),header.index('lane_intersect')]) > 0.4: - count_lane+=1 - i+=20 - - i+=1 - - - - - return count_lane,count_road - -def print_infractions(infractions): - print ' Killometers Without Pedestrians Colision - > ',1.0/(infractions[4]+0.0001) - print ' Average Colision',3.0/(infractions[4]+infractions[3] + infractions[2]+0.0001) - print ' Killometers Without Car Colision - > ',1.0/(infractions[3]+0.0001) - print ' Killometers Without Other Colision - > ',1.0/(infractions[2]+0.0001) - print ' Killometers Without Crossing Lane - > ',1.0/(infractions[0]+0.0001) - print ' Killometers Without Going to Sidewalk - > ',1.0/(infractions[1]+0.0001) - print ' Average Infraction ',2.0/(infractions[0]+infractions[1]+0.0001) - - -def plot_summary(file,summary_weathers): - - intervention_acc =[0,0,0,0,0] - completions_acc = [0,0,0,0] - infractions_vec = [0,0,0,0,0] - - compute_infractions = True - # Separate the PATH and the basename - path = os.path.dirname(file) - base_name = os.path.basename(file) - - - f = open(file, "rb") - header = f.readline() - header= header.split(',') - header[-1] = header[-1][:-2] - f.close() - print header - - f = open(os.path.join(path,'rewards_' , base_name), "rb") - header_rewards = f.readline() - header_rewards= header_rewards.split(',') - header_rewards[-1] = header_rewards[-1][:-2] - f.close() - print header_rewards - data_matrix = np.loadtxt(open(file, "rb"), delimiter=",", skiprows=1) - - tasks = np.unique(data_matrix[:,header.index('exp_id')]) - - reward_matrix = np.loadtxt(open(os.path.join(path,'rewards_' , base_name), "rb"), delimiter=",", skiprows=1) - - for t in tasks: - task_data_matrix = data_matrix[data_matrix[:,header.index('exp_id')]== t] - weathers = np.unique(task_data_matrix[:,header.index('weather')]) - summaries = {} - for sw in summary_weathers: - summaries[sw] = {'completion': 0., 'infractions': np.zeros(5, dtype=np.float), 'num_weathers': 0} - for w in weathers: - - task_data_matrix =data_matrix[np.logical_and(data_matrix[:,header.index('exp_id')]== t, data_matrix[:,header.index('weather')]== w)] - if compute_infractions: - task_reward_matrix =reward_matrix[np.logical_and(reward_matrix[:,header_rewards.index('exp_id')]== float(t), reward_matrix[:,header_rewards.index('weather')]== float(w))] - - completed_episodes = sum(task_data_matrix[:,header.index('result')])/task_data_matrix.shape[0] - print 'Task ',t , 'Weather', w - - print ' Entire Episodes Completed (%) - > ', completed_episodes - print '' - - #completions_acc = [sum(x) for x in zip(completions, completions_acc)] - - for sw in summary_weathers: - if w in summary_weathers[sw]: - summaries[sw]['completion'] += completed_episodes - summaries[sw]['num_weathers'] += 1 - - if compute_infractions: - print ' ==== Infraction Related =====' - km_run = get_distance_traveled(task_reward_matrix,header_rewards) - print ' Drove (KM) - > ', km_run - lane_road = get_out_of_road_lane(task_reward_matrix,header_rewards) - colisions = get_colisions(task_reward_matrix,header_rewards) - infractions = [lane_road[0]/km_run,lane_road[1]/km_run,colisions[0]/km_run,colisions[1]/km_run,colisions[2]/km_run] - print_infractions(infractions) - - for sw in summary_weathers: - if w in summary_weathers[sw]: - # print summaries[sw] - # print infractions - summaries[sw]['infractions'] += np.array(infractions) - - print '\n\n >>> Task', t, 'summary <<<\n\n' - for sw in summary_weathers: - print sw, summary_weathers[sw] - print 'Num weathers', summaries[sw]['num_weathers'] - print 'Avg completion', summaries[sw]['completion']/summaries[sw]['num_weathers'] - print 'Avg infractions' - print_infractions(summaries[sw]['infractions']/summaries[sw]['num_weathers']) - - - return summaries - - - - diff --git a/PythonClient/benchmarks/__init__.py b/PythonClient/carla/benchmarks/__init__.py similarity index 100% rename from PythonClient/benchmarks/__init__.py rename to PythonClient/carla/benchmarks/__init__.py diff --git a/PythonClient/benchmarks/agent.py b/PythonClient/carla/benchmarks/agent.py similarity index 93% rename from PythonClient/benchmarks/agent.py rename to PythonClient/carla/benchmarks/agent.py index 7918c74d7..9bfe3aca9 100644 --- a/PythonClient/benchmarks/agent.py +++ b/PythonClient/carla/benchmarks/agent.py @@ -25,8 +25,8 @@ class Agent(object, ): import os dir_path = os.path.dirname(__file__) - self._planner = Planner(dir_path+'/../carla/planner/' + city_name + '.txt',\ - dir_path+'/../carla/planner/' + city_name + '.png') + self._planner = Planner(dir_path+'/../planner/' + city_name + '.txt',\ + dir_path+'/../planner/' + city_name + '.png') diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py new file mode 100644 index 000000000..4d52d5d6a --- /dev/null +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -0,0 +1,296 @@ + +import os +import math +import time +import csv +import json + +import datetime + + +try: + from carla import carla_server_pb2 as carla_protocol +except ImportError: + raise RuntimeError( + 'cannot import "carla_server_pb2.py' + +', run the protobuf compiler to generate this file') + + +sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) + + +class Benchmark(object,): + + # Param @name to be used for saving purposes + def __init__(self, city_name, name_to_save, continue_exp=False): + # The name of the city that is going to be used. + self._city_name = city_name + # Sends a base name, the rest will be saved with respect to what the + # episode was about + self._base_name = name_to_save + self._dict_stats = {'exp_id': -1, + 'rep': -1, + 'weather': -1, + 'start_point': -1, + 'end_point': -1, + 'result': -1, + 'initial_distance': -1, + 'final_distance': -1, + 'final_time': -1, + 'time_out': -1 + + + } + + self._dict_rewards = {'exp_id': -1, + 'rep': -1, + 'weather': -1, + 'collision_gen': -1, + 'collision_ped': -1, + 'collision_car': -1, + 'lane_intersect': -1, + 'sidewalk_intersect': -1, + 'pos_x': -1, + 'pos_y': -1 + } + + # If this name was run try to continue + + # Returns a experiment class that is build from a benchmark inherited + # class + + self._experiments = self._build_experiments() + self._suffix_name = self._get_experiments_names(self._experiments) + self._full_name = os.path.join('_benchmarks_results', + self._base_name + '_' + + self._get_details() + '/') + + if self._experiment_exist(): + # If continue_exp was set we continue directly, else we ask for + if continue_exp: + self._line_on_file = self._get_last_position() + + else: + answer = str(raw_input("The experiment was already found in the files" + + ", Do you want to Continue ? \n")) + if answer == 'Yes' or answer == 'y': + self._line_on_file = self._get_last_position() + else: + self._line_on_file = 0 + + else: + self._line_on_file = 0 + + folder = os.path.dirname(self._full_name) + if not os.path.isdir(folder): + os.makedirs(folder) + + # Make a date file: to show when this was modified, + # the number of times the experiments were run + now = datetime.datetime.now() + with open(os.path.join(self._full_name, + now.strftime("%Y%m%d%H%M")), 'wb') as f: + pass + + def run_navigation_episode(self, agent, carla, time_out, target): + + curr_x = -1 + curr_y = -1 + prev_x = -1 + prev_y = -1 + measurements, sensor_data = carla.read_data() + carla.send_control(carla_protocol.Control()) + t0 = measurements.game_timestamp + t1 = t0 + success = False + step = 0 + accum_lane_intersect = 0.0 + accum_sidewalk_intersect = 0.0 + distance = 100000 + measurement_vec = [] + while((t1-t0) < (time_out*1000) and not success): + capture_time = time.time() + measurements, sensor_data = carla.read_data() + + control = agent.run_step(measurements, sensor_data, target) + print('STEER ', control.steer, 'GAS ', + control.throttle, 'Brake ', control.brake) + carla.send_control(control) + + # meassure distance to target + + prev_x = curr_x + prev_y = curr_y + curr_x = measurements.player_measurements.transform.location.x + curr_y = measurements.player_measurements.transform.location.y + + measurement_vec.append(measurements.player_measurements) + + t1 = measurements.game_timestamp + + step += 1 + # The distance is based on graph but quite not exact. + distance = sldist([curr_x, curr_y], + [target.location.x, target.location.y]) + + print('[d=%f] c_x = %f, c_y = %f ---> t_x = %f, t_y = %f' % + (float(distance), curr_x, curr_y, target.location.x, target.location.y)) + + if(distance < 200.0): + success = True + + if(success): + return (1, measurement_vec, float(t1-t0)/1000.0, distance) + else: + return (0, measurement_vec, time_out, distance) + + def benchmark_agent(self, agent, carla): + + if self._line_on_file == 0: + # The fixed name considering all the experiments being run + with open(os.path.join(self._full_name, + self._suffix_name), 'wb') as ofd: + + w = csv.DictWriter(ofd, self._dict_stats.keys()) + w.writeheader() + + with open(os.path.join(self._full_name, + 'rewards_' + self._suffix_name), 'wb') as rfd: + + rw = csv.DictWriter(rfd, self._dict_rewards.keys()) + rw.writeheader() + start_task = 0 + start_pose = 0 + else: + (start_task,start_pose) = self._get_pose_and_task(self._line_on_file) + + print (' START ') + + + + for experiment in self._experiments[start_task:]: + + positions = carla.load_settings( + experiment.conditions).player_start_spots + + for pose in experiment.poses[start_pose:]: + for rep in range(experiment.repetitions): + + start_point = pose[0] + end_point = pose[1] + + carla.start_episode(start_point) + + print('======== !!!! ==========') + print(' Start Position ', start_point, + ' End Position ', end_point) + + path_distance = agent.get_distance( + positions[start_point], positions[end_point]) + + time_out = self._calculate_time_out(path_distance) + # running the agent + (result, reward_vec, final_time, remaining_distance) = \ + self.run_navigation_episode( + agent, carla, time_out, positions[end_point]) + + # compute stats for the experiment + + self.write_summary_results( + experiment, pose, rep, path_distance, + remaining_distance, final_time, time_out, result) + + self.write_reward_results(experiment, rep, reward_vec) + + if(result > 0): + print('+++++ Target achieved in %f seconds! +++++' % + final_time) + else: + print('----- Timeout! -----') + return self.get_all_statistics() + + + + def write_summary_results(self, experiment, pose, rep, + path_distance, remaining_distance, + final_time, time_out, result): + + self._dict_stats['exp_id'] = experiment.id + self._dict_stats['rep'] = rep + self._dict_stats['weather'] = experiment.Conditions.WeatherId + self._dict_stats['start_point'] = pose[0] + self._dict_stats['end_point'] = pose[1] + self._dict_stats['result'] = result + self._dict_stats['initial_distance'] = path_distance + self._dict_stats['final_distance'] = remaining_distance + self._dict_stats['final_time'] = final_time + self._dict_stats['time_out'] = time_out + + with open(os.path.join(self._full_name, self._suffix_name), 'a+') as ofd: + + w = csv.DictWriter(ofd, self._dict_stats.keys()) + + w.writerow(self._dict_stats) + + def write_reward_results(self, experiment, rep, reward_vec): + + with open(os.path.join(self._full_name, + 'rewards_' + self._suffix_name), 'a+') as rfd: + + rw = csv.DictWriter(rfd, self._dict_rewards.keys()) + + for i in range(len(reward_vec)): + self._dict_rewards['exp_id'] = experiment.id + self._dict_rewards['rep'] = rep + self._dict_rewards['weather'] = experiment.Conditions.WeatherId + self._dict_rewards['collision_gen'] = reward_vec[ + i].collision_other + self._dict_rewards['collision_ped'] = reward_vec[ + i].collision_pedestrians + self._dict_rewards['collision_car'] = reward_vec[ + i].collision_vehicles + self._dict_rewards['lane_intersect'] = reward_vec[ + i].intersection_otherlane + self._dict_rewards['sidewalk_intersect'] = reward_vec[ + i].intersection_offroad + self._dict_rewards['pos_x'] = reward_vec[ + i].transform.location.x + self._dict_rewards['pos_y'] = reward_vec[ + i].transform.location.y + + rw.writerow(self._dict_rewards) + + + + # To be redefined on subclasses on how to calculate timeout for an episode + def _calculate_time_out(self, distance): + return 0 + + # To be redefined on subclasses + def _build_experiments(self): + pass + + def _get_experiments_names(self, experiments): + + name_cat = 'w' + + for experiment in experiments: + + name_cat += str(experiment.Conditions.WeatherId) + '.' + + return name_cat + + def _experiment_exist(self): + + folder = os.path.dirname(self._full_name) + return os.path.isdir(folder) + + def _get_last_position(self): + + with open(os.path.join(self._full_name, self._suffix_name)) as f: + + # Function to count the lines. + for i, l in enumerate(f): + pass + return i + diff --git a/PythonClient/benchmarks/corl.py b/PythonClient/carla/benchmarks/corl.py similarity index 55% rename from PythonClient/benchmarks/corl.py rename to PythonClient/carla/benchmarks/corl.py index 59872bff6..b9ac67bff 100644 --- a/PythonClient/benchmarks/corl.py +++ b/PythonClient/carla/benchmarks/corl.py @@ -6,87 +6,156 @@ # CORL experiment set. +from __future__ import print_function + +import os +import datetime from .benchmark import Benchmark from .experiment import Experiment from carla.sensor import Camera from carla.settings import CarlaSettings -import datetime - -# Function to return the timeout ( in miliseconds) that is calculated based on distance to goal. -# This is the same timeout as used on the CoRL paper. +from .metrics import compute_summary class CoRL(Benchmark): + + def get_all_statistics(self): + + summary = compute_summary(os.path.join( + self._full_name, self._suffix_name),[3]) + + return summary + + + + def plot_summary_train(self): + + + self._plot_summary([1.0,3.0,6.0,8.0]) + + def plot_summary_test(self): + + + self._plot_summary([4.0,14.0]) + + + def _plot_summary(self,weathers): + """ + We plot the summary of the testing for the set selected weathers. + The test weathers are [4,14] + + """ + + + metrics_summary = compute_summary(os.path.join( + self._full_name, self._suffix_name),[3]) + + + for metric,values in metrics_summary.items(): + + print('Metric : ',metric) + for weather,tasks in values.items(): + if weather in set(weathers): + print(' Weather: ',weather) + count =0 + for t in tasks: + + print(' Task ',count,' -> ',t) + count += 1 + + + print(' AvG -> ',float(sum(tasks))/float(len(tasks))) + + + + + def _calculate_time_out(self,path_distance): + """ + Function to return the timeout ( in miliseconds) that is calculated based on distance to goal. + This is the same timeout as used on the CoRL paper. + """ + return ((path_distance/100000.0)/10.0)*3600.0 + 10.0 - def _poses_town01(self): - return [ [[36,40],[39,35],[110,114],[7,3],[0,4],\ + + + def _poses_town01(self): + """ + For each matrix is a new task + + """ + def _poses_straight(): + return [[36,40],[39,35],[110,114],[7,3],[0,4],\ [68,50],[61,59],[47,64],[147,90],[33,87],\ [26,19],[80,76],[45,49],[55,44],[29,107],\ [95,104],[34,84],[51,67],[22,17],[91,148],\ - [20,107],[78,70],[95,102],[68,44],[45,69]], + [20,107],[78,70],[95,102],[68,44],[45,69]] - [[138,17],[46,16],[26,9],[42,49],[140,26],\ + def _poses_one_curve(): + return [[138,17],[46,16],[26,9],[42,49],[140,26],\ [85,97],[65,133],[137,51],[76,66],[46,39],\ [40,60],[1,28],[4,129],[121,107],[2,129],\ [78,44],[68,85],[41,102],[95,70],[68,129],\ - [84,69],[47,79],[110,15],[130,17],[0,17]], + [84,69],[47,79],[110,15],[130,17],[0,17]] - [[105,29],[27,130],[102,87],[132,27],[24,44],\ - [96,26],[34,67],[28,1],[140,134],[105,9],\ - [148,129],[65,18],[21,16],[147,97],[42,51],\ - [30,41],[18,107],[69,45],[102,95],[18,145],\ - [111,64],[79,45],[84,69],[73,31],[37,81]], - - [[105,29],[27,130],[102,87],[132,27],[24,44],\ + def _poses_navigation(): + return [[105,29],[27,130],[102,87],[132,27],[24,44],\ [96,26],[34,67],[28,1],[140,134],[105,9],\ [148,129],[65,18],[21,16],[147,97],[42,51],\ [30,41],[18,107],[69,45],[102,95],[18,145],\ [111,64],[79,45],[84,69],[73,31],[37,81]] - ] + + return [ _poses_straight(), + _poses_one_curve(), + _poses_navigation(), + _poses_navigation()] + + def _poses_town02(self): - return [ [[38, 34], [4, 2], [12, 10], [62, 55], [43, 47],\ + + def _poses_straight(): + return [[38, 34], [4, 2], [12, 10], [62, 55], [43, 47],\ [64, 66], [78, 76],[59,57],[61,18],[35,39],\ [12,8],[0,18],[75,68],[54,60],[45,49],\ [46,42],[53,46],[80,29],[65,63],[0,81],\ - [54,63],[51,42],[16,19],[17,26],[77,68]], + [54,63],[51,42],[16,19],[17,26],[77,68]] - [[37, 76], [8, 24], [60, 69], [38, 10], [21, 1],\ + def _poses_one_curve(): + return [[37, 76], [8, 24], [60, 69], [38, 10], [21, 1],\ [58,71],[74,32],[44,0],[71,16],[14,24],\ [34,11],[43,14],[75,16],[80,21],[3,23],\ [75,59],[50,47],[11,19],[77,34],[79,25] ,\ - [40,63],[58,76],[79,55],[16,61],[27,11]], + [40,63],[58,76],[79,55],[16,61],[27,11]] - [[19,66],[79,14],[19,57],[23,1],\ - [53,76],[42,13],[31,71],[33,5],\ - [54,30],[10,61],[66,3],[27,12],\ - [79,19],[2,29],[16,14],[5,57],\ - [70,73],[46,67],[57,50],[61,49],[21,12],\ - [51,81],[77,68],[56,65],[43,54]], - - [[19,66],[79,14],[19,57],[23,1],\ + def _poses_navigation(): + return [[19,66],[79,14],[19,57],[23,1],\ [53,76],[42,13],[31,71],[33,5],\ [54,30],[10,61],[66,3],[27,12],\ [79,19],[2,29],[16,14],[5,57],\ [70,73],[46,67],[57,50],[61,49],[21,12],\ [51,81],[77,68],[56,65],[43,54]] - ] + return [ _poses_straight(), + _poses_one_curve(), + _poses_navigation(), + _poses_navigation() + ] def _build_experiments(self): - """ Creates the whole set of experiment objects, - The experiments created depend on the selected Town. + """ + Creates the whole set of experiment objects, + The experiments created depend on the selected Town. """ # We set the camera @@ -156,4 +225,14 @@ class CoRL(Benchmark): now = datetime.datetime.now() # Function to get automatic information from the experiment for writing purposes - return 'corl_' + self._city_name + '_' + now.strftime("%Y%m%d%H%M") \ No newline at end of file + return 'corl_' + self._city_name + + + def _get_pose_and_task(self,line_on_file): + """ + Returns the pose and task this experiment is, based on the line it was + on the log file. + """ + # We assume that the number of poses is constant + return line_on_file/len(self._experiments),line_on_file%25 + diff --git a/PythonClient/benchmarks/experiment.py b/PythonClient/carla/benchmarks/experiment.py similarity index 100% rename from PythonClient/benchmarks/experiment.py rename to PythonClient/carla/benchmarks/experiment.py diff --git a/PythonClient/carla/benchmarks/metrics.py b/PythonClient/carla/benchmarks/metrics.py new file mode 100644 index 000000000..46e22e316 --- /dev/null +++ b/PythonClient/carla/benchmarks/metrics.py @@ -0,0 +1,201 @@ +# Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de +# Barcelona (UAB), and the INTEL Visual Computing Lab. +# +# This work is licensed under the terms of the MIT license. +# For a copy, see . + + +import numpy as np +import math +import os +import matplotlib.pyplot as plt + + +import argparse +sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) +flatten = lambda l: [item for sublist in l for item in sublist] + + +def get_colisions(selected_matrix, header): + + count_gen = 0 + count_ped = 0 + count_car = 0 + i = 1 + + while i < selected_matrix.shape[0]: + if (selected_matrix[i, header.index('collision_gen')] + - selected_matrix[(i-10), header.index('collision_gen')]) > 40000: + count_gen += 1 + i += 20 + i += 1 + + i = 1 + while i < selected_matrix.shape[0]: + if (selected_matrix[i, header.index('collision_car')] + - selected_matrix[(i-10), header.index('collision_car')]) > 40000: + count_car += 1 + i += 30 + i += 1 + + i = 1 + while i < selected_matrix.shape[0]: + if (selected_matrix[i, header.index('collision_ped')] + - selected_matrix[i-5, header.index('collision_ped')]) > 30000: + count_ped += 1 + i += 100 + i += 1 + + return count_gen, count_car, count_ped + + +def get_distance_traveled(selected_matrix, header): + + prev_x = selected_matrix[0, header.index('pos_x')] + prev_y = selected_matrix[0, header.index('pos_y')] + + i = 1 + acummulated_distance = 0 + while i < selected_matrix.shape[0]: + + x = selected_matrix[i, header.index('pos_x')] + y = selected_matrix[i, header.index('pos_y')] + # Here we defined a maximun distance in a tick, this case 8 meters or 288km/h + if sldist((x, y), (prev_x, prev_y)) < 800: + acummulated_distance += sldist((x, y), (prev_x, prev_y)) + + + prev_x = x + prev_y = y + + i += 1 + + return (float(acummulated_distance)/float(100*1000)) + + + + + +def get_out_of_road_lane(selected_matrix, header): + + count_road = 0 + count_lane = 0 + + i = 0 + + while i < selected_matrix.shape[0]: + # print selected_matrix[i,6] + if (selected_matrix[i, header.index('sidewalk_intersect')] + - selected_matrix[(i-10), header.index('sidewalk_intersect')]) > 0.3: + count_road += 1 + i += 20 + if i >= selected_matrix.shape[0]: + break + + if (selected_matrix[i, header.index('lane_intersect')] + - selected_matrix[(i-10), header.index('lane_intersect')]) > 0.4: + count_lane += 1 + i += 20 + + i += 1 + + return count_lane, count_road + + + +def compute_summary(file, dynamic_episodes): + + # Separate the PATH and the basename + path = os.path.dirname(file) + base_name = os.path.basename(file) + + f = open(file, "rb") + header = f.readline() + header = header.split(',') + header[-1] = header[-1][:-2] + f.close() + + f = open(os.path.join(path, 'rewards_' + base_name), "rb") + header_rewards = f.readline() + header_rewards = header_rewards.split(',') + header_rewards[-1] = header_rewards[-1][:-2] + f.close() + + data_matrix = np.loadtxt(open(file, "rb"), delimiter=",", skiprows=1) + + tasks = np.unique(data_matrix[:, header.index('exp_id')]) + + all_weathers = np.unique(data_matrix[:, header.index('weather')]) + + reward_matrix = np.loadtxt(open(os.path.join( + path, 'rewards_' + base_name), "rb"), delimiter=",", skiprows=1) + + metrics_dictionary = {'average_completion': {w: [0.0]*len(tasks) for w in all_weathers}, + 'intersection_offroad': {w: [0.0]*len(tasks) for w in all_weathers}, + 'intersection_otherlane': {w: [0.0]*len(tasks) for w in all_weathers}, + 'collision_pedestrians': {w: [0.0]*len(tasks) for w in all_weathers}, + 'collision_vehicles': {w: [0.0]*len(tasks) for w in all_weathers}, + 'collision_other': {w: [0.0]*len(tasks) for w in all_weathers}, + 'average_fully_completed': {w: [0.0]*len(tasks) for w in all_weathers}, + 'average_speed': {w: [0.0]*len(tasks) for w in all_weathers}, + 'driven_kilometers': {w: [0.0]*len(tasks) for w in all_weathers} + } + + for t in tasks: + task_data_matrix = data_matrix[ + data_matrix[:, header.index('exp_id')] == t] + weathers = np.unique(task_data_matrix[:, header.index('weather')]) + + + + for w in weathers: + t = int(t) + + task_data_matrix = data_matrix[np.logical_and(data_matrix[:, header.index( + 'exp_id')] == t, data_matrix[:, header.index('weather')] == w)] + + + task_reward_matrix = reward_matrix[np.logical_and(reward_matrix[:, header_rewards.index( + 'exp_id')] == float(t), reward_matrix[:, header_rewards.index('weather')] == float(w))] + + km_run = get_distance_traveled( + task_reward_matrix, header_rewards) + + metrics_dictionary['average_fully_completed'][w][t] = sum( + task_data_matrix[:, header.index('result')])/task_data_matrix.shape[0] + + metrics_dictionary['average_completion'][w][t] = sum( + (task_data_matrix[:, header.index('initial_distance')] + - task_data_matrix[:, header.index('final_distance')]) + / task_data_matrix[:, header.index('initial_distance')]) \ + / len(task_data_matrix[:, header.index('final_distance')]) + + + metrics_dictionary['driven_kilometers'][w][t]= km_run + metrics_dictionary['average_speed'][w][t]= km_run/ \ + ((sum(task_data_matrix[:, header.index('final_time')]))/3600.0) + + + + if list(tasks).index(t) in set(dynamic_episodes): + + lane_road = get_out_of_road_lane( + task_reward_matrix, header_rewards) + colisions = get_colisions(task_reward_matrix, header_rewards) + infractions = [lane_road[0]/km_run, lane_road[1]/km_run, + colisions[0]/km_run, colisions[1]/km_run, colisions[2]/km_run] + + + metrics_dictionary['intersection_offroad'][ + w][t] = lane_road[0]/km_run + metrics_dictionary['intersection_otherlane'][ + w][t] = lane_road[1]/km_run + metrics_dictionary['collision_pedestrians'][ + w][t] = colisions[2]/km_run + metrics_dictionary['collision_vehicles'][ + w][t] = colisions[1]/km_run + metrics_dictionary['collision_other'][ + w][t] = colisions[0]/km_run + + + return metrics_dictionary diff --git a/PythonClient/run_benchmark.py b/PythonClient/run_benchmark.py index b6cc05a74..ce7824d09 100644 --- a/PythonClient/run_benchmark.py +++ b/PythonClient/run_benchmark.py @@ -1,7 +1,9 @@ +import time +import sys import argparse import logging -import sys + from benchmarks.corl import CoRL @@ -9,7 +11,7 @@ from benchmarks.agent import Agent from carla.tcp import TCPConnectionError from carla.client import make_carla_client -import time + try: from carla import carla_server_pb2 as carla_protocol @@ -31,54 +33,57 @@ class Manual(Agent): if(__name__ == '__main__'): - argparser = argparse.ArgumentParser(description=__doc__) - argparser.add_argument( - '-v', '--verbose', - action='store_true', - dest='debug', - help='print debug information') - argparser.add_argument( - '--host', - metavar='H', - default='localhost', - help='IP of the host server (default: localhost)') - argparser.add_argument( - '-p', '--port', - metavar='P', - default=2000, - type=int, - help='TCP port to listen to (default: 2000)') + argparser = argparse.ArgumentParser(description=__doc__) + argparser.add_argument( + '-v', '--verbose', + action='store_true', + dest='debug', + help='print debug information') + argparser.add_argument( + '--host', + metavar='H', + default='localhost', + help='IP of the host server (default: localhost)') + argparser.add_argument( + '-p', '--port', + metavar='P', + default=2000, + type=int, + help='TCP port to listen to (default: 2000)') + argparser.add_argument( + '-c', '--city-name', + metavar='C', + default='Town01', + help='plot the map of the current city' + +'(needs to match active map in server, options: Town01 or Town02)') - args = argparser.parse_args() + args = argparser.parse_args() - log_level = logging.DEBUG if args.debug else logging.INFO - logging.basicConfig(format='%(levelname)s: %(message)s', level=log_level) + log_level = logging.DEBUG if args.debug else logging.INFO + logging.basicConfig(format='%(levelname)s: %(message)s', level=log_level) - logging.info('listening to server %s:%s', args.host, args.port) - - while True: - try: - with make_carla_client(args.host, args.port) as client: - corl= CoRL('Town02','test') - agent = Manual('Town02') - results = corl.benchmark_agent(agent,client) - corl.plot_summary_test() - corl.plot_summary_train() - - break - - except TCPConnectionError as error: - logging.error(error) - time.sleep(1) - except Exception as exception: - logging.exception(exception) - sys.exit(1) + logging.info('listening to server %s:%s', args.host, args.port) - + while True: + try: + with make_carla_client(args.host, args.port) as client: + corl= CoRL(city_name= args.city_name,name_to_save='test') + agent = Manual(args.map_name) + results = corl.benchmark_agent(agent,client) + corl.plot_summary_test() + corl.plot_summary_train() + + break + + except TCPConnectionError as error: + logging.error(error) + time.sleep(1) + except Exception as exception: + logging.exception(exception) + sys.exit(1) -# DETECT AN ERROR AND WRITE THE COMPLETE SUMMARY ALREADY \ No newline at end of file diff --git a/PythonClient/setup.py b/PythonClient/setup.py new file mode 100644 index 000000000..d1317032d --- /dev/null +++ b/PythonClient/setup.py @@ -0,0 +1,12 @@ +from setuptools import setup + +setup( + name='PythonClient', + version='0.7', + packages=['carla','carla.planner','carla.benchmarks','carla.planner'], + license='', + long_description=open('README.txt').read(), + include_package_data=True, + package_data={'carla.planner' : ['Town01.txt']} +) + From f36bd466c27697ef90d264667eb4c9bd0ce6889d Mon Sep 17 00:00:00 2001 From: felipecode Date: Mon, 11 Dec 2017 17:07:29 +0100 Subject: [PATCH 008/121] Planner complete refactoring, pt 1 --- PythonClient/carla/benchmarks/agent.py | 3 +- PythonClient/carla/benchmarks/benchmark.py | 8 +- PythonClient/carla/benchmarks/experiment.py | 49 +- PythonClient/carla/planner/astar.py | 14 +- PythonClient/carla/planner/city_track.py | 121 ++++ PythonClient/carla/planner/graph.py | 15 +- PythonClient/carla/planner/grid.py | 133 +++++ PythonClient/carla/planner/map.py | 230 +++++++- PythonClient/carla/planner/planner.py | 592 +++++--------------- PythonClient/run_benchmark.py | 8 +- 10 files changed, 665 insertions(+), 508 deletions(-) create mode 100644 PythonClient/carla/planner/city_track.py create mode 100644 PythonClient/carla/planner/grid.py diff --git a/PythonClient/carla/benchmarks/agent.py b/PythonClient/carla/benchmarks/agent.py index 9bfe3aca9..3a03ea1cb 100644 --- a/PythonClient/carla/benchmarks/agent.py +++ b/PythonClient/carla/benchmarks/agent.py @@ -25,8 +25,7 @@ class Agent(object, ): import os dir_path = os.path.dirname(__file__) - self._planner = Planner(dir_path+'/../planner/' + city_name + '.txt',\ - dir_path+'/../planner/' + city_name + '.png') + self._planner = Planner(city_name) diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index 4d52d5d6a..fe9214189 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -196,11 +196,11 @@ class Benchmark(object,): # compute stats for the experiment - self.write_summary_results( + self._write_summary_results( experiment, pose, rep, path_distance, remaining_distance, final_time, time_out, result) - self.write_reward_results(experiment, rep, reward_vec) + self._write_reward_results(experiment, rep, reward_vec) if(result > 0): print('+++++ Target achieved in %f seconds! +++++' % @@ -211,7 +211,7 @@ class Benchmark(object,): - def write_summary_results(self, experiment, pose, rep, + def _write_summary_results(self, experiment, pose, rep, path_distance, remaining_distance, final_time, time_out, result): @@ -232,7 +232,7 @@ class Benchmark(object,): w.writerow(self._dict_stats) - def write_reward_results(self, experiment, rep, reward_vec): + def _write_reward_results(self, experiment, rep, reward_vec): with open(os.path.join(self._full_name, 'rewards_' + self._suffix_name), 'a+') as rfd: diff --git a/PythonClient/carla/benchmarks/experiment.py b/PythonClient/carla/benchmarks/experiment.py index 7e31821ad..7c13c50b5 100644 --- a/PythonClient/carla/benchmarks/experiment.py +++ b/PythonClient/carla/benchmarks/experiment.py @@ -2,36 +2,35 @@ from carla.settings import CarlaSettings from carla.sensor import Camera + class Experiment(object): - def __init__(self,**kwargs): - self.Id = '' - self.Conditions = CarlaSettings() - self.Poses = [[]] - self.Repetitions = 1 + def __init__(self, **kwargs): + self.Id = '' + self.Conditions = CarlaSettings() + self.Poses = [[]] + self.Repetitions = 1 - #self. ,vehicles,pedestrians,weather,cameras + # self. ,vehicles,pedestrians,weather,cameras + def set(self, **kwargs): + for key, value in kwargs.items(): + if not hasattr(self, key): + raise ValueError('Experiment: no key named %r' % key) + setattr(self, key, value) - def set(self, **kwargs): - for key, value in kwargs.items(): - if not hasattr(self, key): - raise ValueError('Experiment: no key named %r' % key) - setattr(self, key, value) + @property + def id(self): + return self.Id - @property - def id(self): - return self.Id + @property + def conditions(self): + return self.Conditions - @property - def conditions(self): - return self.Conditions - - @property - def poses(self): - return self.Poses - - @property - def repetitions(self): - return self.Repetitions + @property + def poses(self): + return self.Poses + @property + def repetitions(self): + return self.Repetitions diff --git a/PythonClient/carla/planner/astar.py b/PythonClient/carla/planner/astar.py index e239247ad..26d1c371e 100644 --- a/PythonClient/carla/planner/astar.py +++ b/PythonClient/carla/planner/astar.py @@ -1,7 +1,9 @@ import heapq +from carla.planner.map import CarlaMap class Cell(object): + def __init__(self, x, y, reachable): """Initialize new cell. @@ -23,7 +25,10 @@ class Cell(object): class AStar(object): + def __init__(self): + + # open list self.opened = [] heapq.heapify(self.opened) @@ -34,8 +39,10 @@ class AStar(object): self.grid_height = None self.grid_width = None - def init_grid(self, width, height, walls, start, end): - """Prepare grid cells, walls. + def init_grid(self, width, height, walls,start, end): + + """ + Prepare grid cells, walls. @param width grid's width. @param height grid's height. @@ -143,3 +150,6 @@ class AStar(object): self.update_cell(adj_cell, cell) # add adj cell to open list heapq.heappush(self.opened, (adj_cell.f, adj_cell)) + + + diff --git a/PythonClient/carla/planner/city_track.py b/PythonClient/carla/planner/city_track.py new file mode 100644 index 000000000..db37285be --- /dev/null +++ b/PythonClient/carla/planner/city_track.py @@ -0,0 +1,121 @@ + +class CityTrack(object) + + + def __init__(self,city_name) + + + self._map = CarlaMap(city_name) + + self._astar = AStar() + + # Refers to the start position of the previous route computation + self._previous_node = [] + + + + + + + def project_node(self,node,node_orientation): + """ + Projecting the graph node into the city road + """ + + # To change the orientation with respect to the map standards + node_orientation = np.array([node_orientation[0], + node_orientation[1],node_orientation[2]]) + node_orientation = source_ori.dot(self.worldrotation) + + node = tuple([ int(x) for x in node ]) + + # Set to zero if it is less than zero. + + + node =(max(0,node[0]),max(0,node[1])) + node =(min(self._map.get_graph_resolution()[0]-1,node[0]), + min(self._map.get_graph_resolution()[1]-1,node[1])) + # is it x or y ? Check to avoid special corner cases + + + if math.fabs(node_orientation[0]) > math.fabs(node_orientation[1]): + node_orientation = (source_ori[0],0.0,0.0) + else: + node_orientation = (0.0,source_ori[1],0.0) + + node = self.map.grid_search(node[0],node[1]) + + + return node + + def is_at_goal(self,source,target): + return source == target + + def is_at_new_node(self,current_node): + return current_node != self._previous_node + + + def is_away_from_intersection(self,current_node): + return self._closest_intersection_position(current_node) > 1 + + def is_far_away_from_route_intersection(self,current_node): + # CHECK FOR THE EMPTY CASE + return self._closest_intersection_route_position(current_node, + self._previous_route) > 4 + + + + def compute_route(self,node_source,source_ori,node_target,target_ori): + + + self._previous_node = node_source + + + a_star =AStar() + a_star.init_grid(node_source,self._map.get_graph_resolution()[0], + self._map.get_graph_resolution()[1], + self._map.get_walls_directed(node_target,target_ori,node_source), + node_target) + + + route = a_star.solve() + + + + #print route # JuSt a Corner Case + # REALLY, I want to remove this + if route == None: + a_star =AStar() + a_star.init_grid(node_source,self._map.get_graph_resolution()[0], + self._map.get_graph_resolution()[1],self._map.get_walls(), node_target) + + route = a_star.solve() + + + + return route + + + + + def _closest_intersection_position(self, current_node): + + distance_vector = [] + for node_iterator in self._map._graph.intersection_nodes(): + + distance_vector.append(sldist(node_iterator, current_node)) + + return sorted(distance_vector)[0] + + def _closest_intersection_route_position(self, current_node): + + distance_vector = [] + for node_iterator in self._map._graph.intersection_nodes(): + + distance_vector.append(sldist(node_iterator, current_node)) + + return sorted(distance_vector)[0] + + + + diff --git a/PythonClient/carla/planner/graph.py b/PythonClient/carla/planner/graph.py index a3a4d7d4b..3b7579358 100644 --- a/PythonClient/carla/planner/graph.py +++ b/PythonClient/carla/planner/graph.py @@ -28,8 +28,6 @@ class Graph(object): """ - - def __init__(self,graph_file=None): @@ -37,12 +35,18 @@ class Graph(object): self.angles ={} self.edges = {} self.distances = {} + self.node_density =50 if graph_file != None: with open(graph_file, 'r') as file: - for i in range(5): + for i in range(4): next(file) + + # the graph resolution. + linegraphres = file.readline() + self._resolution = string_to_node(linegraphres) for line in file: + from_node, to_node, d = line.split() from_node = string_to_node(from_node) to_node = string_to_node(to_node) @@ -63,7 +67,12 @@ class Graph(object): def add_node(self, value): self.nodes.add(value) + def project_pixel(self,pixel) + node = [] + node.append((pixel[0])/self.node_density - 2) + node.append((pixel[1])/self.node_density - 2) + return tuple(node) def make_orientations(self,node,heading): diff --git a/PythonClient/carla/planner/grid.py b/PythonClient/carla/planner/grid.py new file mode 100644 index 000000000..aecbe2d16 --- /dev/null +++ b/PythonClient/carla/planner/grid.py @@ -0,0 +1,133 @@ + + +class Grid(object): + + def __init__(self,graph): + + self.graph = graph + self.structure = self._make_structure() + self.walls = self._make_walls() + + #np.set_printoptions(linewidth=206, threshold=np.nan) + + + + + + + def _draw_line(self, grid, xi, yi, xf, yf): + + if xf < xi: + aux = xi + xi = xf + xf = aux + + if yf < yi: + aux = yi + yi = yf + yf = aux + + for i in range(xi, xf+1): + + for j in range(yi, yf+1): + + grid[i, j] = 0.0 + + return grid + + def _make_structure(self): + structure =np.ones((self.graph.resolution[0], self.graph.resolution[1])) + + for key, connections in self.graph.edges.iteritems(): + + # draw a line + for con in connections: + + # print key[0],key[1],con[0],con[1] + structure = self._draw_line(structure, key[0], key[1], con[0], con[1]) + # print grid + return structure + + def _make_walls(self): + walls = set() + + for i in range(self.grid.shape[0]): + + for j in range(self.grid.shape[1]): + if self.grid[i, j] == 1.0: + walls.add((i, j)) + + return walls + + def search_on_grid(self, x, y): + visit = [[0, 1], [0, -1], [1, 0], [1, 1], + [1, -1], [-1, 0], [-1, 1], [-1, -1]] + c_x, c_y = x, y + scale = 1 + while(self.grid[c_x, c_y] != 0): + for offset in visit: + c_x, c_y = x + offset[0]*scale, y + offset[1]*scale + + if c_x >= 0 and c_x < self.resolution[0] and c_y >= 0 and c_y < self.resolution[1]: + if self.grid[c_x, c_y] == 0: + break + else: + c_x, c_y = x, y + scale += 1 + + return (c_x, c_y) + + + + def get_adjacent_free_nodes(self, pos): + """ Acht nodes in total """ + visit = [[0, 1], [0, -1], [1, 0], [1, 1], + [1, -1], [-1, 0], [-1, 1], [-1, -1]] + + adjacent = set() + for offset in visit: + node = (pos[0] + offset[0], pos[1]+offset[1]) + + if node[0] >= 0 and node[0] < self.resolution[0] and node[1] >= 0 and node[1] < self.resolution[1]: + + if self.grid[node[0], node[1]] == 0.0: + adjacent.add(node) + + return adjacent + + def set_grid_direction(self, pos, pos_ori, target): + + free_nodes = self.get_adjacent_free_nodes(pos) + + added_walls = set() + heading_start = np.array([pos_ori[0], pos_ori[1]]) + for adj in free_nodes: + + start_to_goal = np.array([adj[0] - pos[0], adj[1] - pos[1]]) + angle = angle_between(heading_start, start_to_goal) + if (angle > 1.6 and adj != target): + self.grid[adj[0], adj[1]] = 1.0 + + added_walls.add((adj[0], adj[1])) + self.walls.add((adj[0], adj[1])) + + return added_walls + + def set_grid_direction_target(self, pos, pos_ori, source): + + free_nodes = self.get_adjacent_free_nodes(pos) + + added_walls = set() + heading_start = np.array([pos_ori[0], pos_ori[1]]) + for adj in free_nodes: + + start_to_goal = np.array([adj[0] - pos[0], adj[1] - pos[1]]) + angle = angle_between(heading_start, start_to_goal) + + if (angle < 1.0 and adj != source): + self.grid[adj[0], adj[1]] = 1.0 + + added_walls.add((adj[0], adj[1])) + self.walls.add((adj[0], adj[1])) + + return added_walls \ No newline at end of file diff --git a/PythonClient/carla/planner/map.py b/PythonClient/carla/planner/map.py index 142fc2a14..c8ba8247f 100644 --- a/PythonClient/carla/planner/map.py +++ b/PythonClient/carla/planner/map.py @@ -9,6 +9,7 @@ import math import os + try: import numpy as np except ImportError: @@ -19,15 +20,44 @@ try: except ImportError: raise RuntimeError('cannot import PIL, make sure pillow package is installed') - -def string_to_node(string): - vec = string.split(',') - return (int(vec[0]), int(vec[1])) +from graph import string_to_node,string_to_floats -def string_to_floats(string): - vec = string.split(',') - return (float(vec[0]), float(vec[1]), float(vec[2])) + + + +""" + + with open(city_file + '.txt', 'r') as file: + + linewordloffset = file.readline() + # The offset of the world from the zero coordinates ( The + # coordinate we consider zero) + self.worldoffset = string_to_floats(linewordloffset) + + # WARNING: for now just considering the y angle + lineworldangles = file.readline() + self.angles = string_to_floats(lineworldangles) + #self.worldrotation = np.array([[math.cos(math.radians(self.angles[0])),0,math.sin(math.radians(self.angles[0])) ],[0,1,0],[-math.sin(math.radians(self.angles[0])),0,math.cos(math.radians(self.angles[0]))]]) + + self.worldrotation = np.array([[math.cos(math.radians(self.angles[2])), -math.sin(math.radians(self.angles[2])), 0.0], [ + math.sin(math.radians(self.angles[2])), math.cos(math.radians(self.angles[2])), 0.0], [0.0, 0.0, 1.0]]) + + # Ignore for now + lineworscale = file.readline() + + linemapoffset = file.readline() + + # The offset of the map zero coordinate + self.mapoffset = string_to_floats(linemapoffset) + + # the graph resolution. + linegraphres = file.readline() + self.resolution = string_to_node(linegraphres) + +""" + +# The map contains a graph class CarlaMap(object): @@ -37,6 +67,15 @@ class CarlaMap(object): city_map_file = os.path.join(dir_path, city + '.png') city_map_file_lanes = os.path.join(dir_path, city + 'Lanes.png') + city_map_file_center = os.path.join(dir_path, city + 'Center.png') + + + # The built graph. This is the exact same graph that unreal builds. This + # is a generic structure used for many cases + + self._graph = Graph(city_file) + + self._grid = Grid() with open(city_file, 'r') as file: @@ -48,6 +87,7 @@ class CarlaMap(object): lineworldangles = file.readline() self.angles = string_to_floats(lineworldangles) + # If tere is an rotation between the world and map coordinates. self.worldrotation = np.array([ [math.cos(math.radians(self.angles[2])), -math.sin(math.radians(self.angles[2])), 0.0], [math.sin(math.radians(self.angles[2])), math.cos(math.radians(self.angles[2])), 0.0], @@ -55,17 +95,14 @@ class CarlaMap(object): # Ignore for now, these are offsets for map coordinates and scale # (not used). - _ = file.readline() + map_scale = file.readline() linemapoffset = file.readline() # The offset of the map zero coordinate. self.mapoffset = string_to_floats(linemapoffset) - # the graph resolution. - linegraphres = file.readline() - self.resolution = string_to_node(linegraphres) - # The number of game units per pixel. + # The number of game units per pixel. For now this is fixed. self.pixel_density = 16.43 # Load the lanes image self.map_image_lanes = Image.open(city_map_file_lanes) @@ -76,6 +113,15 @@ class CarlaMap(object): self.map_image.load() self.map_image = np.asarray(self.map_image, dtype="int32") + # Load the lanes image + self.map_image_center = Image.open(city_map_file_center) + self.map_image_center.load() + self.map_image_center = np.asarray(self.map_image_center, dtype="int32") + + + def get_graph_resolution(self): + + return self._graph._resolution def get_map(self, height=None): if height is not None: @@ -113,6 +159,14 @@ class CarlaMap(object): return pixel + def get_position_on_graph(self, world): + """Get the position on the map for a certain world position.""" + pixel = self.get_position_on_map(world) + return self._graph.project_pixel(pixel) + + + + def get_position_on_world(self, pixel): """Get world position of a certain map position.""" relative_location = [] @@ -144,3 +198,155 @@ class CarlaMap(object): ori = ((float(ori) / 255.0)) * 2 * math.pi return (-math.cos(ori), -math.sin(ori)) + + + + + + + + def + + + + + + + + + def make_map_world(self, world): + + relative_location = [] + pixel = [] + + rotation = np.array([world[0], world[1], world[2]]) + rotation = rotation.dot(self.worldrotation) + + relative_location.append( + rotation[0] + self.worldoffset[0] - self.mapoffset[0]) + relative_location.append( + rotation[1] + self.worldoffset[1] - self.mapoffset[1]) + relative_location.append( + rotation[2] + self.worldoffset[2] - self.mapoffset[2]) + + pixel.append(math.floor(relative_location[ + 0]/float(self.pixel_density))) + pixel.append(math.floor(relative_location[ + 1]/float(self.pixel_density))) + + return pixel + + def make_map_node(self, node): + pixel = [] + pixel.append((node[0] + 2) * self.node_density) + pixel.append((node[1] + 2) * self.node_density) + + return pixel + + def make_world_map(self, pixel): + + relative_location = [] + world_vertex = [] + relative_location.append(pixel[0]*self.pixel_density) + relative_location.append(pixel[1]*self.pixel_density) + + world_vertex.append( + relative_location[0]+self.mapoffset[0] - self.worldoffset[0]) + world_vertex.append( + relative_location[1]+self.mapoffset[1] - self.worldoffset[1]) + world_vertex.append(22) + return world_vertex + + def make_world_node(self, node): + + return self.make_world_map(self.make_map_node(node)) + + + + def get_target_ori(self, target_pos): + + relative_location = [] + pixel = [] + rotation = np.array([target_pos[0], target_pos[1], target_pos[2]]) + rotation = rotation.dot(self.worldrotation) + + # print 'rot ', rotation + + relative_location.append( + rotation[0] + self.worldoffset[0] - self.mapoffset[0]) + relative_location.append( + rotation[1] + self.worldoffset[1] - self.mapoffset[1]) + relative_location.append( + rotation[2] + self.worldoffset[2] - self.mapoffset[2]) + # print 'trans ', relative_location + + pixel.append(math.floor(relative_location[ + 0]/float(self.pixel_density))) + pixel.append(math.floor(relative_location[ + 1]/float(self.pixel_density))) + # print self.map_image.shape + ori = self.map_image[int(pixel[1]), int(pixel[0]), 2] + ori = ((float(ori)/255.0)) * 2*math.pi + + # print self.map_image[int(pixel[1]),int(pixel[0]),:] + # print ori + #print (math.cos(ori),math.sin(ori)) + # print exit() + + return (-math.cos(ori), -math.sin(ori)) + +""" + def make_node(self, worldvertex): + + pixel = self.make_map_world(worldvertex) + + node = [] + + node.append((pixel[0])/self.node_density - 2) + node.append((pixel[1])/self.node_density - 2) + + return tuple(node) +""" + def get_walls_directed(self,node_target,target_ori,node_source): + + # GOes to Grid + #added_walls = self.set_grid_direction(node_source,source_ori,node_target) + + + #print added_walls + # Goes to grid + #added_walls=added_walls.union(self.set_grid_direction_target(node_target,target_ori,node_source)) + #print added_walls + + def get_walls(self): + + return walss + + + + + def get_distance_closest_node(self, pos): + import collections + distance = [] + for node_iter in self.graph.intersection_nodes(): + + distance.append(sldist(node_iter, pos)) + + return sorted(distance)[0] + + def get_distance_closest_node_route(self, pos, route): + import collections + distance = [] + # if self.graph.intersection_nodes() == set(): + + for node_iter in route: + + if node_iter in self.graph.intersection_nodes(): + + distance.append(sldist(node_iter, pos)) + + if not distance: + + return sldist(route[-1], pos) + return sorted(distance)[0] + diff --git a/PythonClient/carla/planner/planner.py b/PythonClient/carla/planner/planner.py index cf898ee20..9e835e187 100644 --- a/PythonClient/carla/planner/planner.py +++ b/PythonClient/carla/planner/planner.py @@ -1,541 +1,221 @@ -from graph import * -from PIL import Image import math -from astar import * import time import collections +import os + + +from PIL import Image + +from graph import Graph +from astar import Astar compare = lambda x, y: collections.Counter(x) == collections.Counter(y) -def angle_between(v1,v2): - return np.arccos(np.dot(v1,v2) / np.linalg.norm(v1) / np.linalg.norm(v2)) + +def angle_between(v1, v2): + return np.arccos(np.dot(v1, v2) / np.linalg.norm(v1) / np.linalg.norm(v2)) sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) -def color_to_angle(color): - return ((float(color)/255.0) ) *2*math.pi +def color_to_angle(color): + return ((float(color)/255.0)) * 2*math.pi class Planner(object): - # The built graph. This is the exact same graph that unreal builds. This is a generic structure used for many cases - def __init__(self,city_file,map_file): - # read the conversion parameters from the city file - with open(city_file, 'r') as file: - linewordloffset = file.readline() - # The offset of the world from the zero coordinates ( The coordinate we consider zero) - self.worldoffset = string_to_floats(linewordloffset) + def __init__(self, city_name): - #WARNING: for now just considering the y angle - lineworldangles = file.readline() - self.angles = string_to_floats(lineworldangles) - #self.worldrotation = np.array([[math.cos(math.radians(self.angles[0])),0,math.sin(math.radians(self.angles[0])) ],[0,1,0],[-math.sin(math.radians(self.angles[0])),0,math.cos(math.radians(self.angles[0]))]]) - self.worldrotation = np.array([[math.cos(math.radians(self.angles[2])),-math.sin(math.radians(self.angles[2])) ,0.0],[math.sin(math.radians(self.angles[2])),math.cos(math.radians(self.angles[2])),0.0],[0.0,0.0,1.0]]) + self._city_track = CityTrack(city_name) - # Ignore for now - lineworscale = file.readline() + #self.previous_source = (0, 0) + ##self.distance = 0 + #self.complete_distance = 0 - linemapoffset = file.readline() + # print self.map_image + self._commands = [] - # The offset of the map zero coordinate - self.mapoffset = string_to_floats(linemapoffset) + #self.route = [] - # the graph resolution. - linegraphres = file.readline() - self.resolution = string_to_node(linegraphres) - - - #This is the bmp map that will be associated with the graph. - #This map contains the navigable paths drawed - self.graph = Graph(city_file) - - self.map_image = Image.open(map_file) - self.map_image.load() - self.map_image = np.asarray(self.map_image, dtype="int32" ) + # The number of game units per pixel + #self.pixel_density = 16.43 + # A pixel positions with respect to graph node position is: Pixel = + # Node*50 +2 + #self.node_density = 50.0 + # This function converts the 2d map into a 3D one in a vector. - import os - dir_path = os.path.dirname(__file__) - self.central_path_map_image = Image.open(map_file[:-4] +'Central.png') - self.central_path_map_image.load() - self.central_path_map_image = np.asarray(self.central_path_map_image, dtype="int32" ) - self.central_path_map_image =self.central_path_map_image[:,:,0] # Just take the red dimension - self.grid = self.make_grid() - self.walls = self.make_walls() - - self.previous_source = (0,0) - self.distance = 0 - self.complete_distance = 0 - #print self.map_image - self.commands = [] - self.route =[] - # The number of game units per pixel - self.pixel_density = 16.43 - #A pixel positions with respect to graph node position is: Pixel = Node*50 +2 - self.node_density = 50.0 - # This function converts the 2d map into a 3D one in a vector. + def get_next_command(self, source, source_ori, target, target_ori): + #self.astar. + track_source = self._city_track.project_node(source,source_ori) + track_target = self._city_track.project_node(target,target_ori) - def _draw_line(self,grid,xi,yi,xf,yf): - if xf< xi: - aux = xi - xi = xf - xf = aux - if yf< yi: - aux = yi - yi = yf - yf = aux + # reach the goal + if self._city_track.is_at_goal(track_source,track_target) + return 0,0 + #if node_source == node_target: + # return 0, 0 - for i in range(xi,xf+1): - for j in range(yi,yf+1): + if self._city_track.is_at_new_node(track_source) + and self._city_track.is_away_from_intersection(track_source): - grid[i,j] = 0.0 - return grid - def make_grid(self): # The resolution could be easily increased + # print route + route= self._city_track.compute_route(track_source,source_ori, + track_target,target_ori) + #(node_source,source_ori,node_target,target_ori) - grid = np.ones((self.resolution[0],self.resolution[1])) - for key,connections in self.graph.edges.iteritems(): + # We recompute the distance based on route + #self.distance = self.get_distance_closest_node_route( + # node_source, route) - # draw a line - for con in connections: + #self.complete_distance = self.get_full_distance_route( + # node_source, route)*50.0*16.42 # This is bad - #print key[0],key[1],con[0],con[1] - grid = self._draw_line(grid,key[0],key[1],con[0],con[1]) - #print grid + self._commands = self._route_to_commands(route) - np.set_printoptions( linewidth =206,threshold=np.nan) - return grid + if self._city_track.is_far_away_from_route_intersection(track_source): + return 2.0 + else: + if self.commands: + return self.commands[0] + else: + return 2.0 + else: - def make_walls(self): - walls = set() + if self._city_track.is_far_away_from_route_intersection(track_source): + return 2.0 - for i in range(self.grid.shape[0]): - - for j in range(self.grid.shape[1]): - if self.grid[i,j] == 1.0: - walls.add((i,j)) + # If there is computed commands + if self.commands: + return self.commands[0] + else: + return 2.0 - return walls - def init(self,source,target): + def get_shortest_path_distance(self, source, source_ori, target, target_ori): + import collections + distance = 0 + # if self.graph.intersection_nodes() == set(): + current_pos = pos + for node_iter in route: - self.a_star.init_grid(self.resolution[0],self.resolution[1], self.walls,source,target) + distance += sldist(node_iter, current_pos) + current_pos = node_iter + return distance# *50.0*16.42 , maybe this goes to another layer - def solve(self): - return self.a_star.solve() + def is_there_posible_route(self,source,source_ori,target,target_ori): + track_source = self._city_track.project_node(source,source_ori) + track_target = self._city_track.project_node(target,target_ori) - # Convert world position into "Graph World" node positions - def make_node(self,worldvertex): + return len(self._city_track.compute_route( + node_source,source_ori,node_target,target_ori))>0 - pixel = self.make_map_world(worldvertex) - node = [] + # from the shortest path graph, transform it into a list of commands + # @param the sub graph containing the shortest path + # @param Orientation of the car + # returns list of commands ( 3 is left, 4 is right, 5 is straight) + def _route_to_commands(self, route): + commands_list = [] - node.append((pixel[0])/self.node_density - 2) - node.append((pixel[1])/self.node_density - 2 ) + for i in range(0, len(route)): + if route[i] not in self.astar.intersection_nodes(): + continue - return tuple(node) + current = route[i] + past = route[i-1] + future = route[i+1] - def make_map_world(self,world): + past_to_current = np.array( + [current[0]-past[0], current[1]-past[1]]) + current_to_future = np.array( + [future[0]-current[0], future[1]-current[1]]) + angle = signal(current_to_future, past_to_current) - relative_location = [] - pixel=[] + command = 0.0 + if angle < -0.1: + command = 4.0 + elif angle > 0.1: + command = 3.0 + else: + command = 5.0 - rotation = np.array([world[0],world[1],world[2]]) - rotation = rotation.dot(self.worldrotation) + commands_list.append(command) + return commands_list +""" +# print node_source +# print node_target +added_walls = self.set_grid_direction( + node_source, source_ori, node_target) +# print added_walls +added_walls = added_walls.union( + self.set_grid_direction_target(node_target, target_ori, node_source)) +# print added_walls +self.previous_source = node_source - relative_location.append(rotation[0] + self.worldoffset[0] - self.mapoffset[0]) - relative_location.append(rotation[1] + self.worldoffset[1] - self.mapoffset[1]) - relative_location.append(rotation[2] + self.worldoffset[2] - self.mapoffset[2]) +# print self.grid - - pixel.append(math.floor(relative_location[0]/float(self.pixel_density))) - pixel.append(math.floor(relative_location[1]/float(self.pixel_density))) +self.a_star = AStar() +self.init(node_source, node_target) +route = self.solve() +# print route # JuSt a Corner Case +if route == None: + for i in added_walls: + self.walls.remove(i) - return pixel - def make_map_node(self,node): - pixel = [] - pixel.append((node[0] +2) *self.node_density) - pixel.append((node[1] +2) *self.node_density) + self.grid[i[0], i[1]] = 0.0 + added_walls = self.set_grid_direction( + node_source, source_ori, node_target) + self.a_star = AStar() + self.init(node_source, node_target) + route = self.solve() - return pixel - def make_world_map(self,pixel): + def check_command_completed(self, commands, previous_commands): + if compare(commands, previous_commands): + return False, False + elif (len(commands) + 1) < len(previous_commands): + return True, False - relative_location =[] - world_vertex = [] - relative_location.append(pixel[0]*self.pixel_density) - relative_location.append(pixel[1]*self.pixel_density) + elif len(commands) < len(previous_commands): - world_vertex.append(relative_location[0]+self.mapoffset[0] -self.worldoffset[0]) - world_vertex.append(relative_location[1]+self.mapoffset[1] -self.worldoffset[1]) - world_vertex.append(22) - return world_vertex + return True, compare(commands, previous_commands[1:]) + else: + return True, False - def make_world_node(self,node): - - return self.make_world_map(self.make_map_node(node)) - - - def get_distance_closest_node(self,pos): - import collections - distance = [] - for node_iter in self.graph.intersection_nodes(): - - distance.append( sldist(node_iter,pos)) - - return sorted(distance)[0] - - def get_distance_closest_node(self,pos): - import collections - distance = [] - for node_iter in self.graph.intersection_nodes(): - - distance.append( sldist(node_iter,pos)) - - return sorted(distance)[0] - - def get_distance_closest_node_route(self,pos,route): - import collections - distance = [] - #if self.graph.intersection_nodes() == set(): - - for node_iter in route: - - if node_iter in self.graph.intersection_nodes(): - - distance.append( sldist(node_iter,pos)) - - if not distance: - - return sldist(route[-1],pos) - return sorted(distance)[0] - - - def get_target_ori(self,target_pos): - - relative_location = [] - pixel=[] - rotation = np.array([target_pos[0],target_pos[1],target_pos[2]]) - rotation = rotation.dot(self.worldrotation) - - #print 'rot ', rotation - - relative_location.append(rotation[0] + self.worldoffset[0] - self.mapoffset[0]) - relative_location.append(rotation[1] + self.worldoffset[1] - self.mapoffset[1]) - relative_location.append(rotation[2] + self.worldoffset[2] - self.mapoffset[2]) - #print 'trans ', relative_location - - pixel.append(math.floor(relative_location[0]/float(self.pixel_density))) - pixel.append(math.floor(relative_location[1]/float(self.pixel_density))) - #print self.map_image.shape - ori = self.map_image[int(pixel[1]),int(pixel[0]),2] - ori = ((float(ori)/255.0) ) *2*math.pi - - #print self.map_image[int(pixel[1]),int(pixel[0]),:] - #print ori - #print (math.cos(ori),math.sin(ori)) - #print exit() - - return (-math.cos(ori),-math.sin(ori)) - - - - - - - - def search(self,x,y): - visit = [[0,1],[0,-1],[1,0],[1,1],[1,-1],[-1,0],[-1,1],[-1,-1]] - c_x,c_y = x,y - scale=1 - while(self.grid[c_x,c_y] !=0 ): - for offset in visit: - c_x,c_y = x + offset[0]*scale,y + offset[1]*scale - - if c_x>= 0 and c_x = 0 and c_y = 0 and node[0] = 0 and node[1] 1.6 and adj !=target) : - self.grid[adj[0],adj[1]] =1.0 - - added_walls.add((adj[0],adj[1])) - self.walls.add((adj[0],adj[1])) - - return added_walls - - def set_grid_direction_target(self,pos,pos_ori,source): - - free_nodes = self.get_adjacent_free_nodes(pos) - - - added_walls =set() - heading_start = np.array([pos_ori[0], pos_ori[1]]) - for adj in free_nodes: - - start_to_goal = np.array([adj[0] - pos[0], adj[1] - pos[1] ]) - angle = angle_between(heading_start,start_to_goal) - - if (angle < 1.0 and adj !=source) : - self.grid[adj[0],adj[1]] =1.0 - - added_walls.add((adj[0],adj[1])) - self.walls.add((adj[0],adj[1])) - - return added_walls - - - #from the shortest path graph, transform it into a list of commands - # @param the sub graph containing the shortest path - # @param Orientation of the car - # returns list of commands ( 3 is left, 4 is right, 5 is straight) - - def graph_to_commands(self, route ): - - commands_list = [] - - for i in range(0,len(route)): - if route[i] not in self.graph.intersection_nodes(): - continue - - current = route[i] - past =route[i-1] - future = route[i+1] - - past_to_current = np.array([current[0]-past[0], current[1]-past[1]]) - current_to_future = np.array([future[0]-current[0], future[1]-current[1]]) - angle =signal(current_to_future,past_to_current) - - command = 0.0 - if angle < -0.1: - command = 4.0 - elif angle > 0.1: - command = 3.0 - else: - command =5.0 - - commands_list.append(command) - - - return commands_list - - def check_command_completed(self,commands,previous_commands): - if compare(commands,previous_commands): - return False,False - elif (len(commands) + 1) < len(previous_commands): - return True,False - - elif len(commands) < len(previous_commands): - - - - return True,compare(commands,previous_commands[1:]) - else: - return True,False - - - - def get_full_distance_route(self,pos,route): - import collections - distance = 0 - #if self.graph.intersection_nodes() == set(): - current_pos = pos - for node_iter in route: - - - - distance += sldist(node_iter,current_pos) - current_pos = node_iter - - - return distance - - - - - - def get_next_command(self,source,source_ori, target,target_ori): - - - node_source = self.make_node(source) - node_target = self.make_node(target) - - source_ori = np.array([source_ori[0],source_ori[1],source_ori[2]]) - source_ori = source_ori.dot(self.worldrotation) - - - # Trunkate ! - node_source = tuple([ int(x) for x in node_source ]) - node_target = tuple([ int(x) for x in node_target ]) - target_ori = self.get_target_ori(target) - # Set to zero if it is less than zero. - - - - target_ori = np.array([target_ori[0],target_ori[1],0]) - target_ori = target_ori.dot(self.worldrotation) - - - node_source =(max(0,node_source[0]),max(0,node_source[1])) - node_source =(min(self.resolution[0]-1,node_source[0]),min(self.resolution[1]-1,node_source[1])) - # is it x or y ? Check to avoid special corner cases - - - if math.fabs(source_ori[0]) > math.fabs(source_ori[1]): - source_ori = (source_ori[0],0.0,0.0) - else: - source_ori = (0.0,source_ori[1],0.0) - - - - node_source = self.search(node_source[0],node_source[1]) - node_target = self.search(node_target[0],node_target[1]) - #print '' - #print node_source - #print node_target - #print self.grid - - # reach the goal - if node_source == node_target: - return 0,0 - - - # This is to avoid computing a new route when inside the route - distance_node = self.get_distance_closest_node(node_source) - - if (distance_node >1 and self.previous_source != node_source) or self.complete_distance ==0: - - #print node_source - #print node_target - added_walls = self.set_grid_direction(node_source,source_ori,node_target) - #print added_walls - added_walls=added_walls.union(self.set_grid_direction_target(node_target,target_ori,node_source)) - #print added_walls - self.previous_source = node_source - - #print self.grid - - self.a_star =AStar() - self.init(node_source, node_target) - route = self.solve() - #print route # JuSt a Corner Case - if route == None: - for i in added_walls: - self.walls.remove(i) - - self.grid[i[0],i[1]] = 0.0 - added_walls = self.set_grid_direction(node_source,source_ori,node_target) - self.a_star =AStar() - self.init(node_source, node_target) - route = self.solve() - - #print route - - # We recompute the distance based on route - self.distance= self.get_distance_closest_node_route(node_source,route) - self.complete_distance = self.get_full_distance_route(node_source,route)*50.0*16.42 - - for i in added_walls: - self.walls.remove(i) - - self.grid[i[0],i[1]] = 0.0 - - commands = self.graph_to_commands(route) - made_turn,completed_command = self.check_command_completed(commands,self.commands) - - - self.commands = commands - next_node=route[0] - for i in route: - if i in self.graph.nodes: - next_node = i - break - - - - if self.distance > 4: - return 2.0,self.complete_distance - else: - if self.commands: - return self.commands[0],self.complete_distance - else: - return 2.0,self.complete_distance - else: - - if self.distance >4: - return 2.0,self.complete_distance - - if self.commands: - return self.commands[0],self.complete_distance - else: - return 2.0,self.complete_distance - +""" \ No newline at end of file diff --git a/PythonClient/run_benchmark.py b/PythonClient/run_benchmark.py index ce7824d09..62a56eb14 100644 --- a/PythonClient/run_benchmark.py +++ b/PythonClient/run_benchmark.py @@ -6,8 +6,8 @@ import logging -from benchmarks.corl import CoRL -from benchmarks.agent import Agent +from carla.benchmarks.corl import CoRL +from carla.benchmarks.agent import Agent from carla.tcp import TCPConnectionError from carla.client import make_carla_client @@ -71,8 +71,8 @@ if(__name__ == '__main__'): while True: try: with make_carla_client(args.host, args.port) as client: - corl= CoRL(city_name= args.city_name,name_to_save='test') - agent = Manual(args.map_name) + corl= CoRL(city_name= args.city_name,name_to_save='test2') + agent = Manual(args.city_name) results = corl.benchmark_agent(agent,client) corl.plot_summary_test() corl.plot_summary_train() From 35b7229b90cfceb987225ba45b84ee0307e4ad65 Mon Sep 17 00:00:00 2001 From: felipecode Date: Wed, 13 Dec 2017 19:20:59 +0100 Subject: [PATCH 009/121] Adding the planner --- PythonClient/carla/benchmarks/agent.py | 10 +- PythonClient/carla/benchmarks/benchmark.py | 12 +- PythonClient/carla/planner/city_track.py | 74 ++++++-- PythonClient/carla/planner/graph.py | 206 ++++++++++----------- PythonClient/carla/planner/grid.py | 150 ++++++++------- PythonClient/carla/planner/map.py | 84 +++------ PythonClient/carla/planner/planner.py | 122 ++++-------- PythonClient/carla/planner/topology.py | 78 ++++++++ 8 files changed, 385 insertions(+), 351 deletions(-) create mode 100644 PythonClient/carla/planner/topology.py diff --git a/PythonClient/carla/benchmarks/agent.py b/PythonClient/carla/benchmarks/agent.py index 3a03ea1cb..7f01401e0 100644 --- a/PythonClient/carla/benchmarks/agent.py +++ b/PythonClient/carla/benchmarks/agent.py @@ -20,7 +20,7 @@ from carla.carla_server_pb2 import Control -class Agent(object, ): +class Agent(object): def __init__(self,city_name, **kwargs): import os dir_path = os.path.dirname(__file__) @@ -31,10 +31,10 @@ class Agent(object, ): def get_distance(self,start_point,end_point): - _,path_distance=self._planner.get_next_command([start_point.location.x\ - ,start_point.location.y,22],[start_point.orientation.x\ - ,start_point.orientation.y,22],[end_point.location.x\ - ,end_point.location.y,22],(1,0,0)) + path_distance=self._planner.get_shortest_path_distance( + [start_point.location.x,start_point.location.y,22] + ,[start_point.orientation.x,start_point.orientation.y,22] + ,[end_point.location.x,end_point.location.y,22],(1,0,0)) # We calculate the timout based on the distance return path_distance diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index fe9214189..2d0e1021e 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -54,7 +54,6 @@ class Benchmark(object,): 'pos_y': -1 } - # If this name was run try to continue # Returns a experiment class that is build from a benchmark inherited # class @@ -98,14 +97,15 @@ class Benchmark(object,): curr_y = -1 prev_x = -1 prev_y = -1 + measurements, sensor_data = carla.read_data() carla.send_control(carla_protocol.Control()) + t0 = measurements.game_timestamp t1 = t0 success = False - step = 0 - accum_lane_intersect = 0.0 - accum_sidewalk_intersect = 0.0 + + distance = 100000 measurement_vec = [] while((t1-t0) < (time_out*1000) and not success): @@ -128,8 +128,8 @@ class Benchmark(object,): t1 = measurements.game_timestamp - step += 1 - # The distance is based on graph but quite not exact. + + distance = sldist([curr_x, curr_y], [target.location.x, target.location.y]) diff --git a/PythonClient/carla/planner/city_track.py b/PythonClient/carla/planner/city_track.py index db37285be..7e649eb2e 100644 --- a/PythonClient/carla/planner/city_track.py +++ b/PythonClient/carla/planner/city_track.py @@ -1,8 +1,16 @@ - -class CityTrack(object) +import math - def __init__(self,city_name) +import numpy as np + +from carla.planner.astar import AStar +from carla.planner.map import CarlaMap + + +class CityTrack(object): + + + def __init__(self,city_name): self._map = CarlaMap(city_name) @@ -11,6 +19,10 @@ class CityTrack(object) # Refers to the start position of the previous route computation self._previous_node = [] + + # The current computed rout + + self._route =None @@ -25,7 +37,7 @@ class CityTrack(object) # To change the orientation with respect to the map standards node_orientation = np.array([node_orientation[0], node_orientation[1],node_orientation[2]]) - node_orientation = source_ori.dot(self.worldrotation) + node = tuple([ int(x) for x in node ]) @@ -39,11 +51,11 @@ class CityTrack(object) if math.fabs(node_orientation[0]) > math.fabs(node_orientation[1]): - node_orientation = (source_ori[0],0.0,0.0) + node_orientation = (node_orientation[0],0.0,0.0) else: - node_orientation = (0.0,source_ori[1],0.0) + node_orientation = (0.0,node_orientation[1],0.0) - node = self.map.grid_search(node[0],node[1]) + node = self._map._grid.search_on_grid(node[0],node[1]) return node @@ -60,8 +72,14 @@ class CityTrack(object) def is_far_away_from_route_intersection(self,current_node): # CHECK FOR THE EMPTY CASE + if self._route == None: + raise RuntimeError('Impossible to find route' + + ' Current planner is limited' + + ' Try to select start points away from interesections') + + return self._closest_intersection_route_position(current_node, - self._previous_route) > 4 + self._route) > 4 @@ -70,12 +88,18 @@ class CityTrack(object) self._previous_node = node_source + #print node_source + #print node_target + #print self._map.get_walls_directed(node_source,source_ori, + # node_target,target_ori) + print self._map.get_graph_resolution() a_star =AStar() - a_star.init_grid(node_source,self._map.get_graph_resolution()[0], + a_star.init_grid(self._map.get_graph_resolution()[0], self._map.get_graph_resolution()[1], - self._map.get_walls_directed(node_target,target_ori,node_source), - node_target) + self._map.get_walls_directed(node_source,source_ori, + node_target,target_ori),node_source, + node_target) route = a_star.solve() @@ -86,12 +110,14 @@ class CityTrack(object) # REALLY, I want to remove this if route == None: a_star =AStar() - a_star.init_grid(node_source,self._map.get_graph_resolution()[0], - self._map.get_graph_resolution()[1],self._map.get_walls(), node_target) + a_star.init_grid(self._map.get_graph_resolution()[0], + self._map.get_graph_resolution()[1],self._map.get_walls(), + node_source, node_target) route = a_star.solve() + self._route = route return route @@ -107,15 +133,31 @@ class CityTrack(object) return sorted(distance_vector)[0] - def _closest_intersection_route_position(self, current_node): + def _closest_intersection_route_position(self, current_node,route): distance_vector = [] - for node_iterator in self._map._graph.intersection_nodes(): + for node_iter in route: + for node_iterator in self._map._graph.intersection_nodes(): - distance_vector.append(sldist(node_iterator, current_node)) + distance_vector.append(sldist(node_iterator, current_node)) return sorted(distance_vector)[0] + def get_distance_closest_node_route(self, pos, route): + import collections + distance = [] + # if self.graph.intersection_nodes() == set(): + + for node_iter in route: + + if node_iter in self.graph.intersection_nodes(): + + distance.append(sldist(node_iter, pos)) + + if not distance: + + return sldist(route[-1], pos) + return sorted(distance)[0] diff --git a/PythonClient/carla/planner/graph.py b/PythonClient/carla/planner/graph.py index 3b7579358..b8229f737 100644 --- a/PythonClient/carla/planner/graph.py +++ b/PythonClient/carla/planner/graph.py @@ -1,161 +1,143 @@ import math import numpy as np -from matplotlib import collections as mc +from matplotlib import collections as mc import matplotlib.pyplot as plt -def string_to_node(string): - vec = string.split(',') - return (int(vec[0]),int(vec[1])) +def string_to_node(string): + vec = string.split(',') + + return (int(vec[0]), int(vec[1])) + def string_to_floats(string): - vec = string.split(',') + vec = string.split(',') - return (float(vec[0]),float(vec[1]),float(vec[2])) + return (float(vec[0]), float(vec[1]), float(vec[2])) -def angle_between(v1,v2): - return np.arccos(np.dot(v1,v2) / np.linalg.norm(v1) / np.linalg.norm(v2)) -def signal(v1,v2): - return np.cross(v1,v2) / np.linalg.norm(v1) / np.linalg.norm(v2) + + + +def signal(v1, v2): + return np.cross(v1, v2) / np.linalg.norm(v1) / np.linalg.norm(v2) sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) -sldist3 = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2 + (c2[2] - c1[2])**2) +sldist3 = lambda c1, c2: math.sqrt( + (c2[0] - c1[0])**2 + (c2[1] - c1[1])**2 + (c2[2] - c1[2])**2) + class Graph(object): - """ - A simple directed, weighted graph - """ + """ + A simple directed, weighted graph + """ + def __init__(self, graph_file=None): - def __init__(self,graph_file=None): + self._nodes = set() + self._angles = {} + self._edges = {} + self._distances = {} + self._node_density = 50 + if graph_file != None: + with open(graph_file, 'r') as file: + # Skipe the first four lines that + lines_after_4 = file.readlines()[4:] + # the graph resolution. + linegraphres = lines_after_4[0] + self._resolution = string_to_node(linegraphres) + for line in lines_after_4[1:]: - self.nodes = set() - self.angles ={} - self.edges = {} - self.distances = {} - self.node_density =50 - if graph_file != None: - with open(graph_file, 'r') as file: - for i in range(4): - next(file) + from_node, to_node, d = line.split() + from_node = string_to_node(from_node) + to_node = string_to_node(to_node) - # the graph resolution. - linegraphres = file.readline() - self._resolution = string_to_node(linegraphres) - for line in file: + if from_node not in self._nodes: + self.add_node(from_node) + if to_node not in self._nodes: + self.add_node(to_node) + self._edges.setdefault(from_node, []) + self._edges[from_node].append(to_node) + self._distances[(from_node, to_node)] = float(d) - from_node, to_node, d = line.split() - from_node = string_to_node(from_node) - to_node = string_to_node(to_node) + def add_node(self, value): + self._nodes.add(value) - if from_node not in self.nodes: - self.add_node(from_node) - if to_node not in self.nodes: - self.add_node(to_node) - - - - self.edges.setdefault(from_node,[]) - self.edges[from_node].append(to_node) - self.distances[(from_node, to_node)] = float(d) - - - - def add_node(self, value): - self.nodes.add(value) - - def project_pixel(self,pixel) + def project_pixel(self, pixel): node = [] - node.append((pixel[0])/self.node_density - 2) - node.append((pixel[1])/self.node_density - 2) + node.append((pixel[0])/self._node_density - 2) + node.append((pixel[1])/self._node_density - 2) return tuple(node) - def make_orientations(self,node,heading): + def make_orientations(self, node, heading): - import collections - distance_dic = {} - for node_iter in self.nodes: - if node_iter != node: - distance_dic[sldist(node,node_iter)] = node_iter + import collections + distance_dic = {} + for node_iter in self._nodes: + if node_iter != node: + distance_dic[sldist(node, node_iter)] = node_iter + distance_dic = collections.OrderedDict( + sorted(distance_dic.items())) + self._angles[node] = heading + for k, v in distance_dic.iteritems(): + # print k + # print v - distance_dic = collections.OrderedDict(sorted(distance_dic.items())) + start_to_goal = np.array([node[0] - v[0], node[1] - v[1]]) - self.angles[node ] = heading - for k, v in distance_dic.iteritems(): + print start_to_goal - #print k - #print v + self.angles[v] = start_to_goal / np.linalg.norm(start_to_goal) - start_to_goal = np.array([node[0] - v[0], node[1] - v[1]]) + def add_edge(self, from_node, to_node, distance): + self._add_edge(from_node, to_node, distance) - print start_to_goal + def _add_edge(self, from_node, to_node, distance): + self._edges.setdefault(from_node, []) + self._edges[from_node].append(to_node) + self._distances[(from_node, to_node)] = distance - self.angles[v] = start_to_goal / np.linalg.norm(start_to_goal) + def intersection_nodes(self): + intersect_nodes = [] + for node in self._nodes: + if len(self._edges[node]) > 2: + intersect_nodes.append(node) - def add_edge(self, from_node, to_node, distance): - self._add_edge(from_node, to_node, distance) + return intersect_nodes + # This contains also the non-intersection turns... - def _add_edge(self, from_node, to_node, distance): - self.edges.setdefault(from_node, []) - self.edges[from_node].append(to_node) - self.distances[(from_node, to_node)] = distance + def turn_nodes(self): - def intersection_nodes(self): + return self._nodes - intersect_nodes = [] - for node in self.nodes: - if len(self.edges[node]) > 2: - intersect_nodes.append(node) + def plot_ori(self, c): + line_len = 1 - return intersect_nodes + lines = [[(p[0], p[1]), (p[0] + line_len*self._angles[p][0], p[1] + + line_len*self._angles[p][1])] for p in self.nodes] + lc = mc.LineCollection(lines, linewidth=2, color='green') + fig, ax = plt.subplots() + ax.add_collection(lc) - # This contains also the non-intersection turns... + ax.autoscale() + ax.margins(0.1) - def turn_nodes(self): - - - return self.nodes - - def plot_ori(self,c): - line_len = 1 - print self.angles - lines = [[(p[0], p[1]), (p[0] + line_len*self.angles[p][0], p[1] + \ - line_len*self.angles[p][1])] for p in self.nodes] - lc = mc.LineCollection(lines, linewidth=2,color='green') - fig, ax = plt.subplots() - ax.add_collection(lc) - - - ax.autoscale() - ax.margins(0.1) - - xs = [p[0] for p in self.nodes] - ys = [p[1] for p in self.nodes] - - - plt.scatter(xs, ys,color=c) - - - - def plot(self,c): - - xs = [p[0] for p in self.nodes] - ys = [p[1] for p in self.nodes] - - - plt.scatter(xs, ys,color=c) - - + xs = [p[0] for p in self._nodes] + ys = [p[1] for p in self._nodes] + plt.scatter(xs, ys, color=c) + def plot(self, c): + xs = [p[0] for p in self._nodes] + ys = [p[1] for p in self._nodes] + plt.scatter(xs, ys, color=c) diff --git a/PythonClient/carla/planner/grid.py b/PythonClient/carla/planner/grid.py index aecbe2d16..f3ba5e670 100644 --- a/PythonClient/carla/planner/grid.py +++ b/PythonClient/carla/planner/grid.py @@ -1,18 +1,85 @@ +import copy +import numpy as np + +def angle_between(v1, v2): + return np.arccos(np.dot(v1, v2) / np.linalg.norm(v1) / np.linalg.norm(v2)) + class Grid(object): def __init__(self,graph): - self.graph = graph - self.structure = self._make_structure() - self.walls = self._make_walls() + self._graph = graph + self._structure = self._make_structure() + self._walls = self._make_walls() #np.set_printoptions(linewidth=206, threshold=np.nan) + def search_on_grid(self, x, y): + visit = [[0, 1], [0, -1], [1, 0], [1, 1], + [1, -1], [-1, 0], [-1, 1], [-1, -1]] + c_x, c_y = x, y + scale = 1 + while(self._structure[c_x, c_y] != 0): + for offset in visit: + c_x, c_y = x + offset[0]*scale, y + offset[1]*scale + + if c_x >= 0 and c_x < self._graph.resolution[0] and c_y >= 0 and c_y < self._graph.resolution[1]: + if self._structure[c_x, c_y] == 0: + break + else: + c_x, c_y = x, y + scale += 1 + + return (c_x, c_y) + + + + + + def get_wall_source(self, pos, pos_ori, target): + + free_nodes = self._get_adjacent_free_nodes(pos) + print self._walls + final_walls = copy.copy(self._walls) + print final_walls + heading_start = np.array([pos_ori[0], pos_ori[1]]) + for adj in free_nodes: + + start_to_goal = np.array([adj[0] - pos[0], adj[1] - pos[1]]) + angle = angle_between(heading_start, start_to_goal) + if (angle > 1.6 and adj != target): + #self.grid[adj[0], adj[1]] = 1.0 + + final_walls.add((adj[0], adj[1])) + #self.walls.add((adj[0], adj[1])) + + return final_walls + + def get_wall_target(self, pos, pos_ori, source): + + free_nodes = self._get_adjacent_free_nodes(pos) + final_walls = copy.copy(self._walls) + heading_start = np.array([pos_ori[0], pos_ori[1]]) + for adj in free_nodes: + + start_to_goal = np.array([adj[0] - pos[0], adj[1] - pos[1]]) + angle = angle_between(heading_start, start_to_goal) + + if (angle < 1.0 and adj != source): + #self.grid[adj[0], adj[1]] = 1.0 + + final_walls.add((adj[0], adj[1])) + #self.walls.add((adj[0], adj[1])) + + return final_walls + + + def _draw_line(self, grid, xi, yi, xf, yf): @@ -36,9 +103,9 @@ class Grid(object): return grid def _make_structure(self): - structure =np.ones((self.graph.resolution[0], self.graph.resolution[1])) + structure =np.ones((self._graph._resolution[0], self._graph._resolution[1])) - for key, connections in self.graph.edges.iteritems(): + for key, connections in self._graph._edges.iteritems(): # draw a line for con in connections: @@ -51,35 +118,14 @@ class Grid(object): def _make_walls(self): walls = set() - for i in range(self.grid.shape[0]): + for i in range(self._structure.shape[0]): - for j in range(self.grid.shape[1]): - if self.grid[i, j] == 1.0: + for j in range(self._structure.shape[1]): + if self._structure[i, j] == 1.0: walls.add((i, j)) return walls - - def search_on_grid(self, x, y): - visit = [[0, 1], [0, -1], [1, 0], [1, 1], - [1, -1], [-1, 0], [-1, 1], [-1, -1]] - c_x, c_y = x, y - scale = 1 - while(self.grid[c_x, c_y] != 0): - for offset in visit: - c_x, c_y = x + offset[0]*scale, y + offset[1]*scale - - if c_x >= 0 and c_x < self.resolution[0] and c_y >= 0 and c_y < self.resolution[1]: - if self.grid[c_x, c_y] == 0: - break - else: - c_x, c_y = x, y - scale += 1 - - return (c_x, c_y) - - - - def get_adjacent_free_nodes(self, pos): + def _get_adjacent_free_nodes(self, pos): """ Acht nodes in total """ visit = [[0, 1], [0, -1], [1, 0], [1, 1], [1, -1], [-1, 0], [-1, 1], [-1, -1]] @@ -88,46 +134,10 @@ class Grid(object): for offset in visit: node = (pos[0] + offset[0], pos[1]+offset[1]) - if node[0] >= 0 and node[0] < self.resolution[0] and node[1] >= 0 and node[1] < self.resolution[1]: + if (node[0] >= 0 and node[0] < self._graph._resolution[0] + and node[1] >= 0 and node[1] < self._graph._resolution[1]): - if self.grid[node[0], node[1]] == 0.0: + if self._structure[node[0], node[1]] == 0.0: adjacent.add(node) - return adjacent - - def set_grid_direction(self, pos, pos_ori, target): - - free_nodes = self.get_adjacent_free_nodes(pos) - - added_walls = set() - heading_start = np.array([pos_ori[0], pos_ori[1]]) - for adj in free_nodes: - - start_to_goal = np.array([adj[0] - pos[0], adj[1] - pos[1]]) - angle = angle_between(heading_start, start_to_goal) - if (angle > 1.6 and adj != target): - self.grid[adj[0], adj[1]] = 1.0 - - added_walls.add((adj[0], adj[1])) - self.walls.add((adj[0], adj[1])) - - return added_walls - - def set_grid_direction_target(self, pos, pos_ori, source): - - free_nodes = self.get_adjacent_free_nodes(pos) - - added_walls = set() - heading_start = np.array([pos_ori[0], pos_ori[1]]) - for adj in free_nodes: - - start_to_goal = np.array([adj[0] - pos[0], adj[1] - pos[1]]) - angle = angle_between(heading_start, start_to_goal) - - if (angle < 1.0 and adj != source): - self.grid[adj[0], adj[1]] = 1.0 - - added_walls.add((adj[0], adj[1])) - self.walls.add((adj[0], adj[1])) - - return added_walls \ No newline at end of file + return adjacent \ No newline at end of file diff --git a/PythonClient/carla/planner/map.py b/PythonClient/carla/planner/map.py index c8ba8247f..962b44c80 100644 --- a/PythonClient/carla/planner/map.py +++ b/PythonClient/carla/planner/map.py @@ -20,9 +20,14 @@ try: except ImportError: raise RuntimeError('cannot import PIL, make sure pillow package is installed') -from graph import string_to_node,string_to_floats +from carla.planner.graph import Graph +from carla.planner.grid import Grid +from carla.planner.graph import string_to_node,string_to_floats +def color_to_angle(color): + return ((float(color)/255.0)) * 2*math.pi + @@ -67,15 +72,15 @@ class CarlaMap(object): city_map_file = os.path.join(dir_path, city + '.png') city_map_file_lanes = os.path.join(dir_path, city + 'Lanes.png') - city_map_file_center = os.path.join(dir_path, city + 'Center.png') + city_map_file_center = os.path.join(dir_path, city + 'Central.png') # The built graph. This is the exact same graph that unreal builds. This # is a generic structure used for many cases self._graph = Graph(city_file) - - self._grid = Grid() + + self._grid = Grid(self._graph) with open(city_file, 'r') as file: @@ -163,7 +168,6 @@ class CarlaMap(object): """Get the position on the map for a certain world position.""" pixel = self.get_position_on_map(world) return self._graph.project_pixel(pixel) - @@ -195,25 +199,12 @@ class CarlaMap(object): pixel.append(math.floor(relative_location[1] / float(self.pixel_density))) ori = self.map_image_lanes[int(pixel[1]), int(pixel[0]), 2] - ori = ((float(ori) / 255.0)) * 2 * math.pi + ori = color_to_angle(ori) return (-math.cos(ori), -math.sin(ori)) - - - - - def - - - - - - - - def make_map_world(self, world): relative_location = [] @@ -286,42 +277,30 @@ class CarlaMap(object): 1]/float(self.pixel_density))) # print self.map_image.shape ori = self.map_image[int(pixel[1]), int(pixel[0]), 2] - ori = ((float(ori)/255.0)) * 2*math.pi + ori = color_to_angle(ori) - # print self.map_image[int(pixel[1]),int(pixel[0]),:] - # print ori - #print (math.cos(ori),math.sin(ori)) - # print exit() return (-math.cos(ori), -math.sin(ori)) -""" - def make_node(self, worldvertex): - pixel = self.make_map_world(worldvertex) + def get_walls_directed(self,node_source,source_ori,node_target,target_ori): + """ + This is the most hacky function. Instead of planning on two ways, + we basically use a one way road and interrupt the other road by adding + an artificial wall. - node = [] + """ + print self._grid._structure + final_walls = self._grid.get_wall_source(node_source,source_ori,node_target) + print 'Returned final ',final_walls + final_walls = final_walls.union(self._grid.get_wall_target( + node_target,target_ori,node_source)) + return final_walls - node.append((pixel[0])/self.node_density - 2) - node.append((pixel[1])/self.node_density - 2) - - return tuple(node) -""" - def get_walls_directed(self,node_target,target_ori,node_source): - - # GOes to Grid - #added_walls = self.set_grid_direction(node_source,source_ori,node_target) - - - #print added_walls - # Goes to grid - #added_walls=added_walls.union(self.set_grid_direction_target(node_target,target_ori,node_source)) - #print added_walls def get_walls(self): - return walss - + return self._grid.walls @@ -334,19 +313,4 @@ class CarlaMap(object): return sorted(distance)[0] - def get_distance_closest_node_route(self, pos, route): - import collections - distance = [] - # if self.graph.intersection_nodes() == set(): - - for node_iter in route: - - if node_iter in self.graph.intersection_nodes(): - - distance.append(sldist(node_iter, pos)) - - if not distance: - - return sldist(route[-1], pos) - return sorted(distance)[0] diff --git a/PythonClient/carla/planner/planner.py b/PythonClient/carla/planner/planner.py index 9e835e187..8ea3ac9bd 100644 --- a/PythonClient/carla/planner/planner.py +++ b/PythonClient/carla/planner/planner.py @@ -5,12 +5,20 @@ import os from PIL import Image - -from graph import Graph -from astar import Astar +from city_track import CityTrack compare = lambda x, y: collections.Counter(x) == collections.Counter(y) +""" +Constants Used for the high level commands +""" + +REACH_GOAL = 0.0 +GO_STRAIGHT = 5.0 +TURN_RIGHT = 4.0 +TURN_LEFT = 3.0 +LANE_FOLLOW =2.0 + def angle_between(v1, v2): return np.arccos(np.dot(v1, v2) / np.linalg.norm(v1) / np.linalg.norm(v2)) @@ -18,9 +26,6 @@ def angle_between(v1, v2): sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) -def color_to_angle(color): - return ((float(color)/255.0)) * 2*math.pi - class Planner(object): @@ -58,7 +63,9 @@ class Planner(object): - #self.astar. + # Take the world position and project it on the road. + # The road is represented in a grid + track_source = self._city_track.project_node(source,source_ori) track_target = self._city_track.project_node(target,target_ori) @@ -66,67 +73,61 @@ class Planner(object): # reach the goal - if self._city_track.is_at_goal(track_source,track_target) - return 0,0 - #if node_source == node_target: - # return 0, 0 + if self._city_track.is_at_goal(track_source,track_target): + return REACH_GOAL - if self._city_track.is_at_new_node(track_source) - and self._city_track.is_away_from_intersection(track_source): + if (self._city_track.is_at_new_node(track_source) + and self._city_track.is_away_from_intersection(track_source)): - # print route route= self._city_track.compute_route(track_source,source_ori, track_target,target_ori) - - #(node_source,source_ori,node_target,target_ori) - - - # We recompute the distance based on route - #self.distance = self.get_distance_closest_node_route( - # node_source, route) - - #self.complete_distance = self.get_full_distance_route( - # node_source, route)*50.0*16.42 # This is bad + if route == None: + raise RuntimeError('Impossible to find route') self._commands = self._route_to_commands(route) - - if self._city_track.is_far_away_from_route_intersection(track_source): - return 2.0 + return LANE_FOLLOW else: if self.commands: return self.commands[0] else: - return 2.0 + return LANE_FOLLOW else: if self._city_track.is_far_away_from_route_intersection(track_source): - return 2.0 + return LANE_FOLLOW # If there is computed commands if self.commands: return self.commands[0] else: - return 2.0 + return LANE_FOLLOW def get_shortest_path_distance(self, source, source_ori, target, target_ori): - import collections + distance = 0 - # if self.graph.intersection_nodes() == set(): - current_pos = pos + track_source = self._city_track.project_node(source,source_ori) + track_target = self._city_track.project_node(target,target_ori) + + current_pos = track_source + + route = self._city_track.compute_route(track_source,source_ori, + track_target,target_ori) + for node_iter in route: distance += sldist(node_iter, current_pos) current_pos = node_iter - return distance# *50.0*16.42 , maybe this goes to another layer + # We multiply by these values to convert distance to world coordinates + return distance *50.0*16.42 # , maybe this goes to another layer def is_there_posible_route(self,source,source_ori,target,target_ori): @@ -135,8 +136,8 @@ class Planner(object): track_target = self._city_track.project_node(target,target_ori) - return len(self._city_track.compute_route( - node_source,source_ori,node_target,target_ori))>0 + return not self._city_track.compute_route( + node_source,source_ori,node_target,target_ori) == None @@ -166,56 +167,13 @@ class Planner(object): command = 0.0 if angle < -0.1: - command = 4.0 + command = TURN_RIGHT elif angle > 0.1: - command = 3.0 + command = TURN_LEFT else: - command = 5.0 + command = GO_STRAIGHT commands_list.append(command) return commands_list -""" -# print node_source -# print node_target -added_walls = self.set_grid_direction( - node_source, source_ori, node_target) -# print added_walls -added_walls = added_walls.union( - self.set_grid_direction_target(node_target, target_ori, node_source)) -# print added_walls -self.previous_source = node_source - -# print self.grid - -self.a_star = AStar() -self.init(node_source, node_target) -route = self.solve() -# print route # JuSt a Corner Case -if route == None: - for i in added_walls: - self.walls.remove(i) - - self.grid[i[0], i[1]] = 0.0 - added_walls = self.set_grid_direction( - node_source, source_ori, node_target) - self.a_star = AStar() - self.init(node_source, node_target) - route = self.solve() - - - def check_command_completed(self, commands, previous_commands): - if compare(commands, previous_commands): - return False, False - elif (len(commands) + 1) < len(previous_commands): - return True, False - - elif len(commands) < len(previous_commands): - - return True, compare(commands, previous_commands[1:]) - else: - return True, False - - -""" \ No newline at end of file diff --git a/PythonClient/carla/planner/topology.py b/PythonClient/carla/planner/topology.py new file mode 100644 index 000000000..6d21a5650 --- /dev/null +++ b/PythonClient/carla/planner/topology.py @@ -0,0 +1,78 @@ + + + # Projecting the nodes + node_source = self.make_node(source) + node_target = self.make_node(target) + + source_ori = np.array([source_ori[0], source_ori[1], source_ori[2]]) + source_ori = source_ori.dot(self.worldrotation) + + # Trunkate ! + node_source = tuple([int(x) for x in node_source]) + node_target = tuple([int(x) for x in node_target]) + #target_ori = self.get_target_ori(target) + # Set to zero if it is less than zero. + + target_ori = np.array([target_ori[0], target_ori[1], 0]) + target_ori = target_ori.dot(self.worldrotation) + + node_source = (max(0, node_source[0]), max(0, node_source[1])) + node_source = (min(self.resolution[ + 0]-1, node_source[0]), min(self.resolution[1]-1, node_source[1])) + + + # is it x or y ? Check to avoid special corner cases + + if math.fabs(source_ori[0]) > math.fabs(source_ori[1]): + source_ori = (source_ori[0], 0.0, 0.0) + else: + source_ori = (0.0, source_ori[1], 0.0) + + node_source = self.search(node_source[0], node_source[1]) + node_target = self.search(node_target[0], node_target[1]) + + def _route_compute(self,node_source,source_ori,node_target,target_ori): + + + # GOes to Grid + #added_walls = self.set_grid_direction(node_source,source_ori,node_target) + #print added_walls + # Goes to Walls + #added_walls=added_walls.union(self.set_grid_direction_target(node_target,target_ori,node_source)) + #print added_walls + + + self.previous_source = node_source + + #print self.grid + + #self.a_star =AStar() + self.init(node_source, node_target) + self.route = self.solve() + #print route # JuSt a Corner Case + if self.route == None: + for i in added_walls: + self.walls.remove(i) + + self.grid[i[0],i[1]] = 0.0 + added_walls = self.set_grid_direction(node_source,source_ori,node_target) + self.a_star =AStar() + self.init(node_source, node_target) + self.route = self.solve() + + + for i in added_walls: + self.walls.remove(i) + + self.grid[i[0],i[1]] = 0.0 + + + + return self.route + + # This is to avoid computing a new route when inside the route + # distance_node = self.get_distance_closest_node(node_source) + # Planner shouldnt have knowledge about node + + #if (distance_node > 1 \ + # and self.previous_source != node_source) or self.complete_distance == 0: From b1f4db48052c1a95de922e5c9e4b5cebd5b55468 Mon Sep 17 00:00:00 2001 From: felipecode Date: Thu, 14 Dec 2017 00:05:34 +0100 Subject: [PATCH 010/121] printing --- PythonClient/carla/planner/grid.py | 4 ++-- PythonClient/carla/planner/map.py | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/PythonClient/carla/planner/grid.py b/PythonClient/carla/planner/grid.py index f3ba5e670..f5df1155e 100644 --- a/PythonClient/carla/planner/grid.py +++ b/PythonClient/carla/planner/grid.py @@ -44,9 +44,9 @@ class Grid(object): def get_wall_source(self, pos, pos_ori, target): free_nodes = self._get_adjacent_free_nodes(pos) - print self._walls + #print self._walls final_walls = copy.copy(self._walls) - print final_walls + #print final_walls heading_start = np.array([pos_ori[0], pos_ori[1]]) for adj in free_nodes: diff --git a/PythonClient/carla/planner/map.py b/PythonClient/carla/planner/map.py index 962b44c80..114eb57d7 100644 --- a/PythonClient/carla/planner/map.py +++ b/PythonClient/carla/planner/map.py @@ -290,9 +290,13 @@ class CarlaMap(object): an artificial wall. """ + + np.set_printoptions( linewidth =206,threshold=np.nan) + print self._grid._structure + final_walls = self._grid.get_wall_source(node_source,source_ori,node_target) - print 'Returned final ',final_walls + #print 'Returned final ',final_walls final_walls = final_walls.union(self._grid.get_wall_target( node_target,target_ori,node_source)) return final_walls @@ -300,6 +304,7 @@ class CarlaMap(object): def get_walls(self): + return self._grid.walls From 71aa3be5777aa0b544f611004a1d580234c7b24b Mon Sep 17 00:00:00 2001 From: felipecode Date: Thu, 14 Dec 2017 00:24:54 +0100 Subject: [PATCH 011/121] Some more debugging on map --- PythonClient/carla/planner/city_track.py | 5 +++-- PythonClient/carla/planner/map.py | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/PythonClient/carla/planner/city_track.py b/PythonClient/carla/planner/city_track.py index 7e649eb2e..aba351c52 100644 --- a/PythonClient/carla/planner/city_track.py +++ b/PythonClient/carla/planner/city_track.py @@ -97,8 +97,9 @@ class CityTrack(object): a_star =AStar() a_star.init_grid(self._map.get_graph_resolution()[0], self._map.get_graph_resolution()[1], - self._map.get_walls_directed(node_source,source_ori, - node_target,target_ori),node_source, + self._map.get_walls(),node_source, + #self._map.get_walls_directed(node_source,source_ori, + # node_target,target_ori),node_source, node_target) diff --git a/PythonClient/carla/planner/map.py b/PythonClient/carla/planner/map.py index 114eb57d7..678dc0a1e 100644 --- a/PythonClient/carla/planner/map.py +++ b/PythonClient/carla/planner/map.py @@ -291,9 +291,9 @@ class CarlaMap(object): """ - np.set_printoptions( linewidth =206,threshold=np.nan) - - print self._grid._structure + #np.set_printoptions( linewidth =206,threshold=np.nan) + + #print self._grid._structure final_walls = self._grid.get_wall_source(node_source,source_ori,node_target) #print 'Returned final ',final_walls @@ -305,7 +305,7 @@ class CarlaMap(object): def get_walls(self): - return self._grid.walls + return self._grid._walls From f31eaa09987a16b1d17eee467383f37d60bfaa6f Mon Sep 17 00:00:00 2001 From: felipecode Date: Thu, 14 Dec 2017 12:03:50 +0100 Subject: [PATCH 012/121] Planner full redefinition. Now tested on many positons --- PythonClient/carla/benchmarks/agent.py | 4 +-- PythonClient/carla/planner/astar.py | 4 +++ PythonClient/carla/planner/city_track.py | 18 ++++++---- PythonClient/carla/planner/graph.py | 6 ---- PythonClient/carla/planner/grid.py | 2 +- PythonClient/carla/planner/map.py | 34 +++--------------- PythonClient/carla/planner/planner.py | 20 +++++++---- PythonClient/carla/planner/test_planner.py | 41 ++++++++++++++++++++++ 8 files changed, 77 insertions(+), 52 deletions(-) create mode 100644 PythonClient/carla/planner/test_planner.py diff --git a/PythonClient/carla/benchmarks/agent.py b/PythonClient/carla/benchmarks/agent.py index 7f01401e0..cb32c185e 100644 --- a/PythonClient/carla/benchmarks/agent.py +++ b/PythonClient/carla/benchmarks/agent.py @@ -9,7 +9,6 @@ from __future__ import print_function import time import math from carla import sensor -from carla.client import make_carla_client from carla.sensor import Camera from carla.settings import CarlaSettings from carla.tcp import TCPConnectionError @@ -34,7 +33,8 @@ class Agent(object): path_distance=self._planner.get_shortest_path_distance( [start_point.location.x,start_point.location.y,22] ,[start_point.orientation.x,start_point.orientation.y,22] - ,[end_point.location.x,end_point.location.y,22],(1,0,0)) + ,[end_point.location.x,end_point.location.y,22] + ,[end_point.orientation.x,end_point.orientation.y,22]) # We calculate the timout based on the distance return path_distance diff --git a/PythonClient/carla/planner/astar.py b/PythonClient/carla/planner/astar.py index 26d1c371e..e9b3d4b70 100644 --- a/PythonClient/carla/planner/astar.py +++ b/PythonClient/carla/planner/astar.py @@ -52,6 +52,7 @@ class AStar(object): """ self.grid_height = height self.grid_width = width + #print walls for x in range(self.grid_width): for y in range(self.grid_height): if (x, y) in walls: @@ -59,6 +60,7 @@ class AStar(object): else: reachable = True self.cells.append(Cell(x, y, reachable)) + self.start = self.get_cell(*start) self.end = self.get_cell(*end) @@ -126,6 +128,8 @@ class AStar(object): @returns path or None if not found. """ + if self.start == self.end: + return None # add starting cell to open heap queue heapq.heappush(self.opened, (self.start.f, self.start)) while len(self.opened): diff --git a/PythonClient/carla/planner/city_track.py b/PythonClient/carla/planner/city_track.py index aba351c52..f1adbde20 100644 --- a/PythonClient/carla/planner/city_track.py +++ b/PythonClient/carla/planner/city_track.py @@ -3,6 +3,8 @@ import math import numpy as np +from carla.planner.graph import sldist + from carla.planner.astar import AStar from carla.planner.map import CarlaMap @@ -29,14 +31,16 @@ class CityTrack(object): - def project_node(self,node,node_orientation): + def project_node(self,position,node_orientation): """ Projecting the graph node into the city road """ + node =self._map.get_position_on_graph(position) + # To change the orientation with respect to the map standards node_orientation = np.array([node_orientation[0], - node_orientation[1],node_orientation[2]]) + node_orientation[1]]) node = tuple([ int(x) for x in node ]) @@ -92,14 +96,14 @@ class CityTrack(object): #print node_target #print self._map.get_walls_directed(node_source,source_ori, # node_target,target_ori) - print self._map.get_graph_resolution() - + #print self._map.get_graph_resolution() + #print self._map.get_walls() + #print 's ',node_source,'e ',node_target a_star =AStar() a_star.init_grid(self._map.get_graph_resolution()[0], self._map.get_graph_resolution()[1], - self._map.get_walls(),node_source, - #self._map.get_walls_directed(node_source,source_ori, - # node_target,target_ori),node_source, + self._map.get_walls_directed(node_source,source_ori, + node_target,target_ori),node_source, node_target) diff --git a/PythonClient/carla/planner/graph.py b/PythonClient/carla/planner/graph.py index b8229f737..de22b1d43 100644 --- a/PythonClient/carla/planner/graph.py +++ b/PythonClient/carla/planner/graph.py @@ -15,12 +15,6 @@ def string_to_floats(string): return (float(vec[0]), float(vec[1]), float(vec[2])) - - - -def signal(v1, v2): - return np.cross(v1, v2) / np.linalg.norm(v1) / np.linalg.norm(v2) - sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) sldist3 = lambda c1, c2: math.sqrt( diff --git a/PythonClient/carla/planner/grid.py b/PythonClient/carla/planner/grid.py index f5df1155e..12bf8c602 100644 --- a/PythonClient/carla/planner/grid.py +++ b/PythonClient/carla/planner/grid.py @@ -28,7 +28,7 @@ class Grid(object): for offset in visit: c_x, c_y = x + offset[0]*scale, y + offset[1]*scale - if c_x >= 0 and c_x < self._graph.resolution[0] and c_y >= 0 and c_y < self._graph.resolution[1]: + if c_x >= 0 and c_x < self._graph._resolution[0] and c_y >= 0 and c_y < self._graph._resolution[1]: if self._structure[c_x, c_y] == 0: break else: diff --git a/PythonClient/carla/planner/map.py b/PythonClient/carla/planner/map.py index 678dc0a1e..e71af686e 100644 --- a/PythonClient/carla/planner/map.py +++ b/PythonClient/carla/planner/map.py @@ -227,10 +227,12 @@ class CarlaMap(object): return pixel + + def make_map_node(self, node): pixel = [] - pixel.append((node[0] + 2) * self.node_density) - pixel.append((node[1] + 2) * self.node_density) + pixel.append((node[0] + 2) * self._graph._node_density) + pixel.append((node[1] + 2) * self._graph._node_density) return pixel @@ -254,34 +256,6 @@ class CarlaMap(object): - def get_target_ori(self, target_pos): - - relative_location = [] - pixel = [] - rotation = np.array([target_pos[0], target_pos[1], target_pos[2]]) - rotation = rotation.dot(self.worldrotation) - - # print 'rot ', rotation - - relative_location.append( - rotation[0] + self.worldoffset[0] - self.mapoffset[0]) - relative_location.append( - rotation[1] + self.worldoffset[1] - self.mapoffset[1]) - relative_location.append( - rotation[2] + self.worldoffset[2] - self.mapoffset[2]) - # print 'trans ', relative_location - - pixel.append(math.floor(relative_location[ - 0]/float(self.pixel_density))) - pixel.append(math.floor(relative_location[ - 1]/float(self.pixel_density))) - # print self.map_image.shape - ori = self.map_image[int(pixel[1]), int(pixel[0]), 2] - ori = color_to_angle(ori) - - - return (-math.cos(ori), -math.sin(ori)) - def get_walls_directed(self,node_source,source_ori,node_target,target_ori): """ diff --git a/PythonClient/carla/planner/planner.py b/PythonClient/carla/planner/planner.py index 8ea3ac9bd..05608cdfc 100644 --- a/PythonClient/carla/planner/planner.py +++ b/PythonClient/carla/planner/planner.py @@ -2,9 +2,11 @@ import math import time import collections import os +import numpy as np from PIL import Image + from city_track import CityTrack compare = lambda x, y: collections.Counter(x) == collections.Counter(y) @@ -20,11 +22,14 @@ TURN_LEFT = 3.0 LANE_FOLLOW =2.0 +# Auxiliary algebra function def angle_between(v1, v2): return np.arccos(np.dot(v1, v2) / np.linalg.norm(v1) / np.linalg.norm(v2)) sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) +def signal(v1, v2): + return np.cross(v1, v2) / np.linalg.norm(v1) / np.linalg.norm(v2) class Planner(object): @@ -82,7 +87,7 @@ class Planner(object): - route= self._city_track.compute_route(track_source,source_ori, + route = self._city_track.compute_route(track_source,source_ori, track_target,target_ori) if route == None: raise RuntimeError('Impossible to find route') @@ -94,8 +99,8 @@ class Planner(object): if self._city_track.is_far_away_from_route_intersection(track_source): return LANE_FOLLOW else: - if self.commands: - return self.commands[0] + if self._commands: + return self._commands[0] else: return LANE_FOLLOW else: @@ -104,8 +109,8 @@ class Planner(object): return LANE_FOLLOW # If there is computed commands - if self.commands: - return self.commands[0] + if self._commands: + return self._commands[0] else: return LANE_FOLLOW @@ -120,6 +125,9 @@ class Planner(object): route = self._city_track.compute_route(track_source,source_ori, track_target,target_ori) + # No Route, distance is zero + if route == None: + return 0.0 for node_iter in route: @@ -152,7 +160,7 @@ class Planner(object): commands_list = [] for i in range(0, len(route)): - if route[i] not in self.astar.intersection_nodes(): + if route[i] not in self._city_track._map._graph.intersection_nodes(): continue current = route[i] diff --git a/PythonClient/carla/planner/test_planner.py b/PythonClient/carla/planner/test_planner.py new file mode 100644 index 000000000..667d350e0 --- /dev/null +++ b/PythonClient/carla/planner/test_planner.py @@ -0,0 +1,41 @@ +from carla import sensor +from carla.sensor import Camera +from carla.settings import CarlaSettings +from carla.tcp import TCPConnectionError +from carla.util import print_over_same_line +from carla.planner.planner import Planner + +from carla.carla_server_pb2 import Control + + + + +planner= Planner('Town01') + + + + +resolution = planner._city_track._map.get_graph_resolution() + +for i in range(resolution[0]): + for j in range(resolution[1]): + + world_source = planner._city_track._map.make_world_node((i,j)) + source_ori = planner._city_track._map.get_lane_orientation(world_source) + print ' Making Route from (',i, ',',j,') o (',source_ori[0],',',source_ori[1],')' + + for k in range(resolution[0]): + for l in range(resolution[1]): + world_target = planner._city_track._map.make_world_node((k,l)) + + target_ori = planner._city_track._map.get_lane_orientation(world_target) + print ' To (',k, ',',l,') o (',target_ori[0],',',target_ori[1],')' + + path_distance=planner.get_shortest_path_distance( + world_source,source_ori,world_target,target_ori) + + print 'Distance is ',path_distance + command=planner.get_next_command( + world_source,source_ori,world_target,target_ori) + print 'Command is ',command + print 'Latest Route ',planner._city_track._route \ No newline at end of file From a371b6347c6a31b633eb9cfda65fdbf0321c64ba Mon Sep 17 00:00:00 2001 From: felipecode Date: Thu, 14 Dec 2017 16:50:01 +0100 Subject: [PATCH 013/121] Fixed some wrong positions on corl benchmark --- PythonClient/carla/benchmarks/corl.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/PythonClient/carla/benchmarks/corl.py b/PythonClient/carla/benchmarks/corl.py index b9ac67bff..379400cdd 100644 --- a/PythonClient/carla/benchmarks/corl.py +++ b/PythonClient/carla/benchmarks/corl.py @@ -88,20 +88,21 @@ class CoRL(Benchmark): def _poses_town01(self): """ - For each matrix is a new task + Each matrix is a new task """ def _poses_straight(): return [[36,40],[39,35],[110,114],[7,3],[0,4],\ [68,50],[61,59],[47,64],[147,90],[33,87],\ [26,19],[80,76],[45,49],[55,44],[29,107],\ - [95,104],[34,84],[51,67],[22,17],[91,148],\ + [95,104],[84,34],[53,67],[22,17],[91,148],\ [20,107],[78,70],[95,102],[68,44],[45,69]] + def _poses_one_curve(): - return [[138,17],[46,16],[26,9],[42,49],[140,26],\ - [85,97],[65,133],[137,51],[76,66],[46,39],\ - [40,60],[1,28],[4,129],[121,107],[2,129],\ + return [[138,17],[47,16],[26,9],[42,49],[140,124],\ + [85,98],[65,133],[137,51],[76,66],[46,39],\ + [40,60],[0,29],[4,129],[121,140],[2,129],\ [78,44],[68,85],[41,102],[95,70],[68,129],\ [84,69],[47,79],[110,15],[130,17],[0,17]] From d2a5a717679c8bbfa83ab9354c23494a7fda4919 Mon Sep 17 00:00:00 2001 From: felipecode Date: Thu, 14 Dec 2017 17:38:08 +0100 Subject: [PATCH 014/121] Planner --- PythonClient/carla/benchmarks/corl.py | 4 ++-- PythonClient/carla/planner/planner.py | 15 ++++++++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/PythonClient/carla/benchmarks/corl.py b/PythonClient/carla/benchmarks/corl.py index 379400cdd..102959a96 100644 --- a/PythonClient/carla/benchmarks/corl.py +++ b/PythonClient/carla/benchmarks/corl.py @@ -125,7 +125,7 @@ class CoRL(Benchmark): def _poses_straight(): - return [[38, 34], [4, 2], [12, 10], [62, 55], [43, 47],\ + return [[38, 34], [4, 2], [12, 10], [62, 55], [43, 47],\ [64, 66], [78, 76],[59,57],[61,18],[35,39],\ [12,8],[0,18],[75,68],[54,60],[45,49],\ [46,42],[53,46],[80,29],[65,63],[0,81],\ @@ -135,7 +135,7 @@ class CoRL(Benchmark): return [[37, 76], [8, 24], [60, 69], [38, 10], [21, 1],\ [58,71],[74,32],[44,0],[71,16],[14,24],\ [34,11],[43,14],[75,16],[80,21],[3,23],\ - [75,59],[50,47],[11,19],[77,34],[79,25] ,\ + [75,59],[50,47],[11,19],[77,34],[79,25],\ [40,63],[58,76],[79,55],[16,61],[27,11]] def _poses_navigation(): diff --git a/PythonClient/carla/planner/planner.py b/PythonClient/carla/planner/planner.py index 05608cdfc..e8dd83094 100644 --- a/PythonClient/carla/planner/planner.py +++ b/PythonClient/carla/planner/planner.py @@ -40,11 +40,7 @@ class Planner(object): self._city_track = CityTrack(city_name) - #self.previous_source = (0, 0) - ##self.distance = 0 - #self.complete_distance = 0 - # print self.map_image self._commands = [] #self.route = [] @@ -135,8 +131,10 @@ class Planner(object): current_pos = node_iter # We multiply by these values to convert distance to world coordinates - return distance *50.0*16.42 # , maybe this goes to another layer + return distance *self._city_track._map.pixel_density \ + *self._city_track._map._graph._node_density + def is_there_posible_route(self,source,source_ori,target,target_ori): @@ -147,6 +145,13 @@ class Planner(object): return not self._city_track.compute_route( node_source,source_ori,node_target,target_ori) == None + def test_position(self,source,source_ori): + + + node_source = self._city_track.project_node(source,source_ori) + + return self.is_away_from_intersection(node_source) + # from the shortest path graph, transform it into a list of commands From f4f238f248f1af41b66cff70d25c606ace5f5938 Mon Sep 17 00:00:00 2001 From: felipecode Date: Fri, 15 Dec 2017 15:06:17 +0100 Subject: [PATCH 015/121] Benchmark small changes --- PythonClient/carla/benchmarks/benchmark.py | 30 ++++++++++++++++----- PythonClient/carla/benchmarks/experiment.py | 1 - PythonClient/run_benchmark.py | 2 +- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index 2d0e1021e..88d0c1435 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -22,7 +22,7 @@ sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) class Benchmark(object,): # Param @name to be used for saving purposes - def __init__(self, city_name, name_to_save, continue_exp=False): + def __init__(self, city_name, name_to_save, continue_exp=False,save_images=False): # The name of the city that is going to be used. self._city_name = city_name # Sends a base name, the rest will be saved with respect to what the @@ -91,7 +91,14 @@ class Benchmark(object,): now.strftime("%Y%m%d%H%M")), 'wb') as f: pass - def run_navigation_episode(self, agent, carla, time_out, target): + + self._save_images = save_images + self._image_filename_format = os.path.join(self._full_name, + '_images/episode_{:s}/{:s}/image_{:0>5d}.jpg') + + + + def run_navigation_episode(self, agent, carla, time_out, target,episode_name): curr_x = -1 curr_y = -1 @@ -108,6 +115,7 @@ class Benchmark(object,): distance = 100000 measurement_vec = [] + frame = 0 while((t1-t0) < (time_out*1000) and not success): capture_time = time.time() measurements, sensor_data = carla.read_data() @@ -118,6 +126,11 @@ class Benchmark(object,): carla.send_control(control) # meassure distance to target + if self._save_images: + for name, image in sensor_data.items(): + image.save_to_disk(self._image_filename_format.format( + episode_name, name, frame)) + prev_x = curr_x prev_y = curr_y @@ -139,6 +152,8 @@ class Benchmark(object,): if(distance < 200.0): success = True + frame +=1 + if(success): return (1, measurement_vec, float(t1-t0)/1000.0, distance) else: @@ -192,7 +207,10 @@ class Benchmark(object,): # running the agent (result, reward_vec, final_time, remaining_distance) = \ self.run_navigation_episode( - agent, carla, time_out, positions[end_point]) + agent, carla, time_out, positions[end_point], + str(experiment.Conditions.WeatherId) + '_' + + str(experiment.id) +'_'+ str(start_point) + + '.' + str(end_point)) # compute stats for the experiment @@ -200,7 +218,7 @@ class Benchmark(object,): experiment, pose, rep, path_distance, remaining_distance, final_time, time_out, result) - self._write_reward_results(experiment, rep, reward_vec) + self._write_details_results(experiment, rep, reward_vec) if(result > 0): print('+++++ Target achieved in %f seconds! +++++' % @@ -232,10 +250,10 @@ class Benchmark(object,): w.writerow(self._dict_stats) - def _write_reward_results(self, experiment, rep, reward_vec): + def _write_details_results(self, experiment, rep, reward_vec): with open(os.path.join(self._full_name, - 'rewards_' + self._suffix_name), 'a+') as rfd: + 'details_' + self._suffix_name), 'a+') as rfd: rw = csv.DictWriter(rfd, self._dict_rewards.keys()) diff --git a/PythonClient/carla/benchmarks/experiment.py b/PythonClient/carla/benchmarks/experiment.py index 7c13c50b5..7ec9496c1 100644 --- a/PythonClient/carla/benchmarks/experiment.py +++ b/PythonClient/carla/benchmarks/experiment.py @@ -11,7 +11,6 @@ class Experiment(object): self.Poses = [[]] self.Repetitions = 1 - # self. ,vehicles,pedestrians,weather,cameras def set(self, **kwargs): for key, value in kwargs.items(): diff --git a/PythonClient/run_benchmark.py b/PythonClient/run_benchmark.py index 62a56eb14..8f600b9f6 100644 --- a/PythonClient/run_benchmark.py +++ b/PythonClient/run_benchmark.py @@ -71,7 +71,7 @@ if(__name__ == '__main__'): while True: try: with make_carla_client(args.host, args.port) as client: - corl= CoRL(city_name= args.city_name,name_to_save='test2') + corl= CoRL(city_name= args.city_name,name_to_save='details') agent = Manual(args.city_name) results = corl.benchmark_agent(agent,client) corl.plot_summary_test() From a7dacc22b8571c50309aef33c4928345ca19f65c Mon Sep 17 00:00:00 2001 From: nsubiron Date: Tue, 19 Dec 2017 12:24:22 +0100 Subject: [PATCH 016/121] Make run_benchmark executable and some clean up --- PythonClient/run_benchmark.py | 41 +++++++++++++++-------------------- 1 file changed, 17 insertions(+), 24 deletions(-) mode change 100644 => 100755 PythonClient/run_benchmark.py diff --git a/PythonClient/run_benchmark.py b/PythonClient/run_benchmark.py old mode 100644 new mode 100755 index 8f600b9f6..193320d33 --- a/PythonClient/run_benchmark.py +++ b/PythonClient/run_benchmark.py @@ -1,26 +1,26 @@ -import time -import sys +#!/usr/bin/env python3 + +# Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de +# Barcelona (UAB), and the INTEL Visual Computing Lab. +# +# This work is licensed under the terms of the MIT license. +# For a copy, see . import argparse import logging +import sys +import time - - -from carla.benchmarks.corl import CoRL from carla.benchmarks.agent import Agent +from carla.benchmarks.corl import CoRL +from carla.client import make_carla_client, VehicleControl from carla.tcp import TCPConnectionError -from carla.client import make_carla_client -try: - from carla import carla_server_pb2 as carla_protocol -except ImportError: - raise RuntimeError('cannot import "carla_server_pb2.py", run the protobuf compiler to generate this file') - class Manual(Agent): - def run_step(self,measurements,sensor_data,target): - control = carla_protocol.Control() + def run_step(self, measurements, sensor_data, target): + control = VehicleControl() control.steer = 0.0 control.throttle = 0.9 control.brake = 0.0 @@ -30,8 +30,7 @@ class Manual(Agent): return control -if(__name__ == '__main__'): - +if __name__ == '__main__': argparser = argparse.ArgumentParser(description=__doc__) argparser.add_argument( @@ -55,9 +54,7 @@ if(__name__ == '__main__'): metavar='C', default='Town01', help='plot the map of the current city' - +'(needs to match active map in server, options: Town01 or Town02)') - - + + '(needs to match active map in server, options: Town01 or Town02)') args = argparser.parse_args() @@ -66,14 +63,12 @@ if(__name__ == '__main__'): logging.info('listening to server %s:%s', args.host, args.port) - - while True: try: with make_carla_client(args.host, args.port) as client: - corl= CoRL(city_name= args.city_name,name_to_save='details') + corl = CoRL(city_name=args.city_name, name_to_save='details') agent = Manual(args.city_name) - results = corl.benchmark_agent(agent,client) + results = corl.benchmark_agent(agent, client) corl.plot_summary_test() corl.plot_summary_train() @@ -85,5 +80,3 @@ if(__name__ == '__main__'): except Exception as exception: logging.exception(exception) sys.exit(1) - - From fa34e359d013c79708376fd9b79d0723ae9c1086 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Tue, 19 Dec 2017 15:31:28 +0100 Subject: [PATCH 017/121] Some fixes for Python 3 --- .gitignore | 1 + PythonClient/carla/benchmarks/benchmark.py | 111 +++++++++---------- PythonClient/carla/planner/graph.py | 29 ++--- PythonClient/carla/planner/grid.py | 50 ++++----- PythonClient/carla/planner/planner.py | 120 +++++++++------------ 5 files changed, 140 insertions(+), 171 deletions(-) diff --git a/.gitignore b/.gitignore index fa06fd814..2aef97e3e 100644 --- a/.gitignore +++ b/.gitignore @@ -22,5 +22,6 @@ Util/Build .tags* .vs __pycache__ +_benchmarks_results _images core diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index 88d0c1435..92dd021e4 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -1,28 +1,27 @@ +from builtins import input -import os -import math -import time import csv -import json - import datetime +import math +import os +import time + +from carla.client import VehicleControl -try: - from carla import carla_server_pb2 as carla_protocol -except ImportError: - raise RuntimeError( - 'cannot import "carla_server_pb2.py' - +', run the protobuf compiler to generate this file') +def sldist(c1, c2): + return math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) -sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) - - -class Benchmark(object,): +class Benchmark(object): # Param @name to be used for saving purposes - def __init__(self, city_name, name_to_save, continue_exp=False,save_images=False): + def __init__( + self, + city_name, + name_to_save, + continue_exp=False, + save_images=False): # The name of the city that is going to be used. self._city_name = city_name # Sends a base name, the rest will be saved with respect to what the @@ -54,15 +53,14 @@ class Benchmark(object,): 'pos_y': -1 } - # Returns a experiment class that is build from a benchmark inherited # class self._experiments = self._build_experiments() self._suffix_name = self._get_experiments_names(self._experiments) self._full_name = os.path.join('_benchmarks_results', - self._base_name + '_' - + self._get_details() + '/') + self._base_name + '_' + + self._get_details() + '/') if self._experiment_exist(): # If continue_exp was set we continue directly, else we ask for @@ -70,8 +68,8 @@ class Benchmark(object,): self._line_on_file = self._get_last_position() else: - answer = str(raw_input("The experiment was already found in the files" - + ", Do you want to Continue ? \n")) + answer = input("The experiment was already found in the files" + + ", Do you want to Continue ? \n") if answer == 'Yes' or answer == 'y': self._line_on_file = self._get_last_position() else: @@ -88,36 +86,37 @@ class Benchmark(object,): # the number of times the experiments were run now = datetime.datetime.now() with open(os.path.join(self._full_name, - now.strftime("%Y%m%d%H%M")), 'wb') as f: + now.strftime("%Y%m%d%H%M")), 'w') as f: pass - self._save_images = save_images - self._image_filename_format = os.path.join(self._full_name, - '_images/episode_{:s}/{:s}/image_{:0>5d}.jpg') + self._image_filename_format = os.path.join( + self._full_name, '_images/episode_{:s}/{:s}/image_{:0>5d}.jpg') - - - def run_navigation_episode(self, agent, carla, time_out, target,episode_name): + def run_navigation_episode( + self, + agent, + carla, + time_out, + target, + episode_name): curr_x = -1 curr_y = -1 prev_x = -1 prev_y = -1 - + measurements, sensor_data = carla.read_data() - carla.send_control(carla_protocol.Control()) - + carla.send_control(VehicleControl()) + t0 = measurements.game_timestamp t1 = t0 success = False - distance = 100000 measurement_vec = [] frame = 0 - while((t1-t0) < (time_out*1000) and not success): - capture_time = time.time() + while((t1 - t0) < (time_out * 1000) and not success): measurements, sensor_data = carla.read_data() control = agent.run_step(measurements, sensor_data, target) @@ -131,7 +130,6 @@ class Benchmark(object,): image.save_to_disk(self._image_filename_format.format( episode_name, name, frame)) - prev_x = curr_x prev_y = curr_y curr_x = measurements.player_measurements.transform.location.x @@ -141,47 +139,43 @@ class Benchmark(object,): t1 = measurements.game_timestamp - - distance = sldist([curr_x, curr_y], [target.location.x, target.location.y]) - print('[d=%f] c_x = %f, c_y = %f ---> t_x = %f, t_y = %f' % - (float(distance), curr_x, curr_y, target.location.x, target.location.y)) + print( + '[d=%f] c_x = %f, c_y = %f ---> t_x = %f, t_y = %f' % + (float(distance), curr_x, curr_y, target.location.x, target.location.y)) if(distance < 200.0): success = True - frame +=1 + frame += 1 - if(success): - return (1, measurement_vec, float(t1-t0)/1000.0, distance) - else: - return (0, measurement_vec, time_out, distance) + if success: + return (1, measurement_vec, float(t1 - t0) / 1000.0, distance) + return (0, measurement_vec, time_out, distance) def benchmark_agent(self, agent, carla): if self._line_on_file == 0: # The fixed name considering all the experiments being run with open(os.path.join(self._full_name, - self._suffix_name), 'wb') as ofd: + self._suffix_name), 'w') as ofd: w = csv.DictWriter(ofd, self._dict_stats.keys()) w.writeheader() with open(os.path.join(self._full_name, - 'rewards_' + self._suffix_name), 'wb') as rfd: + 'rewards_' + self._suffix_name), 'w') as rfd: rw = csv.DictWriter(rfd, self._dict_rewards.keys()) rw.writeheader() start_task = 0 - start_pose = 0 + start_pose = 0 else: - (start_task,start_pose) = self._get_pose_and_task(self._line_on_file) - - print (' START ') - + (start_task, start_pose) = self._get_pose_and_task(self._line_on_file) + print(' START ') for experiment in self._experiments[start_task:]: @@ -209,13 +203,13 @@ class Benchmark(object,): self.run_navigation_episode( agent, carla, time_out, positions[end_point], str(experiment.Conditions.WeatherId) + '_' - + str(experiment.id) +'_'+ str(start_point) - + '.' + str(end_point)) + + str(experiment.id) + '_' + str(start_point) + + '.' + str(end_point)) # compute stats for the experiment self._write_summary_results( - experiment, pose, rep, path_distance, + experiment, pose, rep, path_distance, remaining_distance, final_time, time_out, result) self._write_details_results(experiment, rep, reward_vec) @@ -227,11 +221,9 @@ class Benchmark(object,): print('----- Timeout! -----') return self.get_all_statistics() - - def _write_summary_results(self, experiment, pose, rep, - path_distance, remaining_distance, - final_time, time_out, result): + path_distance, remaining_distance, + final_time, time_out, result): self._dict_stats['exp_id'] = experiment.id self._dict_stats['rep'] = rep @@ -278,8 +270,6 @@ class Benchmark(object,): rw.writerow(self._dict_rewards) - - # To be redefined on subclasses on how to calculate timeout for an episode def _calculate_time_out(self, distance): return 0 @@ -311,4 +301,3 @@ class Benchmark(object,): for i, l in enumerate(f): pass return i - diff --git a/PythonClient/carla/planner/graph.py b/PythonClient/carla/planner/graph.py index de22b1d43..00e1dc47f 100644 --- a/PythonClient/carla/planner/graph.py +++ b/PythonClient/carla/planner/graph.py @@ -1,24 +1,27 @@ import math -import numpy as np -from matplotlib import collections as mc import matplotlib.pyplot as plt +import numpy as np + +from matplotlib import collections as mc def string_to_node(string): vec = string.split(',') - return (int(vec[0]), int(vec[1])) def string_to_floats(string): vec = string.split(',') - return (float(vec[0]), float(vec[1]), float(vec[2])) -sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) -sldist3 = lambda c1, c2: math.sqrt( - (c2[0] - c1[0])**2 + (c2[1] - c1[1])**2 + (c2[2] - c1[2])**2) +def sldist(c1, c2): + return math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) + + +def sldist3(c1, c2): + return math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1]) + ** 2 + (c2[2] - c1[2])**2) class Graph(object): @@ -33,7 +36,7 @@ class Graph(object): self._edges = {} self._distances = {} self._node_density = 50 - if graph_file != None: + if graph_file is not None: with open(graph_file, 'r') as file: # Skipe the first four lines that lines_after_4 = file.readlines()[4:] @@ -61,8 +64,8 @@ class Graph(object): def project_pixel(self, pixel): node = [] - node.append((pixel[0])/self._node_density - 2) - node.append((pixel[1])/self._node_density - 2) + node.append((pixel[0]) / self._node_density - 2) + node.append((pixel[1]) / self._node_density - 2) return tuple(node) @@ -85,7 +88,7 @@ class Graph(object): start_to_goal = np.array([node[0] - v[0], node[1] - v[1]]) - print start_to_goal + print(start_to_goal) self.angles[v] = start_to_goal / np.linalg.norm(start_to_goal) @@ -115,8 +118,8 @@ class Graph(object): def plot_ori(self, c): line_len = 1 - lines = [[(p[0], p[1]), (p[0] + line_len*self._angles[p][0], p[1] + - line_len*self._angles[p][1])] for p in self.nodes] + lines = [[(p[0], p[1]), (p[0] + line_len * self._angles[p][0], + p[1] + line_len * self._angles[p][1])] for p in self.nodes] lc = mc.LineCollection(lines, linewidth=2, color='green') fig, ax = plt.subplots() ax.add_collection(lc) diff --git a/PythonClient/carla/planner/grid.py b/PythonClient/carla/planner/grid.py index 12bf8c602..12e0377e5 100644 --- a/PythonClient/carla/planner/grid.py +++ b/PythonClient/carla/planner/grid.py @@ -1,14 +1,14 @@ - import copy import numpy as np + def angle_between(v1, v2): return np.arccos(np.dot(v1, v2) / np.linalg.norm(v1) / np.linalg.norm(v2)) class Grid(object): - def __init__(self,graph): + def __init__(self, graph): self._graph = graph self._structure = self._make_structure() @@ -16,9 +16,6 @@ class Grid(object): #np.set_printoptions(linewidth=206, threshold=np.nan) - - - def search_on_grid(self, x, y): visit = [[0, 1], [0, -1], [1, 0], [1, 1], [1, -1], [-1, 0], [-1, 1], [-1, -1]] @@ -26,9 +23,10 @@ class Grid(object): scale = 1 while(self._structure[c_x, c_y] != 0): for offset in visit: - c_x, c_y = x + offset[0]*scale, y + offset[1]*scale + c_x, c_y = x + offset[0] * scale, y + offset[1] * scale - if c_x >= 0 and c_x < self._graph._resolution[0] and c_y >= 0 and c_y < self._graph._resolution[1]: + if c_x >= 0 and c_x < self._graph._resolution[ + 0] and c_y >= 0 and c_y < self._graph._resolution[1]: if self._structure[c_x, c_y] == 0: break else: @@ -37,20 +35,16 @@ class Grid(object): return (c_x, c_y) - - - - def get_wall_source(self, pos, pos_ori, target): free_nodes = self._get_adjacent_free_nodes(pos) - #print self._walls + # print self._walls final_walls = copy.copy(self._walls) - #print final_walls + # print final_walls heading_start = np.array([pos_ori[0], pos_ori[1]]) for adj in free_nodes: - start_to_goal = np.array([adj[0] - pos[0], adj[1] - pos[1]]) + start_to_goal = np.array([adj[0] - pos[0], adj[1] - pos[1]]) angle = angle_between(heading_start, start_to_goal) if (angle > 1.6 and adj != target): #self.grid[adj[0], adj[1]] = 1.0 @@ -67,7 +61,7 @@ class Grid(object): heading_start = np.array([pos_ori[0], pos_ori[1]]) for adj in free_nodes: - start_to_goal = np.array([adj[0] - pos[0], adj[1] - pos[1]]) + start_to_goal = np.array([adj[0] - pos[0], adj[1] - pos[1]]) angle = angle_between(heading_start, start_to_goal) if (angle < 1.0 and adj != source): @@ -78,10 +72,6 @@ class Grid(object): return final_walls - - - - def _draw_line(self, grid, xi, yi, xf, yf): if xf < xi: @@ -94,24 +84,27 @@ class Grid(object): yi = yf yf = aux - for i in range(xi, xf+1): + for i in range(xi, xf + 1): - for j in range(yi, yf+1): + for j in range(yi, yf + 1): grid[i, j] = 0.0 return grid def _make_structure(self): - structure =np.ones((self._graph._resolution[0], self._graph._resolution[1])) + structure = np.ones( + (self._graph._resolution[0], + self._graph._resolution[1])) - for key, connections in self._graph._edges.iteritems(): + for key, connections in self._graph._edges.items(): # draw a line for con in connections: # print key[0],key[1],con[0],con[1] - structure = self._draw_line(structure, key[0], key[1], con[0], con[1]) + structure = self._draw_line( + structure, key[0], key[1], con[0], con[1]) # print grid return structure @@ -125,6 +118,7 @@ class Grid(object): walls.add((i, j)) return walls + def _get_adjacent_free_nodes(self, pos): """ Acht nodes in total """ visit = [[0, 1], [0, -1], [1, 0], [1, 1], @@ -132,12 +126,12 @@ class Grid(object): adjacent = set() for offset in visit: - node = (pos[0] + offset[0], pos[1]+offset[1]) + node = (pos[0] + offset[0], pos[1] + offset[1]) - if (node[0] >= 0 and node[0] < self._graph._resolution[0] - and node[1] >= 0 and node[1] < self._graph._resolution[1]): + if (node[0] >= 0 and node[0] < self._graph._resolution[0] + and node[1] >= 0 and node[1] < self._graph._resolution[1]): if self._structure[node[0], node[1]] == 0.0: adjacent.add(node) - return adjacent \ No newline at end of file + return adjacent diff --git a/PythonClient/carla/planner/planner.py b/PythonClient/carla/planner/planner.py index e8dd83094..a1bef0cc7 100644 --- a/PythonClient/carla/planner/planner.py +++ b/PythonClient/carla/planner/planner.py @@ -1,17 +1,19 @@ -import math -import time import collections -import os +import math import numpy as np - +import os +import time from PIL import Image -from city_track import CityTrack +from . import city_track -compare = lambda x, y: collections.Counter(x) == collections.Counter(y) -""" +def compare(x, y): + return collections.Counter(x) == collections.Counter(y) + + +""" Constants Used for the high level commands """ @@ -19,14 +21,16 @@ REACH_GOAL = 0.0 GO_STRAIGHT = 5.0 TURN_RIGHT = 4.0 TURN_LEFT = 3.0 -LANE_FOLLOW =2.0 +LANE_FOLLOW = 2.0 # Auxiliary algebra function def angle_between(v1, v2): return np.arccos(np.dot(v1, v2) / np.linalg.norm(v1) / np.linalg.norm(v2)) -sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) + +def sldist(c1, c2): return math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) + def signal(v1, v2): return np.cross(v1, v2) / np.linalg.norm(v1) / np.linalg.norm(v2) @@ -34,12 +38,9 @@ def signal(v1, v2): class Planner(object): - def __init__(self, city_name): - - self._city_track = CityTrack(city_name) - + self._city_track = city_track.CityTrack(city_name) self._commands = [] @@ -52,47 +53,31 @@ class Planner(object): #self.node_density = 50.0 # This function converts the 2d map into a 3D one in a vector. - - - - - - - - - def get_next_command(self, source, source_ori, target, target_ori): - - + def get_next_command(self, source, source_ori, target, target_ori): # Take the world position and project it on the road. # The road is represented in a grid - track_source = self._city_track.project_node(source,source_ori) - track_target = self._city_track.project_node(target,target_ori) - - + track_source = self._city_track.project_node(source, source_ori) + track_target = self._city_track.project_node(target, target_ori) # reach the goal - if self._city_track.is_at_goal(track_source,track_target): + if self._city_track.is_at_goal(track_source, track_target): return REACH_GOAL - if (self._city_track.is_at_new_node(track_source) - and self._city_track.is_away_from_intersection(track_source)): + and self._city_track.is_away_from_intersection(track_source)): - - - route = self._city_track.compute_route(track_source,source_ori, - track_target,target_ori) - if route == None: + route = self._city_track.compute_route(track_source, source_ori, + track_target, target_ori) + if route is None: raise RuntimeError('Impossible to find route') - self._commands = self._route_to_commands(route) - - if self._city_track.is_far_away_from_route_intersection(track_source): + if self._city_track.is_far_away_from_route_intersection( + track_source): return LANE_FOLLOW else: if self._commands: @@ -101,7 +86,8 @@ class Planner(object): return LANE_FOLLOW else: - if self._city_track.is_far_away_from_route_intersection(track_source): + if self._city_track.is_far_away_from_route_intersection( + track_source): return LANE_FOLLOW # If there is computed commands @@ -110,19 +96,23 @@ class Planner(object): else: return LANE_FOLLOW - - def get_shortest_path_distance(self, source, source_ori, target, target_ori): + def get_shortest_path_distance( + self, + source, + source_ori, + target, + target_ori): distance = 0 - track_source = self._city_track.project_node(source,source_ori) - track_target = self._city_track.project_node(target,target_ori) + track_source = self._city_track.project_node(source, source_ori) + track_target = self._city_track.project_node(target, target_ori) current_pos = track_source - route = self._city_track.compute_route(track_source,source_ori, - track_target,target_ori) + route = self._city_track.compute_route(track_source, source_ori, + track_target, target_ori) # No Route, distance is zero - if route == None: + if route is None: return 0.0 for node_iter in route: @@ -131,35 +121,28 @@ class Planner(object): current_pos = node_iter # We multiply by these values to convert distance to world coordinates - return distance *self._city_track._map.pixel_density \ - *self._city_track._map._graph._node_density + return distance * self._city_track._map.pixel_density \ + * self._city_track._map._graph._node_density - + def is_there_posible_route(self, source, source_ori, target, target_ori): - def is_there_posible_route(self,source,source_ori,target,target_ori): + track_source = self._city_track.project_node(source, source_ori) + track_target = self._city_track.project_node(target, target_ori) - track_source = self._city_track.project_node(source,source_ori) - track_target = self._city_track.project_node(target,target_ori) + return not self._city_track.compute_route( + node_source, source_ori, node_target, target_ori) is None + def test_position(self, source, source_ori): - return not self._city_track.compute_route( - node_source,source_ori,node_target,target_ori) == None - - def test_position(self,source,source_ori): - - - node_source = self._city_track.project_node(source,source_ori) - - return self.is_away_from_intersection(node_source) - + node_source = self._city_track.project_node(source, source_ori) + return self.is_away_from_intersection(node_source) # from the shortest path graph, transform it into a list of commands # @param the sub graph containing the shortest path # @param Orientation of the car # returns list of commands ( 3 is left, 4 is right, 5 is straight) - def _route_to_commands(self, route): commands_list = [] @@ -169,13 +152,13 @@ class Planner(object): continue current = route[i] - past = route[i-1] - future = route[i+1] + past = route[i - 1] + future = route[i + 1] past_to_current = np.array( - [current[0]-past[0], current[1]-past[1]]) + [current[0] - past[0], current[1] - past[1]]) current_to_future = np.array( - [future[0]-current[0], future[1]-current[1]]) + [future[0] - current[0], future[1] - current[1]]) angle = signal(current_to_future, past_to_current) command = 0.0 @@ -189,4 +172,3 @@ class Planner(object): commands_list.append(command) return commands_list - From 463757c21464a9dd22492f73dd39f6ca22a5ca65 Mon Sep 17 00:00:00 2001 From: felipecode Date: Wed, 20 Dec 2017 10:52:31 -0200 Subject: [PATCH 018/121] Cleaning classes, adding abstract class. --- PythonClient/carla/benchmarks/agent.py | 65 ++---- PythonClient/carla/benchmarks/benchmark.py | 187 +++++++++++------- .../benchmarks/{corl.py => corl_2017.py} | 70 ++++--- PythonClient/carla/benchmarks/experiment.py | 1 - PythonClient/carla/benchmarks/metrics.py | 5 +- PythonClient/carla/planner/astar.py | 1 - PythonClient/carla/planner/bezier.py | 37 ---- PythonClient/carla/planner/city_track.py | 20 +- PythonClient/carla/planner/graph.py | 2 - PythonClient/carla/planner/grid.py | 9 +- PythonClient/carla/planner/map.py | 54 +---- PythonClient/carla/planner/planner.py | 42 ++-- PythonClient/carla/planner/test_planner.py | 41 ---- PythonClient/carla/planner/topology.py | 78 -------- PythonClient/run_benchmark.py | 18 +- 15 files changed, 223 insertions(+), 407 deletions(-) rename PythonClient/carla/benchmarks/{corl.py => corl_2017.py} (77%) delete mode 100644 PythonClient/carla/planner/bezier.py delete mode 100644 PythonClient/carla/planner/test_planner.py delete mode 100644 PythonClient/carla/planner/topology.py diff --git a/PythonClient/carla/benchmarks/agent.py b/PythonClient/carla/benchmarks/agent.py index cb32c185e..63f4e7b77 100644 --- a/PythonClient/carla/benchmarks/agent.py +++ b/PythonClient/carla/benchmarks/agent.py @@ -1,33 +1,23 @@ #!/usr/bin/env python2 # -*- coding: utf-8 -*- -""" -Created on Sat Jun 10 19:12:37 2017 +# Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de +# Barcelona (UAB), and the INTEL Visual Computing Lab. +# +# This work is licensed under the terms of the MIT license. +# For a copy, see . +# @author: german,felipecode + -@author: german,felipecode -""" from __future__ import print_function -import time -import math -from carla import sensor -from carla.sensor import Camera -from carla.settings import CarlaSettings -from carla.tcp import TCPConnectionError -from carla.util import print_over_same_line +import abc + from carla.planner.planner import Planner -from carla.carla_server_pb2 import Control - - - class Agent(object): def __init__(self,city_name, **kwargs): - import os - dir_path = os.path.dirname(__file__) - + __metaclass__ = abc.ABCMeta self._planner = Planner(city_name) - - def get_distance(self,start_point,end_point): path_distance=self._planner.get_shortest_path_distance( @@ -39,33 +29,12 @@ class Agent(object): return path_distance - - # Function to be redefined by the AI. - def run_step(self, data): - pass + @abc.abstractmethod + def run_step(self, measurements, sensor_data, target): + """ + Function to be redefined by an agent. + :param The measurements like speed, the image data and a target + :returns A carla Control object, with the steering/gas/brake for the agent + """ - -""" - def compute_distance(self, curr, prev, target): - # no history info - if(prev[0] == -1 and prev[1] == -1): - distance = math.sqrt((curr[0] - target[0])*(curr[0] - target[0]) + (curr[1] - target[1])*(curr[1] - target[1])) - else: - # distance point to segment - v1 = [target[0]-curr[0], target[1]-curr[1]] - v2 = [prev[0]-curr[0], prev[1]-curr[1]] - - w1 = v1[0]*v2[0] + v1[1]*v2[1] - w2 = v2[0]*v2[0] + v2[1]*v2[1] - t_hat = w1 / (w2 + 1e-4) - t_start = min(max(t_hat, 0.0), 1.0) - - s = [0, 0] - s[0] = curr[0] + t_start * (prev[0] - curr[0]) - s[1] = curr[1] + t_start * (prev[1] - curr[1]) - distance = math.sqrt((s[0] - target[0])*(s[0] - target[0]) + (s[1] - target[1])*(s[1] - target[1])) - - - return distance -""" diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index 92dd021e4..a895aa125 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -1,3 +1,12 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de +# Barcelona (UAB), and the INTEL Visual Computing Lab. +# +# This work is licensed under the terms of the MIT license. +# For a copy, see . + + from builtins import input import csv @@ -5,6 +14,8 @@ import datetime import math import os import time +import abc + from carla.client import VehicleControl @@ -15,17 +26,22 @@ def sldist(c1, c2): class Benchmark(object): - # Param @name to be used for saving purposes + """ + The Benchmark class, controls the execution of the benchmark by an + Agent class. + The benchmark class must be inherited + """ def __init__( self, city_name, name_to_save, - continue_exp=False, + continue_experiment=False, save_images=False): - # The name of the city that is going to be used. + + __metaclass__ = abc.ABCMeta + self._city_name = city_name - # Sends a base name, the rest will be saved with respect to what the - # episode was about + self._base_name = name_to_save self._dict_stats = {'exp_id': -1, 'rep': -1, @@ -37,8 +53,6 @@ class Benchmark(object): 'final_distance': -1, 'final_time': -1, 'time_out': -1 - - } self._dict_rewards = {'exp_id': -1, @@ -53,41 +67,12 @@ class Benchmark(object): 'pos_y': -1 } - # Returns a experiment class that is build from a benchmark inherited - # class + # Get the line for the experiment to be continued + self._line_on_file = self._continue_experiment(continue_experiment) self._experiments = self._build_experiments() - self._suffix_name = self._get_experiments_names(self._experiments) - self._full_name = os.path.join('_benchmarks_results', - self._base_name + '_' - + self._get_details() + '/') - - if self._experiment_exist(): - # If continue_exp was set we continue directly, else we ask for - if continue_exp: - self._line_on_file = self._get_last_position() - - else: - answer = input("The experiment was already found in the files" - + ", Do you want to Continue ? \n") - if answer == 'Yes' or answer == 'y': - self._line_on_file = self._get_last_position() - else: - self._line_on_file = 0 - - else: - self._line_on_file = 0 - - folder = os.path.dirname(self._full_name) - if not os.path.isdir(folder): - os.makedirs(folder) - - # Make a date file: to show when this was modified, - # the number of times the experiments were run - now = datetime.datetime.now() - with open(os.path.join(self._full_name, - now.strftime("%Y%m%d%H%M")), 'w') as f: - pass + # Create the log files and get the names + self._suffix_name, self._full_name = self._create_log_record(self._experiments) self._save_images = save_images self._image_filename_format = os.path.join( @@ -101,22 +86,17 @@ class Benchmark(object): target, episode_name): - curr_x = -1 - curr_y = -1 - prev_x = -1 - prev_y = -1 - measurements, sensor_data = carla.read_data() carla.send_control(VehicleControl()) t0 = measurements.game_timestamp t1 = t0 success = False - - distance = 100000 measurement_vec = [] frame = 0 - while((t1 - t0) < (time_out * 1000) and not success): + distance = 10000 + + while(t1 - t0) < (time_out * 1000) and not success: measurements, sensor_data = carla.read_data() control = agent.run_step(measurements, sensor_data, target) @@ -124,14 +104,12 @@ class Benchmark(object): control.throttle, 'Brake ', control.brake) carla.send_control(control) - # meassure distance to target + # measure distance to target if self._save_images: for name, image in sensor_data.items(): image.save_to_disk(self._image_filename_format.format( episode_name, name, frame)) - prev_x = curr_x - prev_y = curr_y curr_x = measurements.player_measurements.transform.location.x curr_y = measurements.player_measurements.transform.location.y @@ -146,14 +124,14 @@ class Benchmark(object): '[d=%f] c_x = %f, c_y = %f ---> t_x = %f, t_y = %f' % (float(distance), curr_x, curr_y, target.location.x, target.location.y)) - if(distance < 200.0): + if distance < 200.0: success = True frame += 1 if success: - return (1, measurement_vec, float(t1 - t0) / 1000.0, distance) - return (0, measurement_vec, time_out, distance) + return 1, measurement_vec, float(t1 - t0) / 1000.0, distance + return 0, measurement_vec, time_out, distance def benchmark_agent(self, agent, carla): @@ -166,7 +144,7 @@ class Benchmark(object): w.writeheader() with open(os.path.join(self._full_name, - 'rewards_' + self._suffix_name), 'w') as rfd: + 'details_' + self._suffix_name), 'w') as rfd: rw = csv.DictWriter(rfd, self._dict_rewards.keys()) rw.writeheader() @@ -270,23 +248,52 @@ class Benchmark(object): rw.writerow(self._dict_rewards) - # To be redefined on subclasses on how to calculate timeout for an episode - def _calculate_time_out(self, distance): - return 0 + def _create_log_record(self, base_name, experiments): + """ + This function creates the log files for the benchmark. - # To be redefined on subclasses - def _build_experiments(self): - pass + """ + suffix_name = self._get_experiments_names(experiments) + full_name = os.path.join('_benchmarks_results', + base_name + '_' + + self._get_details() + '/') - def _get_experiments_names(self, experiments): + folder = os.path.dirname(full_name) + if not os.path.isdir(folder): + os.makedirs(folder) - name_cat = 'w' + # Make a date file: to show when this was modified, + # the number of times the experiments were run + now = datetime.datetime.now() + with open(os.path.join(full_name, + now.strftime("%Y%m%d%H%M")), 'w') as f: + pass - for experiment in experiments: + return suffix_name,full_name + + def _continue_experiment(self, continue_experiment): + + if self._experiment_exist(): + + if continue_experiment: + line_on_file = self._get_last_position() + + else: + # Ask question, to avoid mistaken override situations + answer = input("The experiment was already found in the files" + + ",Do you want to continue (y/n) ? \n" + + " If not the experiment will be overwritten") + if answer == 'Yes' or answer == 'y': + line_on_file = self._get_last_position() + else: + line_on_file = 0 + + else: + line_on_file = 0 + + return line_on_file - name_cat += str(experiment.Conditions.WeatherId) + '.' - return name_cat def _experiment_exist(self): @@ -301,3 +308,51 @@ class Benchmark(object): for i, l in enumerate(f): pass return i + + # To be redefined on subclasses on how to calculate timeout for an episode + @abc.abstractmethod + def _calculate_time_out(self, distance): + pass + + + @abc.abstractmethod + def _build_experiments(self): + """ + Returns a set of experiments to be evaluated + Must be redefined in an inherited class. + + """ + pass + + @abc.abstractmethod + def _get_pose_and_task(self): + """ + Parse the experiment depending on number of poses and tasks + """ + pass + + @abc.abstractmethod + def plot_summary_train(self): + """ + returns the summary for the train weather/task episodes + + """ + + @abc.abstractmethod + def plot_summary_test(self): + """ + returns the summary for the test weather/task episodes + + """ + @staticmethod + def get_experiments_names(experiments): + + name_cat = 'w' + + for experiment in experiments: + + name_cat += str(experiment.Conditions.WeatherId) + '.' + + return name_cat + + diff --git a/PythonClient/carla/benchmarks/corl.py b/PythonClient/carla/benchmarks/corl_2017.py similarity index 77% rename from PythonClient/carla/benchmarks/corl.py rename to PythonClient/carla/benchmarks/corl_2017.py index 102959a96..274ea21e9 100644 --- a/PythonClient/carla/benchmarks/corl.py +++ b/PythonClient/carla/benchmarks/corl_2017.py @@ -21,18 +21,17 @@ from .metrics import compute_summary -class CoRL(Benchmark): +class CoRL2017(Benchmark): def get_all_statistics(self): summary = compute_summary(os.path.join( - self._full_name, self._suffix_name),[3]) + self._full_name, self._suffix_name),[3]) return summary - def plot_summary_train(self): @@ -88,29 +87,29 @@ class CoRL(Benchmark): def _poses_town01(self): """ - Each matrix is a new task + Each matrix is a new task. We have all the four tasks """ def _poses_straight(): - return [[36,40],[39,35],[110,114],[7,3],[0,4],\ - [68,50],[61,59],[47,64],[147,90],[33,87],\ - [26,19],[80,76],[45,49],[55,44],[29,107],\ - [95,104],[84,34],[53,67],[22,17],[91,148],\ + return [[36,40],[39,35],[110,114],[7,3],[0,4], + [68,50],[61,59],[47,64],[147,90],[33,87], + [26,19],[80,76],[45,49],[55,44],[29,107], + [95,104],[84,34],[53,67],[22,17],[91,148], [20,107],[78,70],[95,102],[68,44],[45,69]] def _poses_one_curve(): - return [[138,17],[47,16],[26,9],[42,49],[140,124],\ - [85,98],[65,133],[137,51],[76,66],[46,39],\ - [40,60],[0,29],[4,129],[121,140],[2,129],\ - [78,44],[68,85],[41,102],[95,70],[68,129],\ + return [[138,17],[47,16],[26,9],[42,49],[140,124], + [85,98],[65,133],[137,51],[76,66],[46,39], + [40,60],[0,29],[4,129],[121,140],[2,129], + [78,44],[68,85],[41,102],[95,70],[68,129], [84,69],[47,79],[110,15],[130,17],[0,17]] def _poses_navigation(): - return [[105,29],[27,130],[102,87],[132,27],[24,44],\ - [96,26],[34,67],[28,1],[140,134],[105,9],\ - [148,129],[65,18],[21,16],[147,97],[42,51],\ - [30,41],[18,107],[69,45],[102,95],[18,145],\ + return [[105,29],[27,130],[102,87],[132,27],[24,44], + [96,26],[34,67],[28,1],[140,134],[105,9], + [148,129],[65,18],[21,16],[147,97],[42,51], + [30,41],[18,107],[69,45],[102,95],[18,145], [111,64],[79,45],[84,69],[73,31],[37,81]] @@ -125,25 +124,25 @@ class CoRL(Benchmark): def _poses_straight(): - return [[38, 34], [4, 2], [12, 10], [62, 55], [43, 47],\ - [64, 66], [78, 76],[59,57],[61,18],[35,39],\ - [12,8],[0,18],[75,68],[54,60],[45,49],\ - [46,42],[53,46],[80,29],[65,63],[0,81],\ + return [[38, 34], [4, 2], [12, 10], [62, 55], [43, 47], + [64, 66], [78, 76],[59,57],[61,18],[35,39], + [12,8],[0,18],[75,68],[54,60],[45,49], + [46,42],[53,46],[80,29],[65,63],[0,81], [54,63],[51,42],[16,19],[17,26],[77,68]] def _poses_one_curve(): - return [[37, 76], [8, 24], [60, 69], [38, 10], [21, 1],\ - [58,71],[74,32],[44,0],[71,16],[14,24],\ - [34,11],[43,14],[75,16],[80,21],[3,23],\ - [75,59],[50,47],[11,19],[77,34],[79,25],\ + return [[37, 76], [8, 24], [60, 69], [38, 10], [21, 1], + [58,71],[74,32],[44,0],[71,16],[14,24], + [34,11],[43,14],[75,16],[80,21],[3,23], + [75,59],[50,47],[11,19],[77,34],[79,25], [40,63],[58,76],[79,55],[16,61],[27,11]] def _poses_navigation(): - return [[19,66],[79,14],[19,57],[23,1],\ - [53,76],[42,13],[31,71],[33,5],\ - [54,30],[10,61],[66,3],[27,12],\ - [79,19],[2,29],[16,14],[5,57],\ - [70,73],[46,67],[57,50],[61,49],[21,12],\ + return [[19,66],[79,14],[19,57],[23,1], + [53,76],[42,13],[31,71],[33,5], + [54,30],[10,61],[66,3],[27,12], + [79,19],[2,29],[16,14],[5,57], + [70,73],[46,67],[57,50],[61,49],[21,12], [51,81],[77,68],[56,65],[43,54]] return [ _poses_straight(), @@ -213,20 +212,19 @@ class CoRL(Benchmark): experiment = Experiment() experiment.set( - Conditions=conditions, - Poses= poses, - Id = iteration, - Repetitions = 1 - ) + Conditions=conditions, + Poses=poses, + Id=iteration, + Repetitions=1 + ) experiments_vector.append(experiment) return experiments_vector def _get_details(self): - now = datetime.datetime.now() # Function to get automatic information from the experiment for writing purposes - return 'corl_' + self._city_name + return 'corl2017_' + self._city_name def _get_pose_and_task(self,line_on_file): diff --git a/PythonClient/carla/benchmarks/experiment.py b/PythonClient/carla/benchmarks/experiment.py index 7ec9496c1..4340d5599 100644 --- a/PythonClient/carla/benchmarks/experiment.py +++ b/PythonClient/carla/benchmarks/experiment.py @@ -11,7 +11,6 @@ class Experiment(object): self.Poses = [[]] self.Repetitions = 1 - def set(self, **kwargs): for key, value in kwargs.items(): if not hasattr(self, key): diff --git a/PythonClient/carla/benchmarks/metrics.py b/PythonClient/carla/benchmarks/metrics.py index 46e22e316..d55064b23 100644 --- a/PythonClient/carla/benchmarks/metrics.py +++ b/PythonClient/carla/benchmarks/metrics.py @@ -8,10 +8,8 @@ import numpy as np import math import os -import matplotlib.pyplot as plt -import argparse sldist = lambda c1, c2: math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) flatten = lambda l: [item for sublist in l for item in sublist] @@ -182,8 +180,7 @@ def compute_summary(file, dynamic_episodes): lane_road = get_out_of_road_lane( task_reward_matrix, header_rewards) colisions = get_colisions(task_reward_matrix, header_rewards) - infractions = [lane_road[0]/km_run, lane_road[1]/km_run, - colisions[0]/km_run, colisions[1]/km_run, colisions[2]/km_run] + metrics_dictionary['intersection_offroad'][ diff --git a/PythonClient/carla/planner/astar.py b/PythonClient/carla/planner/astar.py index e9b3d4b70..7ebc90c10 100644 --- a/PythonClient/carla/planner/astar.py +++ b/PythonClient/carla/planner/astar.py @@ -1,6 +1,5 @@ import heapq -from carla.planner.map import CarlaMap class Cell(object): diff --git a/PythonClient/carla/planner/bezier.py b/PythonClient/carla/planner/bezier.py deleted file mode 100644 index 04e46d150..000000000 --- a/PythonClient/carla/planner/bezier.py +++ /dev/null @@ -1,37 +0,0 @@ -import numpy as np -from scipy.misc import comb - -def bernstein_poly(i, n, t): - """ - The Bernstein polynomial of n, i as a function of t - """ - - return comb(n, i) * ( t**(n-i) ) * (1 - t)**i - - -def bezier_curve(points, nTimes=1000): - """ - Given a set of control points, return the - bezier curve defined by the control points. - - points should be a list of lists, or list of tuples - such as [ [1,1], - [2,3], - [4,5], ..[Xn, Yn] ] - nTimes is the number of time steps, defaults to 1000 - - See http://processingjs.nihongoresources.com/bezierinfo/ - """ - - nPoints = len(points) - xPoints = np.array([p[0] for p in points]) - yPoints = np.array([p[1] for p in points]) - - t = np.linspace(0.0, 1.0, nTimes) - - polynomial_array = np.array([ bernstein_poly(i, nPoints-1, t) for i in range(0, nPoints) ]) - - xvals = np.dot(xPoints, polynomial_array) - yvals = np.dot(yPoints, polynomial_array) - - return xvals, yvals diff --git a/PythonClient/carla/planner/city_track.py b/PythonClient/carla/planner/city_track.py index f1adbde20..949a5b19e 100644 --- a/PythonClient/carla/planner/city_track.py +++ b/PythonClient/carla/planner/city_track.py @@ -22,15 +22,12 @@ class CityTrack(object): # Refers to the start position of the previous route computation self._previous_node = [] - # The current computed rout - + # The current computed route self._route =None - - def project_node(self,position,node_orientation): """ Projecting the graph node into the city road @@ -92,13 +89,7 @@ class CityTrack(object): self._previous_node = node_source - #print node_source - #print node_target - #print self._map.get_walls_directed(node_source,source_ori, - # node_target,target_ori) - #print self._map.get_graph_resolution() - #print self._map.get_walls() - #print 's ',node_source,'e ',node_target + a_star =AStar() a_star.init_grid(self._map.get_graph_resolution()[0], self._map.get_graph_resolution()[1], @@ -111,8 +102,8 @@ class CityTrack(object): - #print route # JuSt a Corner Case - # REALLY, I want to remove this + # JuSt a Corner Case + # TODO: Clean this to avoid having to use this function if route == None: a_star =AStar() a_star.init_grid(self._map.get_graph_resolution()[0], @@ -127,8 +118,6 @@ class CityTrack(object): return route - - def _closest_intersection_position(self, current_node): distance_vector = [] @@ -153,7 +142,6 @@ class CityTrack(object): def get_distance_closest_node_route(self, pos, route): import collections distance = [] - # if self.graph.intersection_nodes() == set(): for node_iter in route: diff --git a/PythonClient/carla/planner/graph.py b/PythonClient/carla/planner/graph.py index 00e1dc47f..216fc4fa4 100644 --- a/PythonClient/carla/planner/graph.py +++ b/PythonClient/carla/planner/graph.py @@ -83,8 +83,6 @@ class Graph(object): self._angles[node] = heading for k, v in distance_dic.iteritems(): - # print k - # print v start_to_goal = np.array([node[0] - v[0], node[1] - v[1]]) diff --git a/PythonClient/carla/planner/grid.py b/PythonClient/carla/planner/grid.py index 12e0377e5..01d9eb9f1 100644 --- a/PythonClient/carla/planner/grid.py +++ b/PythonClient/carla/planner/grid.py @@ -14,7 +14,6 @@ class Grid(object): self._structure = self._make_structure() self._walls = self._make_walls() - #np.set_printoptions(linewidth=206, threshold=np.nan) def search_on_grid(self, x, y): visit = [[0, 1], [0, -1], [1, 0], [1, 1], @@ -47,10 +46,9 @@ class Grid(object): start_to_goal = np.array([adj[0] - pos[0], adj[1] - pos[1]]) angle = angle_between(heading_start, start_to_goal) if (angle > 1.6 and adj != target): - #self.grid[adj[0], adj[1]] = 1.0 final_walls.add((adj[0], adj[1])) - #self.walls.add((adj[0], adj[1])) + return final_walls @@ -65,10 +63,9 @@ class Grid(object): angle = angle_between(heading_start, start_to_goal) if (angle < 1.0 and adj != source): - #self.grid[adj[0], adj[1]] = 1.0 final_walls.add((adj[0], adj[1])) - #self.walls.add((adj[0], adj[1])) + return final_walls @@ -120,7 +117,7 @@ class Grid(object): return walls def _get_adjacent_free_nodes(self, pos): - """ Acht nodes in total """ + """ Eight nodes in total """ visit = [[0, 1], [0, -1], [1, 0], [1, 1], [1, -1], [-1, 0], [-1, 1], [-1, -1]] diff --git a/PythonClient/carla/planner/map.py b/PythonClient/carla/planner/map.py index e71af686e..d43479057 100644 --- a/PythonClient/carla/planner/map.py +++ b/PythonClient/carla/planner/map.py @@ -22,7 +22,7 @@ except ImportError: from carla.planner.graph import Graph from carla.planner.grid import Grid -from carla.planner.graph import string_to_node,string_to_floats +from carla.planner.graph import string_to_node,string_to_floats def color_to_angle(color): @@ -30,41 +30,6 @@ def color_to_angle(color): - -""" - - with open(city_file + '.txt', 'r') as file: - - linewordloffset = file.readline() - # The offset of the world from the zero coordinates ( The - # coordinate we consider zero) - self.worldoffset = string_to_floats(linewordloffset) - - # WARNING: for now just considering the y angle - lineworldangles = file.readline() - self.angles = string_to_floats(lineworldangles) - #self.worldrotation = np.array([[math.cos(math.radians(self.angles[0])),0,math.sin(math.radians(self.angles[0])) ],[0,1,0],[-math.sin(math.radians(self.angles[0])),0,math.cos(math.radians(self.angles[0]))]]) - - self.worldrotation = np.array([[math.cos(math.radians(self.angles[2])), -math.sin(math.radians(self.angles[2])), 0.0], [ - math.sin(math.radians(self.angles[2])), math.cos(math.radians(self.angles[2])), 0.0], [0.0, 0.0, 1.0]]) - - # Ignore for now - lineworscale = file.readline() - - linemapoffset = file.readline() - - # The offset of the map zero coordinate - self.mapoffset = string_to_floats(linemapoffset) - - # the graph resolution. - linegraphres = file.readline() - self.resolution = string_to_node(linegraphres) - -""" - -# The map contains a graph - - class CarlaMap(object): def __init__(self, city): dir_path = os.path.dirname(__file__) @@ -230,9 +195,9 @@ class CarlaMap(object): def make_map_node(self, node): - pixel = [] - pixel.append((node[0] + 2) * self._graph._node_density) - pixel.append((node[1] + 2) * self._graph._node_density) + + pixel = [((node[0] + 2) * self._graph._node_density) + , ((node[1] + 2) * self._graph._node_density)] return pixel @@ -265,26 +230,21 @@ class CarlaMap(object): """ - #np.set_printoptions( linewidth =206,threshold=np.nan) - - #print self._grid._structure - final_walls = self._grid.get_wall_source(node_source,source_ori,node_target) - #print 'Returned final ',final_walls + final_walls = final_walls.union(self._grid.get_wall_target( - node_target,target_ori,node_source)) + node_target, target_ori, node_source)) return final_walls def get_walls(self): - return self._grid._walls def get_distance_closest_node(self, pos): - import collections + distance = [] for node_iter in self.graph.intersection_nodes(): diff --git a/PythonClient/carla/planner/planner.py b/PythonClient/carla/planner/planner.py index a1bef0cc7..b07f95f50 100644 --- a/PythonClient/carla/planner/planner.py +++ b/PythonClient/carla/planner/planner.py @@ -1,10 +1,9 @@ import collections import math -import numpy as np -import os -import time -from PIL import Image + +import numpy as np + from . import city_track @@ -44,19 +43,17 @@ class Planner(object): self._commands = [] - #self.route = [] - - # The number of game units per pixel - #self.pixel_density = 16.43 - # A pixel positions with respect to graph node position is: Pixel = - # Node*50 +2 - #self.node_density = 50.0 - # This function converts the 2d map into a 3D one in a vector. def get_next_command(self, source, source_ori, target, target_ori): + """ + Computes the full plan and returns the next command, + :param source: source position + :param source_ori: source orientation + :param target: target position + :param target_ori: target orientation + :return: a command ( Straight,Lane Follow, Left or Right) + """ - # Take the world position and project it on the road. - # The road is represented in a grid track_source = self._city_track.project_node(source, source_ori) track_target = self._city_track.project_node(target, target_ori) @@ -130,7 +127,7 @@ class Planner(object): track_target = self._city_track.project_node(target, target_ori) return not self._city_track.compute_route( - node_source, source_ori, node_target, target_ori) is None + track_source, source_ori, track_target, target_ori) is None def test_position(self, source, source_ori): @@ -138,13 +135,18 @@ class Planner(object): return self.is_away_from_intersection(node_source) - # from the shortest path graph, transform it into a list of commands - # @param the sub graph containing the shortest path - # @param Orientation of the car - # returns list of commands ( 3 is left, 4 is right, 5 is straight) + def _route_to_commands(self, route): + """ + from the shortest path graph, transform it into a list of commands + + :param route: the sub graph containing the shortest path + :return: list of commands encoded from 0-5 + """ + + commands_list = [] for i in range(0, len(route)): @@ -161,7 +163,7 @@ class Planner(object): [future[0] - current[0], future[1] - current[1]]) angle = signal(current_to_future, past_to_current) - command = 0.0 + if angle < -0.1: command = TURN_RIGHT elif angle > 0.1: diff --git a/PythonClient/carla/planner/test_planner.py b/PythonClient/carla/planner/test_planner.py deleted file mode 100644 index 667d350e0..000000000 --- a/PythonClient/carla/planner/test_planner.py +++ /dev/null @@ -1,41 +0,0 @@ -from carla import sensor -from carla.sensor import Camera -from carla.settings import CarlaSettings -from carla.tcp import TCPConnectionError -from carla.util import print_over_same_line -from carla.planner.planner import Planner - -from carla.carla_server_pb2 import Control - - - - -planner= Planner('Town01') - - - - -resolution = planner._city_track._map.get_graph_resolution() - -for i in range(resolution[0]): - for j in range(resolution[1]): - - world_source = planner._city_track._map.make_world_node((i,j)) - source_ori = planner._city_track._map.get_lane_orientation(world_source) - print ' Making Route from (',i, ',',j,') o (',source_ori[0],',',source_ori[1],')' - - for k in range(resolution[0]): - for l in range(resolution[1]): - world_target = planner._city_track._map.make_world_node((k,l)) - - target_ori = planner._city_track._map.get_lane_orientation(world_target) - print ' To (',k, ',',l,') o (',target_ori[0],',',target_ori[1],')' - - path_distance=planner.get_shortest_path_distance( - world_source,source_ori,world_target,target_ori) - - print 'Distance is ',path_distance - command=planner.get_next_command( - world_source,source_ori,world_target,target_ori) - print 'Command is ',command - print 'Latest Route ',planner._city_track._route \ No newline at end of file diff --git a/PythonClient/carla/planner/topology.py b/PythonClient/carla/planner/topology.py deleted file mode 100644 index 6d21a5650..000000000 --- a/PythonClient/carla/planner/topology.py +++ /dev/null @@ -1,78 +0,0 @@ - - - # Projecting the nodes - node_source = self.make_node(source) - node_target = self.make_node(target) - - source_ori = np.array([source_ori[0], source_ori[1], source_ori[2]]) - source_ori = source_ori.dot(self.worldrotation) - - # Trunkate ! - node_source = tuple([int(x) for x in node_source]) - node_target = tuple([int(x) for x in node_target]) - #target_ori = self.get_target_ori(target) - # Set to zero if it is less than zero. - - target_ori = np.array([target_ori[0], target_ori[1], 0]) - target_ori = target_ori.dot(self.worldrotation) - - node_source = (max(0, node_source[0]), max(0, node_source[1])) - node_source = (min(self.resolution[ - 0]-1, node_source[0]), min(self.resolution[1]-1, node_source[1])) - - - # is it x or y ? Check to avoid special corner cases - - if math.fabs(source_ori[0]) > math.fabs(source_ori[1]): - source_ori = (source_ori[0], 0.0, 0.0) - else: - source_ori = (0.0, source_ori[1], 0.0) - - node_source = self.search(node_source[0], node_source[1]) - node_target = self.search(node_target[0], node_target[1]) - - def _route_compute(self,node_source,source_ori,node_target,target_ori): - - - # GOes to Grid - #added_walls = self.set_grid_direction(node_source,source_ori,node_target) - #print added_walls - # Goes to Walls - #added_walls=added_walls.union(self.set_grid_direction_target(node_target,target_ori,node_source)) - #print added_walls - - - self.previous_source = node_source - - #print self.grid - - #self.a_star =AStar() - self.init(node_source, node_target) - self.route = self.solve() - #print route # JuSt a Corner Case - if self.route == None: - for i in added_walls: - self.walls.remove(i) - - self.grid[i[0],i[1]] = 0.0 - added_walls = self.set_grid_direction(node_source,source_ori,node_target) - self.a_star =AStar() - self.init(node_source, node_target) - self.route = self.solve() - - - for i in added_walls: - self.walls.remove(i) - - self.grid[i[0],i[1]] = 0.0 - - - - return self.route - - # This is to avoid computing a new route when inside the route - # distance_node = self.get_distance_closest_node(node_source) - # Planner shouldnt have knowledge about node - - #if (distance_node > 1 \ - # and self.previous_source != node_source) or self.complete_distance == 0: diff --git a/PythonClient/run_benchmark.py b/PythonClient/run_benchmark.py index 193320d33..81d65ae53 100755 --- a/PythonClient/run_benchmark.py +++ b/PythonClient/run_benchmark.py @@ -12,13 +12,17 @@ import sys import time from carla.benchmarks.agent import Agent -from carla.benchmarks.corl import CoRL +from carla.benchmarks.corl_2017 import CoRL2017 from carla.client import make_carla_client, VehicleControl from carla.tcp import TCPConnectionError class Manual(Agent): + """ + Sample redefinition of the Agent, + An agent that goes straight + """ def run_step(self, measurements, sensor_data, target): control = VehicleControl() control.steer = 0.0 @@ -53,8 +57,14 @@ if __name__ == '__main__': '-c', '--city-name', metavar='C', default='Town01', - help='plot the map of the current city' - + '(needs to match active map in server, options: Town01 or Town02)') + help='The town that is going to be used on benchmark' + + '(needs to match active town in server, options: Town01 or Town02)') + argparser.add_argument( + '-n', '--log_name', + metavar='T', + default='test', + help='The name of the log file to be created by the scripts' + ) args = argparser.parse_args() @@ -66,7 +76,7 @@ if __name__ == '__main__': while True: try: with make_carla_client(args.host, args.port) as client: - corl = CoRL(city_name=args.city_name, name_to_save='details') + corl = CoRL2017(city_name=args.city_name, name_to_save=args.log_name) agent = Manual(args.city_name) results = corl.benchmark_agent(agent, client) corl.plot_summary_test() From 209f169ff2ae8c82979b31b6ba983056ffd41ba8 Mon Sep 17 00:00:00 2001 From: felipecode Date: Wed, 20 Dec 2017 11:33:57 -0200 Subject: [PATCH 019/121] Testing a different import --- PythonClient/carla/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PythonClient/carla/client.py b/PythonClient/carla/client.py index 80fde992b..8a535d8ae 100644 --- a/PythonClient/carla/client.py +++ b/PythonClient/carla/client.py @@ -16,7 +16,7 @@ from . import tcp from . import util try: - from . import carla_server_pb2 as carla_protocol + from carla.carla_server_pb2 import carla_server_pb2 as carla_protocol except ImportError: raise RuntimeError('cannot import "carla_server_pb2.py", run the protobuf compiler to generate this file') From b7cd3438373f67c37d30e10a644885d64255df40 Mon Sep 17 00:00:00 2001 From: felipecode Date: Wed, 20 Dec 2017 11:36:29 -0200 Subject: [PATCH 020/121] Testing a different import --- PythonClient/carla/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PythonClient/carla/client.py b/PythonClient/carla/client.py index 8a535d8ae..80fde992b 100644 --- a/PythonClient/carla/client.py +++ b/PythonClient/carla/client.py @@ -16,7 +16,7 @@ from . import tcp from . import util try: - from carla.carla_server_pb2 import carla_server_pb2 as carla_protocol + from . import carla_server_pb2 as carla_protocol except ImportError: raise RuntimeError('cannot import "carla_server_pb2.py", run the protobuf compiler to generate this file') From 02fbb41bdab04e9c545ab4f2e42819ccf09bbe5a Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 20 Dec 2017 18:43:22 +0100 Subject: [PATCH 021/121] Remove trailing whitespace --- PythonClient/carla/benchmarks/corl_2017.py | 18 +++++++++--------- PythonClient/carla/benchmarks/metrics.py | 6 +++--- PythonClient/carla/client.py | 2 +- PythonClient/carla/planner/city_track.py | 8 ++++---- PythonClient/carla/planner/map.py | 2 +- PythonClient/manual_control.py | 2 +- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/PythonClient/carla/benchmarks/corl_2017.py b/PythonClient/carla/benchmarks/corl_2017.py index 274ea21e9..24a483bc4 100644 --- a/PythonClient/carla/benchmarks/corl_2017.py +++ b/PythonClient/carla/benchmarks/corl_2017.py @@ -29,7 +29,7 @@ class CoRL2017(Benchmark): summary = compute_summary(os.path.join( self._full_name, self._suffix_name),[3]) - return summary + return summary def plot_summary_train(self): @@ -44,13 +44,13 @@ class CoRL2017(Benchmark): def _plot_summary(self,weathers): - """ - We plot the summary of the testing for the set selected weathers. + """ + We plot the summary of the testing for the set selected weathers. The test weathers are [4,14] """ - + metrics_summary = compute_summary(os.path.join( self._full_name, self._suffix_name),[3]) @@ -61,7 +61,7 @@ class CoRL2017(Benchmark): for weather,tasks in values.items(): if weather in set(weathers): print(' Weather: ',weather) - count =0 + count =0 for t in tasks: print(' Task ',count,' -> ',t) @@ -153,7 +153,7 @@ class CoRL2017(Benchmark): def _build_experiments(self): - """ + """ Creates the whole set of experiment objects, The experiments created depend on the selected Town. """ @@ -208,7 +208,7 @@ class CoRL2017(Benchmark): ) # Add all the cameras that were set for this experiments - conditions.add_sensor(camera) + conditions.add_sensor(camera) experiment = Experiment() experiment.set( @@ -221,7 +221,7 @@ class CoRL2017(Benchmark): return experiments_vector - def _get_details(self): + def _get_details(self): # Function to get automatic information from the experiment for writing purposes return 'corl2017_' + self._city_name @@ -232,6 +232,6 @@ class CoRL2017(Benchmark): Returns the pose and task this experiment is, based on the line it was on the log file. """ - # We assume that the number of poses is constant + # We assume that the number of poses is constant return line_on_file/len(self._experiments),line_on_file%25 diff --git a/PythonClient/carla/benchmarks/metrics.py b/PythonClient/carla/benchmarks/metrics.py index d55064b23..3f6ced110 100644 --- a/PythonClient/carla/benchmarks/metrics.py +++ b/PythonClient/carla/benchmarks/metrics.py @@ -61,7 +61,7 @@ def get_distance_traveled(selected_matrix, header): # Here we defined a maximun distance in a tick, this case 8 meters or 288km/h if sldist((x, y), (prev_x, prev_y)) < 800: acummulated_distance += sldist((x, y), (prev_x, prev_y)) - + prev_x = x prev_y = y @@ -152,7 +152,7 @@ def compute_summary(file, dynamic_episodes): task_data_matrix = data_matrix[np.logical_and(data_matrix[:, header.index( 'exp_id')] == t, data_matrix[:, header.index('weather')] == w)] - + task_reward_matrix = reward_matrix[np.logical_and(reward_matrix[:, header_rewards.index( 'exp_id')] == float(t), reward_matrix[:, header_rewards.index('weather')] == float(w))] @@ -182,7 +182,7 @@ def compute_summary(file, dynamic_episodes): colisions = get_colisions(task_reward_matrix, header_rewards) - + metrics_dictionary['intersection_offroad'][ w][t] = lane_road[0]/km_run metrics_dictionary['intersection_otherlane'][ diff --git a/PythonClient/carla/client.py b/PythonClient/carla/client.py index 80fde992b..748200928 100644 --- a/PythonClient/carla/client.py +++ b/PythonClient/carla/client.py @@ -126,7 +126,7 @@ class CarlaClient(object): def send_control(self, *args, **kwargs): """ Send the VehicleControl to be applied this frame. - + If synchronous mode was requested, the server will pause the simulation until this message is received. """ diff --git a/PythonClient/carla/planner/city_track.py b/PythonClient/carla/planner/city_track.py index 949a5b19e..c28913626 100644 --- a/PythonClient/carla/planner/city_track.py +++ b/PythonClient/carla/planner/city_track.py @@ -24,8 +24,8 @@ class CityTrack(object): # The current computed route self._route =None - - + + def project_node(self,position,node_orientation): @@ -94,7 +94,7 @@ class CityTrack(object): a_star.init_grid(self._map.get_graph_resolution()[0], self._map.get_graph_resolution()[1], self._map.get_walls_directed(node_source,source_ori, - node_target,target_ori),node_source, + node_target,target_ori),node_source, node_target) @@ -112,7 +112,7 @@ class CityTrack(object): route = a_star.solve() - + self._route = route return route diff --git a/PythonClient/carla/planner/map.py b/PythonClient/carla/planner/map.py index d43479057..f099a391b 100644 --- a/PythonClient/carla/planner/map.py +++ b/PythonClient/carla/planner/map.py @@ -223,7 +223,7 @@ class CarlaMap(object): def get_walls_directed(self,node_source,source_ori,node_target,target_ori): - """ + """ This is the most hacky function. Instead of planning on two ways, we basically use a one way road and interrupt the other road by adding an artificial wall. diff --git a/PythonClient/manual_control.py b/PythonClient/manual_control.py index 6933747ce..f869cfd46 100755 --- a/PythonClient/manual_control.py +++ b/PythonClient/manual_control.py @@ -301,7 +301,7 @@ class CarlaGame(object): agent.vehicle.transform.location.y, agent.vehicle.transform.location.z]) w_pos = int(agent_position[0]*(float(WINDOW_HEIGHT)/float(self._map_shape[0]))) - h_pos =int(agent_position[1] *(new_window_width/float(self._map_shape[1]))) + h_pos =int(agent_position[1] *(new_window_width/float(self._map_shape[1]))) pygame.draw.circle(surface, [255, 0, 255, 255], (w_pos,h_pos), 4, 0) self._display.blit(surface, (WINDOW_WIDTH, 0)) From 92f14af8e9f1b8dc238b03bd12660ba52c45523c Mon Sep 17 00:00:00 2001 From: felipecode Date: Thu, 21 Dec 2017 18:58:24 -0200 Subject: [PATCH 022/121] Cleaning more, creating the converter --- PythonClient/carla/benchmarks/benchmark.py | 4 +- PythonClient/carla/planner/city_track.py | 14 +- PythonClient/carla/planner/converter.py | 165 +++++++++++++++++++++ PythonClient/carla/planner/graph.py | 12 +- PythonClient/carla/planner/map.py | 150 ++++--------------- PythonClient/carla/planner/planner.py | 5 +- 6 files changed, 213 insertions(+), 137 deletions(-) create mode 100644 PythonClient/carla/planner/converter.py diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index a895aa125..27998271a 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -13,10 +13,12 @@ import csv import datetime import math import os -import time + import abc + + from carla.client import VehicleControl diff --git a/PythonClient/carla/planner/city_track.py b/PythonClient/carla/planner/city_track.py index 949a5b19e..25fc8e598 100644 --- a/PythonClient/carla/planner/city_track.py +++ b/PythonClient/carla/planner/city_track.py @@ -8,14 +8,15 @@ from carla.planner.graph import sldist from carla.planner.astar import AStar from carla.planner.map import CarlaMap - class CityTrack(object): def __init__(self,city_name): + self._node_density = 50.0 + self._pixel_density = 16.43 - self._map = CarlaMap(city_name) + self._map = CarlaMap(city_name, self._pixel_density, self._node_density) self._astar = AStar() @@ -24,7 +25,8 @@ class CityTrack(object): # The current computed route self._route =None - + + @@ -33,7 +35,7 @@ class CityTrack(object): Projecting the graph node into the city road """ - node =self._map.get_position_on_graph(position) + node =self._map.convert_to_node(position) # To change the orientation with respect to the map standards node_orientation = np.array([node_orientation[0], @@ -52,9 +54,9 @@ class CityTrack(object): if math.fabs(node_orientation[0]) > math.fabs(node_orientation[1]): - node_orientation = (node_orientation[0],0.0,0.0) + node_orientation = (node_orientation[0], 0.0, 0.0) else: - node_orientation = (0.0,node_orientation[1],0.0) + node_orientation = (0.0, node_orientation[1], 0.0) node = self._map._grid.search_on_grid(node[0],node[1]) diff --git a/PythonClient/carla/planner/converter.py b/PythonClient/carla/planner/converter.py new file mode 100644 index 000000000..dce2ba71f --- /dev/null +++ b/PythonClient/carla/planner/converter.py @@ -0,0 +1,165 @@ +import math +import numpy as np + +from carla.planner.graph import string_to_node,string_to_floats + + +# Constant definition enumeration + +PIXEL = 0 +WORLD = 1 +NODE = 2 + + +class Converter(object): + + def __init__(self, city_file, node_density, pixel_density): + + self._node_density = node_density + self._pixel_density = pixel_density + with open(city_file, 'r') as f: + + # The offset of the world from the zero coordinates ( The + # coordinate we consider zero) + self._worldoffset = string_to_floats(f.readline()) + + angles = string_to_floats(f.readline()) + + # If there is an rotation between the world and map coordinates. + self._worldrotation = np.array([ + [math.cos(math.radians(angles[2])), -math.sin(math.radians(angles[2])), 0.0], + [math.sin(math.radians(angles[2])), math.cos(math.radians(angles[2])), 0.0], + [0.0, 0.0, 1.0]]) + + # Ignore for now, these are offsets for map coordinates and scale + # (not used). + _ = f.readline() + + # The offset of the map zero coordinate. + self._mapoffset = string_to_floats(f.readline()) + + def convert_to_node(self,input_data): + """ + Receives a data type (Can Be Pixel or World ) + :param input_data: position in some coordinate + :return: A vector representing a node + """ + + + input_type = self._check_input_type(input_data) + if input_type == PIXEL: + return self._pixel_to_node(input_data) + elif input_type == WORLD: + return self._world_to_node(input_data) + else: + raise ValueError('Invalid node to be converted') + + + + def convert_to_pixel(self,input_data): + + """ + Receives a data type (Can Be Node or World ) + :param input_data: position in some coordinate + :return: A vector with pixel coordinates + """ + + input_type = self._check_input_type(input_data) + if input_type == NODE: + return self._node_to_pixel(input_data) + elif input_type == WORLD: + return self._world_to_pixel(input_data) + else: + raise ValueError('Invalid node to be converted') + + + def convert_to_world(self,input_data): + + """ + Receives a data type (Can Be Pixel or Node ) + :param input_data: position in some coordinate + :return: vector with world coordinates + """ + + input_type = self._check_input_type(input_data) + if input_type == NODE: + return self._node_to_world(input_data) + elif input_type == PIXEL: + return self._pixel_to_world(input_data) + else: + raise ValueError('Invalid node to be converted') + + def _node_to_pixel(self, node): + """ + Conversion from node format (graph) to pixel (image) + :param node: + :return: pixel + """ + pixel = [((node[0] + 2) * self._node_density) + , ((node[1] + 2) * self._node_density)] + return pixel + + def _pixel_to_node(self, pixel): + """ + Conversion from pixel format (image) to node (graph) + :param node: + :return: pixel + """ + node = [int(((pixel[0]) / self._node_density) - 2) + , int(((pixel[1]) / self._node_density) - 2)] + + return tuple(node) + def _pixel_to_world(self,pixel): + """ + Conversion from pixel format (image) to world (3D) + :param pixel: + :return: world + """ + + + relative_location = [ pixel[0] * self._pixel_density, + pixel[1] * self._pixel_density] + + world = [ + relative_location[0] + self._mapoffset[0] - self._worldoffset[0], + relative_location[1] + self._mapoffset[1] - self._worldoffset[1], + 22 + ] + + return world + + def _world_to_pixel(self, world): + """ + Conversion from world format (3D) to pixel + :param world: + :return: pixel + """ + + rotation = np.array([world[0], world[1], world[2]]) + rotation = rotation.dot(self._worldrotation) + + relative_location = [rotation[0] + self._worldoffset[0] - self._mapoffset[0], + rotation[1] + self._worldoffset[1] - self._mapoffset[1], + rotation[2] + self._worldoffset[2] - self._mapoffset[2]] + + pixel = [math.floor(relative_location[0] / float(self._pixel_density)), + math.floor(relative_location[1] / float(self._pixel_density))] + + return pixel + + def _world_to_node(self, world): + return self._pixel_to_node(self._world_to_pixel(world)) + + def _node_to_world(self, node): + + return self._pixel_to_world(self._node_to_pixel(node)) + + def _check_input_type(self, input_data): + if len(input_data) > 2: + return WORLD + elif type(input_data[0]) is int: + return NODE + else: + return PIXEL + + diff --git a/PythonClient/carla/planner/graph.py b/PythonClient/carla/planner/graph.py index 216fc4fa4..1d740561f 100644 --- a/PythonClient/carla/planner/graph.py +++ b/PythonClient/carla/planner/graph.py @@ -29,13 +29,14 @@ class Graph(object): A simple directed, weighted graph """ - def __init__(self, graph_file=None): + def __init__(self, graph_file=None,node_density=50): self._nodes = set() self._angles = {} self._edges = {} self._distances = {} - self._node_density = 50 + self._node_density = node_density + if graph_file is not None: with open(graph_file, 'r') as file: # Skipe the first four lines that @@ -62,13 +63,6 @@ class Graph(object): def add_node(self, value): self._nodes.add(value) - def project_pixel(self, pixel): - node = [] - node.append((pixel[0]) / self._node_density - 2) - node.append((pixel[1]) / self._node_density - 2) - - return tuple(node) - def make_orientations(self, node, heading): import collections diff --git a/PythonClient/carla/planner/map.py b/PythonClient/carla/planner/map.py index d43479057..d35f698b2 100644 --- a/PythonClient/carla/planner/map.py +++ b/PythonClient/carla/planner/map.py @@ -22,16 +22,15 @@ except ImportError: from carla.planner.graph import Graph from carla.planner.grid import Grid -from carla.planner.graph import string_to_node,string_to_floats +from carla.planner.converter import Converter def color_to_angle(color): return ((float(color)/255.0)) * 2*math.pi - - class CarlaMap(object): - def __init__(self, city): + + def __init__(self, city, pixel_density, node_density): dir_path = os.path.dirname(__file__) city_file = os.path.join(dir_path, city + '.txt') @@ -39,41 +38,18 @@ class CarlaMap(object): city_map_file_lanes = os.path.join(dir_path, city + 'Lanes.png') city_map_file_center = os.path.join(dir_path, city + 'Central.png') - # The built graph. This is the exact same graph that unreal builds. This # is a generic structure used for many cases - self._graph = Graph(city_file) - self._grid = Grid(self._graph) - - with open(city_file, 'r') as file: - - linewordloffset = file.readline() - # The offset of the world from the zero coordinates ( The - # coordinate we consider zero) - self.worldoffset = string_to_floats(linewordloffset) - - lineworldangles = file.readline() - self.angles = string_to_floats(lineworldangles) - - # If tere is an rotation between the world and map coordinates. - self.worldrotation = np.array([ - [math.cos(math.radians(self.angles[2])), -math.sin(math.radians(self.angles[2])), 0.0], - [math.sin(math.radians(self.angles[2])), math.cos(math.radians(self.angles[2])), 0.0], - [0.0, 0.0, 1.0]]) - - # Ignore for now, these are offsets for map coordinates and scale - # (not used). - map_scale = file.readline() - linemapoffset = file.readline() - - # The offset of the map zero coordinate. - self.mapoffset = string_to_floats(linemapoffset) - - + self._pixel_density = pixel_density + self._grid = Grid(self._graph, node_density) # The number of game units per pixel. For now this is fixed. - self.pixel_density = 16.43 + + self._converter = Converter(city_file, pixel_density, node_density) + + + # Load the lanes image self.map_image_lanes = Image.open(city_map_file_lanes) self.map_image_lanes.load() @@ -112,42 +88,7 @@ class CarlaMap(object): return np.fliplr(np.asarray(img, dtype="int32")) return np.fliplr(self.map_image_lanes) - def get_position_on_map(self, world): - """Get the position on the map for a certain world position.""" - relative_location = [] - pixel = [] - rotation = np.array([world[0], world[1], world[2]]) - rotation = rotation.dot(self.worldrotation) - - relative_location.append(rotation[0] + self.worldoffset[0] - self.mapoffset[0]) - relative_location.append(rotation[1] + self.worldoffset[1] - self.mapoffset[1]) - relative_location.append(rotation[2] + self.worldoffset[2] - self.mapoffset[2]) - - pixel.append(math.floor(relative_location[0] / float(self.pixel_density))) - pixel.append(math.floor(relative_location[1] / float(self.pixel_density))) - - return pixel - - def get_position_on_graph(self, world): - """Get the position on the map for a certain world position.""" - pixel = self.get_position_on_map(world) - return self._graph.project_pixel(pixel) - - - - def get_position_on_world(self, pixel): - """Get world position of a certain map position.""" - relative_location = [] - world_vertex = [] - relative_location.append(pixel[0] * self.pixel_density) - relative_location.append(pixel[1] * self.pixel_density) - - world_vertex.append(relative_location[0] + self.mapoffset[0] - self.worldoffset[0]) - world_vertex.append(relative_location[1] + self.mapoffset[1] - self.worldoffset[1]) - world_vertex.append(22) # Z does not matter for now. - - return world_vertex def get_lane_orientation(self, world): """Get the lane orientation of a certain world position.""" @@ -167,58 +108,29 @@ class CarlaMap(object): ori = color_to_angle(ori) return (-math.cos(ori), -math.sin(ori)) + def convert_to_node(self,input): + """ + Receives a data type (Can Be Pixel or World ) + :param input: position in some coordinate + :return: A node object + """ + return self._converter.convert_to_node(input) + def convert_to_pixel(self,input): + """ + Receives a data type (Can Be Pixel or World ) + :param input: position in some coordinate + :return: A node object + """ + return self._converter.convert_to_pixel(input) - - def make_map_world(self, world): - - relative_location = [] - pixel = [] - - rotation = np.array([world[0], world[1], world[2]]) - rotation = rotation.dot(self.worldrotation) - - relative_location.append( - rotation[0] + self.worldoffset[0] - self.mapoffset[0]) - relative_location.append( - rotation[1] + self.worldoffset[1] - self.mapoffset[1]) - relative_location.append( - rotation[2] + self.worldoffset[2] - self.mapoffset[2]) - - pixel.append(math.floor(relative_location[ - 0]/float(self.pixel_density))) - pixel.append(math.floor(relative_location[ - 1]/float(self.pixel_density))) - - return pixel - - - - def make_map_node(self, node): - - pixel = [((node[0] + 2) * self._graph._node_density) - , ((node[1] + 2) * self._graph._node_density)] - - return pixel - - def make_world_map(self, pixel): - - relative_location = [] - world_vertex = [] - relative_location.append(pixel[0]*self.pixel_density) - relative_location.append(pixel[1]*self.pixel_density) - - world_vertex.append( - relative_location[0]+self.mapoffset[0] - self.worldoffset[0]) - world_vertex.append( - relative_location[1]+self.mapoffset[1] - self.worldoffset[1]) - world_vertex.append(22) - return world_vertex - - def make_world_node(self, node): - - return self.make_world_map(self.make_map_node(node)) - + def convert_to_world(self,input): + """ + Receives a data type (Can Be Pixel or World ) + :param input: position in some coordinate + :return: A node object + """ + return self._converter.convert_to_world(input) diff --git a/PythonClient/carla/planner/planner.py b/PythonClient/carla/planner/planner.py index b07f95f50..0fd7125b3 100644 --- a/PythonClient/carla/planner/planner.py +++ b/PythonClient/carla/planner/planner.py @@ -118,8 +118,9 @@ class Planner(object): current_pos = node_iter # We multiply by these values to convert distance to world coordinates - return distance * self._city_track._map.pixel_density \ - * self._city_track._map._graph._node_density + return distance * self._city_track._map.get_pixel_density() \ + * self._city_track.get_node_density() + def is_there_posible_route(self, source, source_ori, target, target_ori): From 7b7375e3e2b7aa5b437f1ef2d10348fcb57c3fb4 Mon Sep 17 00:00:00 2001 From: felipecode Date: Thu, 21 Dec 2017 20:21:54 -0200 Subject: [PATCH 023/121] Not anymore --- Docs/carla_benchmark.md | 26 ++++++++++++++++++++++++++ PythonClient/carla/planner/graph.py | 8 ++++---- PythonClient/carla/planner/planner.py | 1 - 3 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 Docs/carla_benchmark.md diff --git a/Docs/carla_benchmark.md b/Docs/carla_benchmark.md new file mode 100644 index 000000000..5bdfdd420 --- /dev/null +++ b/Docs/carla_benchmark.md @@ -0,0 +1,26 @@ +CARLA Benchmark +=============== + +Running the Benchmark +------------------------- +The "carla" api provides a basic benchmarking system, that allows making +several tests on a certain agent. We already provide the same benchmark +used in the CoRL 2017 paper. By running this benchmark you can compare +the results of your agent to the results obtained by the agents +show in the paper. + +The basic functionality requires only the protobuf module to be installed + $ sudo apt-get install python3 python3-pip + $ sudo pip3 install protobuf +However, other operations as handling images require some extra modules, and the +"manual_control.py" example requires pygame + $ sudo pip3 install numpy Pillow pygame +The script "PythonClient/client_example.py" provides basic functionality for +controlling the vehicle and saving images to disk. Run the help command to see +options available + $ ./client_example.py --help +The script "PythonClient/manual_control.py" launches a PyGame window with +several views and allows to control the vehicle using the WASD keys. + $ ./manual_control.py --help + + diff --git a/PythonClient/carla/planner/graph.py b/PythonClient/carla/planner/graph.py index 1d740561f..f35d73aae 100644 --- a/PythonClient/carla/planner/graph.py +++ b/PythonClient/carla/planner/graph.py @@ -1,9 +1,6 @@ import math -import matplotlib.pyplot as plt import numpy as np -from matplotlib import collections as mc - def string_to_node(string): vec = string.split(',') @@ -108,6 +105,9 @@ class Graph(object): return self._nodes def plot_ori(self, c): + from matplotlib import collections as mc + + import matplotlib.pyplot as plt line_len = 1 lines = [[(p[0], p[1]), (p[0] + line_len * self._angles[p][0], @@ -125,7 +125,7 @@ class Graph(object): plt.scatter(xs, ys, color=c) def plot(self, c): - + import matplotlib.pyplot as plt xs = [p[0] for p in self._nodes] ys = [p[1] for p in self._nodes] diff --git a/PythonClient/carla/planner/planner.py b/PythonClient/carla/planner/planner.py index 0fd7125b3..164eb17e1 100644 --- a/PythonClient/carla/planner/planner.py +++ b/PythonClient/carla/planner/planner.py @@ -54,7 +54,6 @@ class Planner(object): :return: a command ( Straight,Lane Follow, Left or Right) """ - track_source = self._city_track.project_node(source, source_ori) track_target = self._city_track.project_node(target, target_ori) From 3329471b1173f46cb2919129595fe58f45fb9fa6 Mon Sep 17 00:00:00 2001 From: felipecode Date: Thu, 21 Dec 2017 21:11:12 -0200 Subject: [PATCH 024/121] Updated the docs for benchmark --- Docs/carla_benchmark.md | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/Docs/carla_benchmark.md b/Docs/carla_benchmark.md index 5bdfdd420..2228401fa 100644 --- a/Docs/carla_benchmark.md +++ b/Docs/carla_benchmark.md @@ -9,18 +9,15 @@ used in the CoRL 2017 paper. By running this benchmark you can compare the results of your agent to the results obtained by the agents show in the paper. -The basic functionality requires only the protobuf module to be installed - $ sudo apt-get install python3 python3-pip - $ sudo pip3 install protobuf -However, other operations as handling images require some extra modules, and the -"manual_control.py" example requires pygame - $ sudo pip3 install numpy Pillow pygame -The script "PythonClient/client_example.py" provides basic functionality for -controlling the vehicle and saving images to disk. Run the help command to see -options available - $ ./client_example.py --help -The script "PythonClient/manual_control.py" launches a PyGame window with -several views and allows to control the vehicle using the WASD keys. - $ ./manual_control.py --help +! Currently not tested on python 3 + +Besides the requirements of the CARLA client, +the benchmark package also needs the future package + $ sudo pip install future + +Run the help command to see options available + $ ./run_benchmark --help + + From a1ba42c70e1f8c1e05bacf58484d79b53cb8a53d Mon Sep 17 00:00:00 2001 From: felipecode Date: Thu, 21 Dec 2017 21:15:44 -0200 Subject: [PATCH 025/121] added carla benchmark to the index --- Docs/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Docs/index.md b/Docs/index.md index 1666c0670..1eb92cb1a 100644 --- a/Docs/index.md +++ b/Docs/index.md @@ -4,6 +4,7 @@ CARLA Documentation #### Using CARLA * [How to run CARLA server and client](how_to_run.md) + * [Benchmark](carla_benchmark.md) * [CARLA settings](carla_settings.md) * [Measurements](measurements.md) * [Cameras and sensors](cameras_and_sensors.md) From c997732e0b9d7a84333de28b63af8166def66b41 Mon Sep 17 00:00:00 2001 From: felipecode Date: Thu, 21 Dec 2017 21:19:57 -0200 Subject: [PATCH 026/121] A bit more documentation on the benchmark --- Docs/carla_benchmark.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Docs/carla_benchmark.md b/Docs/carla_benchmark.md index 2228401fa..198c46123 100644 --- a/Docs/carla_benchmark.md +++ b/Docs/carla_benchmark.md @@ -15,6 +15,15 @@ Besides the requirements of the CARLA client, the benchmark package also needs the future package $ sudo pip install future + +By running the benchmark a default agent that just go straight +will be tested. To run the benchmark you need a server running. +For a default localhost server on port 2000, to run the benchmark +you just need to run: + $ ./run_benchmark +or + $ python run_benchmark + Run the help command to see options available $ ./run_benchmark --help From 3d418f9be4e6d7491e8b5f15edf8421ea14e1ebf Mon Sep 17 00:00:00 2001 From: felipecode Date: Fri, 22 Dec 2017 11:03:47 -0200 Subject: [PATCH 027/121] Small bug on line position --- PythonClient/carla/benchmarks/benchmark.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index 27998271a..c32c688c7 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -69,12 +69,14 @@ class Benchmark(object): 'pos_y': -1 } - # Get the line for the experiment to be continued - self._line_on_file = self._continue_experiment(continue_experiment) self._experiments = self._build_experiments() # Create the log files and get the names self._suffix_name, self._full_name = self._create_log_record(self._experiments) + # Get the line for the experiment to be continued + self._line_on_file = self._continue_experiment(continue_experiment) + + self._save_images = save_images self._image_filename_format = os.path.join( From 67289ac7eee7aa1c98ea3624c1e9db25d118b443 Mon Sep 17 00:00:00 2001 From: felipecode Date: Fri, 22 Dec 2017 11:28:13 -0200 Subject: [PATCH 028/121] Small bug class definition --- PythonClient/carla/benchmarks/benchmark.py | 19 +++++++++++++++---- PythonClient/carla/benchmarks/corl_2017.py | 4 ++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index c32c688c7..dfdc2cf91 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -72,7 +72,7 @@ class Benchmark(object): self._experiments = self._build_experiments() # Create the log files and get the names - self._suffix_name, self._full_name = self._create_log_record(self._experiments) + self._suffix_name, self._full_name = self._create_log_record(name_to_save, self._experiments) # Get the line for the experiment to be continued self._line_on_file = self._continue_experiment(continue_experiment) @@ -318,7 +318,12 @@ class Benchmark(object): def _calculate_time_out(self, distance): pass - + @abc.abstractmethod + def _get_details(self): + """ + Get details + :return: a string with name and town of the subclass + """ @abc.abstractmethod def _build_experiments(self): """ @@ -327,9 +332,15 @@ class Benchmark(object): """ pass + @abc.abstractmethod + def get_all_statistics(self): + """ + Get the statistics of the evaluated experiments + :return: + """ @abc.abstractmethod - def _get_pose_and_task(self): + def _get_pose_and_task(self, line_on_file): """ Parse the experiment depending on number of poses and tasks """ @@ -349,7 +360,7 @@ class Benchmark(object): """ @staticmethod - def get_experiments_names(experiments): + def _get_experiments_names(experiments): name_cat = 'w' diff --git a/PythonClient/carla/benchmarks/corl_2017.py b/PythonClient/carla/benchmarks/corl_2017.py index 24a483bc4..323261507 100644 --- a/PythonClient/carla/benchmarks/corl_2017.py +++ b/PythonClient/carla/benchmarks/corl_2017.py @@ -57,8 +57,8 @@ class CoRL2017(Benchmark): for metric,values in metrics_summary.items(): - print('Metric : ',metric) - for weather,tasks in values.items(): + print('Metric : ', metric) + for weather, tasks in values.items(): if weather in set(weathers): print(' Weather: ',weather) count =0 From 9d61a2e8d508e78e0b20c8d1068fdec57410bb93 Mon Sep 17 00:00:00 2001 From: felipecode Date: Fri, 22 Dec 2017 11:35:30 -0200 Subject: [PATCH 029/121] Small corrections on planner --- PythonClient/carla/benchmarks/benchmark.py | 8 ++++---- PythonClient/carla/planner/city_track.py | 20 ++++++++++++-------- PythonClient/carla/planner/graph.py | 2 +- PythonClient/carla/planner/map.py | 4 ++-- PythonClient/carla/planner/planner.py | 2 +- 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index dfdc2cf91..8151f618f 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -285,8 +285,8 @@ class Benchmark(object): else: # Ask question, to avoid mistaken override situations answer = input("The experiment was already found in the files" - + ",Do you want to continue (y/n) ? \n" - + " If not the experiment will be overwritten") + + ", Do you want to continue (y/n) ? \n" + ) if answer == 'Yes' or answer == 'y': line_on_file = self._get_last_position() else: @@ -331,7 +331,7 @@ class Benchmark(object): Must be redefined in an inherited class. """ - pass + @abc.abstractmethod def get_all_statistics(self): """ @@ -344,7 +344,7 @@ class Benchmark(object): """ Parse the experiment depending on number of poses and tasks """ - pass + @abc.abstractmethod def plot_summary_train(self): diff --git a/PythonClient/carla/planner/city_track.py b/PythonClient/carla/planner/city_track.py index d19622c52..ad33e7142 100644 --- a/PythonClient/carla/planner/city_track.py +++ b/PythonClient/carla/planner/city_track.py @@ -37,28 +37,32 @@ class CityTrack(object): node_orientation = np.array([node_orientation[0], node_orientation[1]]) - - node = tuple([ int(x) for x in node ]) + node = tuple([ int(x) for x in node ]) # Set to zero if it is less than zero. - node =(max(0,node[0]),max(0,node[1])) node =(min(self._map.get_graph_resolution()[0]-1,node[0]), min(self._map.get_graph_resolution()[1]-1,node[1])) # is it x or y ? Check to avoid special corner cases - if math.fabs(node_orientation[0]) > math.fabs(node_orientation[1]): - node_orientation = (node_orientation[0], 0.0, 0.0) - else: - node_orientation = (0.0, node_orientation[1], 0.0) + #if math.fabs(node_orientation[0]) > math.fabs(node_orientation[1]): + # node_orientation = (node_orientation[0], 0.0, 0.0) + #else: + # node_orientation = (0.0, node_orientation[1], 0.0) - node = self._map._grid.search_on_grid(node[0],node[1]) + node = self._map._grid.search_on_grid(node[0], node[1]) return node + + def get_pixel_density(self): + return self._pixel_density + def get_node_density(self): + return self._node_density + def is_at_goal(self,source,target): return source == target diff --git a/PythonClient/carla/planner/graph.py b/PythonClient/carla/planner/graph.py index f35d73aae..92c1933c5 100644 --- a/PythonClient/carla/planner/graph.py +++ b/PythonClient/carla/planner/graph.py @@ -26,7 +26,7 @@ class Graph(object): A simple directed, weighted graph """ - def __init__(self, graph_file=None,node_density=50): + def __init__(self, graph_file=None, node_density=50): self._nodes = set() self._angles = {} diff --git a/PythonClient/carla/planner/map.py b/PythonClient/carla/planner/map.py index e220f8a11..67258c31c 100644 --- a/PythonClient/carla/planner/map.py +++ b/PythonClient/carla/planner/map.py @@ -40,10 +40,10 @@ class CarlaMap(object): # The built graph. This is the exact same graph that unreal builds. This # is a generic structure used for many cases - self._graph = Graph(city_file) + self._graph = Graph(city_file, node_density) self._pixel_density = pixel_density - self._grid = Grid(self._graph, node_density) + self._grid = Grid(self._graph) # The number of game units per pixel. For now this is fixed. self._converter = Converter(city_file, pixel_density, node_density) diff --git a/PythonClient/carla/planner/planner.py b/PythonClient/carla/planner/planner.py index 164eb17e1..907696751 100644 --- a/PythonClient/carla/planner/planner.py +++ b/PythonClient/carla/planner/planner.py @@ -117,7 +117,7 @@ class Planner(object): current_pos = node_iter # We multiply by these values to convert distance to world coordinates - return distance * self._city_track._map.get_pixel_density() \ + return distance * self._city_track.get_pixel_density() \ * self._city_track.get_node_density() From 081db8238f9eb367f9fffc44167e84fbbe4b1145 Mon Sep 17 00:00:00 2001 From: felipecode Date: Fri, 22 Dec 2017 13:54:21 -0200 Subject: [PATCH 030/121] Some python2/3 fixes --- PythonClient/carla/benchmarks/benchmark.py | 2 +- PythonClient/carla/planner/astar.py | 24 ++++++-------------- PythonClient/carla/planner/city_track.py | 4 ++-- PythonClient/carla/planner/map.py | 26 ++++++++-------------- 4 files changed, 19 insertions(+), 37 deletions(-) diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index 8151f618f..a008d4d46 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -285,7 +285,7 @@ class Benchmark(object): else: # Ask question, to avoid mistaken override situations answer = input("The experiment was already found in the files" - + ", Do you want to continue (y/n) ? \n" + + ", Do you want to continue (y/n)? \n" ) if answer == 'Yes' or answer == 'y': line_on_file = self._get_last_position() diff --git a/PythonClient/carla/planner/astar.py b/PythonClient/carla/planner/astar.py index 7ebc90c10..76a6626ee 100644 --- a/PythonClient/carla/planner/astar.py +++ b/PythonClient/carla/planner/astar.py @@ -1,8 +1,6 @@ import heapq - class Cell(object): - def __init__(self, x, y, reachable): """Initialize new cell. @@ -23,11 +21,12 @@ class Cell(object): self.f = 0 + def __lt__(self, other): + return self.g < other.g + + class AStar(object): - def __init__(self): - - # open list self.opened = [] heapq.heapify(self.opened) @@ -38,10 +37,8 @@ class AStar(object): self.grid_height = None self.grid_width = None - def init_grid(self, width, height, walls,start, end): - - """ - Prepare grid cells, walls. + def init_grid(self, width, height, walls, start, end): + """Prepare grid cells, walls. @param width grid's width. @param height grid's height. @@ -51,7 +48,6 @@ class AStar(object): """ self.grid_height = height self.grid_width = width - #print walls for x in range(self.grid_width): for y in range(self.grid_height): if (x, y) in walls: @@ -59,7 +55,6 @@ class AStar(object): else: reachable = True self.cells.append(Cell(x, y, reachable)) - self.start = self.get_cell(*start) self.end = self.get_cell(*end) @@ -127,8 +122,6 @@ class AStar(object): @returns path or None if not found. """ - if self.start == self.end: - return None # add starting cell to open heap queue heapq.heappush(self.opened, (self.start.f, self.start)) while len(self.opened): @@ -152,7 +145,4 @@ class AStar(object): else: self.update_cell(adj_cell, cell) # add adj cell to open list - heapq.heappush(self.opened, (adj_cell.f, adj_cell)) - - - + heapq.heappush(self.opened, (adj_cell.f, adj_cell)) \ No newline at end of file diff --git a/PythonClient/carla/planner/city_track.py b/PythonClient/carla/planner/city_track.py index ad33e7142..72bec3d26 100644 --- a/PythonClient/carla/planner/city_track.py +++ b/PythonClient/carla/planner/city_track.py @@ -34,8 +34,8 @@ class CityTrack(object): node =self._map.convert_to_node(position) # To change the orientation with respect to the map standards - node_orientation = np.array([node_orientation[0], - node_orientation[1]]) + #node_orientation = np.array([node_orientation[0], + # node_orientation[1]]) node = tuple([ int(x) for x in node ]) diff --git a/PythonClient/carla/planner/map.py b/PythonClient/carla/planner/map.py index 67258c31c..932f5b221 100644 --- a/PythonClient/carla/planner/map.py +++ b/PythonClient/carla/planner/map.py @@ -80,7 +80,8 @@ class CarlaMap(object): return np.asarray(img, dtype="int32") return np.fliplr(self.map_image) - def get_map_lanes(self, height=None): + def get_map_lanes(self, size=None): + if size is not None: img = Image.fromarray(self.map_image_lanes.astype(np.uint8)) img = img.resize((size[1], size[0]), Image.ANTIALIAS) @@ -92,23 +93,14 @@ class CarlaMap(object): def get_lane_orientation(self, world): """Get the lane orientation of a certain world position.""" - relative_location = [] - pixel = [] - rotation = np.array([world[0], world[1], world[2]]) - rotation = rotation.dot(self.worldrotation) - - relative_location.append(rotation[0] + self.worldoffset[0] - self.mapoffset[0]) - relative_location.append(rotation[1] + self.worldoffset[1] - self.mapoffset[1]) - relative_location.append(rotation[2] + self.worldoffset[2] - self.mapoffset[2]) - - pixel.append(math.floor(relative_location[0] / float(self.pixel_density))) - pixel.append(math.floor(relative_location[1] / float(self.pixel_density))) + pixel = self.convert_to_pixel(world) ori = self.map_image_lanes[int(pixel[1]), int(pixel[0]), 2] ori = color_to_angle(ori) return (-math.cos(ori), -math.sin(ori)) - def convert_to_node(self,input): + + def convert_to_node(self, input): """ Receives a data type (Can Be Pixel or World ) :param input: position in some coordinate @@ -116,7 +108,7 @@ class CarlaMap(object): """ return self._converter.convert_to_node(input) - def convert_to_pixel(self,input): + def convert_to_pixel(self, input): """ Receives a data type (Can Be Pixel or World ) :param input: position in some coordinate @@ -124,7 +116,7 @@ class CarlaMap(object): """ return self._converter.convert_to_pixel(input) - def convert_to_world(self,input): + def convert_to_world(self, input): """ Receives a data type (Can Be Pixel or World ) :param input: position in some coordinate @@ -134,7 +126,7 @@ class CarlaMap(object): - def get_walls_directed(self,node_source,source_ori,node_target,target_ori): + def get_walls_directed(self, node_source, source_ori, node_target, target_ori): """ This is the most hacky function. Instead of planning on two ways, we basically use a one way road and interrupt the other road by adding @@ -142,7 +134,7 @@ class CarlaMap(object): """ - final_walls = self._grid.get_wall_source(node_source,source_ori,node_target) + final_walls = self._grid.get_wall_source(node_source, source_ori, node_target) final_walls = final_walls.union(self._grid.get_wall_target( node_target, target_ori, node_source)) From 8c252af9cb7061437b92dbcbbd924ddb01dfa99f Mon Sep 17 00:00:00 2001 From: felipecode Date: Fri, 22 Dec 2017 14:04:54 -0200 Subject: [PATCH 031/121] Small fix on conversion --- PythonClient/carla/benchmarks/corl_2017.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PythonClient/carla/benchmarks/corl_2017.py b/PythonClient/carla/benchmarks/corl_2017.py index 323261507..fdaaec8a1 100644 --- a/PythonClient/carla/benchmarks/corl_2017.py +++ b/PythonClient/carla/benchmarks/corl_2017.py @@ -227,11 +227,11 @@ class CoRL2017(Benchmark): return 'corl2017_' + self._city_name - def _get_pose_and_task(self,line_on_file): + def _get_pose_and_task(self, line_on_file): """ Returns the pose and task this experiment is, based on the line it was on the log file. """ # We assume that the number of poses is constant - return line_on_file/len(self._experiments),line_on_file%25 + return int(line_on_file/len(self._experiments)), line_on_file % 25 From 99ef016f2e63c2c0062c9a8a6df850862c5f6f64 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Fri, 22 Dec 2017 18:33:30 +0100 Subject: [PATCH 032/121] Fix docs format --- Docs/carla_benchmark.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/Docs/carla_benchmark.md b/Docs/carla_benchmark.md index 198c46123..b42279752 100644 --- a/Docs/carla_benchmark.md +++ b/Docs/carla_benchmark.md @@ -2,31 +2,31 @@ CARLA Benchmark =============== Running the Benchmark -------------------------- -The "carla" api provides a basic benchmarking system, that allows making -several tests on a certain agent. We already provide the same benchmark -used in the CoRL 2017 paper. By running this benchmark you can compare -the results of your agent to the results obtained by the agents -show in the paper. +--------------------- -! Currently not tested on python 3 +The "carla" api provides a basic benchmarking system, that allows making several +tests on a certain agent. We already provide the same benchmark used in the CoRL +2017 paper. By running this benchmark you can compare the results of your agent +to the results obtained by the agents show in the paper. + +!!! important + Currently not tested on python 3 + +Besides the requirements of the CARLA client, the benchmark package also needs +the future package -Besides the requirements of the CARLA client, -the benchmark package also needs the future package $ sudo pip install future +By running the benchmark a default agent that just go straight will be tested. +To run the benchmark you need a server running. For a default localhost server +on port 2000, to run the benchmark you just need to run + + $ ./run_benchmark.py -By running the benchmark a default agent that just go straight -will be tested. To run the benchmark you need a server running. -For a default localhost server on port 2000, to run the benchmark -you just need to run: - $ ./run_benchmark or - $ python run_benchmark + + $ python run_benchmark.py Run the help command to see options available - $ ./run_benchmark --help - - - + $ ./run_benchmark.py --help From 5067b9109e32801b6f6e0f95455f4d4174547e5c Mon Sep 17 00:00:00 2001 From: nsubiron Date: Fri, 22 Dec 2017 18:38:10 +0100 Subject: [PATCH 033/121] Add benchmark to documentation --- Docs/{carla_benchmark.md => benchmark.md} | 4 ++++ Docs/index.md | 1 + mkdocs.yml | 1 + 3 files changed, 6 insertions(+) rename Docs/{carla_benchmark.md => benchmark.md} (89%) diff --git a/Docs/carla_benchmark.md b/Docs/benchmark.md similarity index 89% rename from Docs/carla_benchmark.md rename to Docs/benchmark.md index b42279752..64c536607 100644 --- a/Docs/carla_benchmark.md +++ b/Docs/benchmark.md @@ -1,6 +1,10 @@ CARLA Benchmark =============== +!!! important + Benchmark code is currently in beta and can be found only in the + `benchmark_branch`. + Running the Benchmark --------------------- diff --git a/Docs/index.md b/Docs/index.md index 1eb92cb1a..560a4078f 100644 --- a/Docs/index.md +++ b/Docs/index.md @@ -8,6 +8,7 @@ CARLA Documentation * [CARLA settings](carla_settings.md) * [Measurements](measurements.md) * [Cameras and sensors](cameras_and_sensors.md) + * [Benchmark](benchmark.md) * [F.A.Q.](faq.md) * [Troubleshooting](troubleshooting.md) diff --git a/mkdocs.yml b/mkdocs.yml index 20ed2da28..204cff558 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -9,6 +9,7 @@ pages: - 'CARLA Settings': 'carla_settings.md' - 'Measurements': 'measurements.md' - 'Cameras and sensors': 'cameras_and_sensors.md' + - 'Benchmark': 'benchmark.md' - 'F.A.Q.': 'faq.md' - 'Troubleshooting': 'troubleshooting.md' - Building from source: From 50418c1e066cee9fe418b9b86303ba7a2e6e9df2 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Fri, 22 Dec 2017 18:40:48 +0100 Subject: [PATCH 034/121] Remove duplicate link --- Docs/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/Docs/index.md b/Docs/index.md index 560a4078f..44565e3aa 100644 --- a/Docs/index.md +++ b/Docs/index.md @@ -4,7 +4,6 @@ CARLA Documentation #### Using CARLA * [How to run CARLA server and client](how_to_run.md) - * [Benchmark](carla_benchmark.md) * [CARLA settings](carla_settings.md) * [Measurements](measurements.md) * [Cameras and sensors](cameras_and_sensors.md) From ada138c0395b727eacb48c47693dd83f77df49bf Mon Sep 17 00:00:00 2001 From: nsubiron Date: Fri, 22 Dec 2017 19:14:16 +0100 Subject: [PATCH 035/121] Some improvements to setup.py --- .gitignore | 3 +++ PythonClient/setup.py | 21 ++++++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 2aef97e3e..6ef363893 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,11 @@ Dist Doxygen +PythonClient/dist Util/Build *.VC.db *.VC.opendb +*.egg-info *.kdev4 *.log *.pb.cc @@ -25,3 +27,4 @@ __pycache__ _benchmarks_results _images core + diff --git a/PythonClient/setup.py b/PythonClient/setup.py index d1317032d..31e26f2de 100644 --- a/PythonClient/setup.py +++ b/PythonClient/setup.py @@ -1,12 +1,15 @@ from setuptools import setup -setup( - name='PythonClient', - version='0.7', - packages=['carla','carla.planner','carla.benchmarks','carla.planner'], - license='', - long_description=open('README.txt').read(), - include_package_data=True, - package_data={'carla.planner' : ['Town01.txt']} -) +# @todo Dependencies are missing. +setup( + name='carla_client', + version='0.7.1', + packages=['carla', 'carla.planner', 'carla.benchmarks', 'carla.planner'], + license='MIT License', + description='Python API for communicating with the CARLA server.', + url='https://github.com/carla-simulator/carla', + author='The CARLA team', + author_email='carla.simulator@gmail.com', + include_package_data=True +) From d353631c56c37769eb4e78352626805738b223f6 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Mon, 8 Jan 2018 18:27:58 +0100 Subject: [PATCH 036/121] CI with Ubuntu 16 --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index c41c171e5..98a169624 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,8 @@ language: python +os: linux +dist: xenial + python: - "2.7" - "3.5" From c5cbee9194a4e94b84ad54413108ba38d5849127 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Mon, 8 Jan 2018 18:41:02 +0100 Subject: [PATCH 037/121] Require pylint to pass without warnings --- .travis.yml | 2 +- PythonClient/.pylintrc | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 98a169624..664e105a1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,4 +13,4 @@ install: - pip install pylint script: - - pylint --errors-only --rcfile=PythonClient/.pylintrc PythonClient/carla PythonClient/*.py + - pylint --disable=R,C --rcfile=PythonClient/.pylintrc PythonClient/carla PythonClient/*.py diff --git a/PythonClient/.pylintrc b/PythonClient/.pylintrc index f369d5bde..acb22ba72 100644 --- a/PythonClient/.pylintrc +++ b/PythonClient/.pylintrc @@ -1,3 +1,4 @@ [TYPECHECK] -ignored-modules=ConfigParser,numpy,pygame,shutil +ignore=carla_server_pb2.py +ignored-modules=ConfigParser,numpy,numpy.random,pygame,shutil ignored-classes=_socketobject From 0d05d70b5e54150ce32c1be5bdc1ecbac30dca74 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Tue, 9 Jan 2018 13:00:07 +0100 Subject: [PATCH 038/121] Testing ci configurations --- .travis.yml | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 664e105a1..161e7ce28 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,16 +1,28 @@ language: python os: linux -dist: xenial +dist: trusty # xenial is not yet supported. +python: "3.5" -python: - - "2.7" - - "3.5" - - "3.6" +matrix: + include: -install: - - pip install -r PythonClient/requirements.txt - - pip install pylint + - env: TEST="Pylint" + python: + - "2.7" + - "3.5" + - "3.6" + install: + - pip install -r PythonClient/requirements.txt + - pip install pylint + script: + - pylint --disable=R,C --rcfile=PythonClient/.pylintrc PythonClient/carla PythonClient/*.py + + - env: TEST="CppCheck" + addons: + apt: + packages: + - cppcheck + script: + - cppcheck Unreal/CarlaUE4/Source Unreal/CarlaUE4/Plugins/Carla/Source Util/ -iUtil/Build -iUtil/CarlaServer/source/carla/server/carla_server.pb.cc --quiet --error-exitcode=1 --enable=warning -script: - - pylint --disable=R,C --rcfile=PythonClient/.pylintrc PythonClient/carla PythonClient/*.py From a7e3fef096356a09b6b23e06cd886b723a865f03 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Tue, 9 Jan 2018 13:20:53 +0100 Subject: [PATCH 039/121] Testing ci configurations --- .travis.yml | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/.travis.yml b/.travis.yml index 161e7ce28..00bd90b42 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,22 +2,21 @@ language: python os: linux dist: trusty # xenial is not yet supported. -python: "3.5" + +env: TEST="Pylint" +python: + - "3.5" + - "3.6" + - "2.7" +install: + - pip install -r PythonClient/requirements.txt + - pip install pylint +script: + - pylint --disable=R,C --rcfile=PythonClient/.pylintrc PythonClient/carla PythonClient/*.py matrix: include: - - env: TEST="Pylint" - python: - - "2.7" - - "3.5" - - "3.6" - install: - - pip install -r PythonClient/requirements.txt - - pip install pylint - script: - - pylint --disable=R,C --rcfile=PythonClient/.pylintrc PythonClient/carla PythonClient/*.py - - env: TEST="CppCheck" addons: apt: @@ -25,4 +24,3 @@ matrix: - cppcheck script: - cppcheck Unreal/CarlaUE4/Source Unreal/CarlaUE4/Plugins/Carla/Source Util/ -iUtil/Build -iUtil/CarlaServer/source/carla/server/carla_server.pb.cc --quiet --error-exitcode=1 --enable=warning - From 2e76bb32734951f8d91023be4753e8eee8c95eb3 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Tue, 9 Jan 2018 13:24:33 +0100 Subject: [PATCH 040/121] Skip ci installation step --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 00bd90b42..62d7b54af 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,6 +18,7 @@ matrix: include: - env: TEST="CppCheck" + install: true addons: apt: packages: From bd8c12089d3219e81e79f816b204bffb15f03a0b Mon Sep 17 00:00:00 2001 From: nsubiron Date: Tue, 9 Jan 2018 15:52:09 +0100 Subject: [PATCH 041/121] Fix pylint warnings --- PythonClient/.pylintrc | 2 +- PythonClient/carla/client.py | 5 ++--- PythonClient/carla/sensor.py | 2 +- PythonClient/carla/settings.py | 11 +++++++---- PythonClient/carla/tcp.py | 13 ++++++------- PythonClient/carla/util.py | 6 +++--- PythonClient/client_example.py | 5 ----- PythonClient/manual_control.py | 6 ++---- 8 files changed, 22 insertions(+), 28 deletions(-) diff --git a/PythonClient/.pylintrc b/PythonClient/.pylintrc index acb22ba72..dd0ef806f 100644 --- a/PythonClient/.pylintrc +++ b/PythonClient/.pylintrc @@ -1,4 +1,4 @@ [TYPECHECK] ignore=carla_server_pb2.py ignored-modules=ConfigParser,numpy,numpy.random,pygame,shutil -ignored-classes=_socketobject +ignored-classes=_socketobject,EpisodeReady diff --git a/PythonClient/carla/client.py b/PythonClient/carla/client.py index fedf0e490..1f969d3f0 100644 --- a/PythonClient/carla/client.py +++ b/PythonClient/carla/client.py @@ -17,7 +17,6 @@ from . import util try: from . import carla_server_pb2 as carla_protocol - from carla_protocol import EpisodeReady except ImportError: raise RuntimeError('cannot import "carla_server_pb2.py", run the protobuf compiler to generate this file') @@ -97,7 +96,7 @@ class CarlaClient(object): data = self._world_client.read() if not data: raise RuntimeError('failed to read data from server') - pb_message = EpisodeReady() + pb_message = carla_protocol.EpisodeReady() pb_message.ParseFromString(data) if not pb_message.ready: raise RuntimeError('cannot start episode: server failed to start episode') @@ -160,7 +159,7 @@ class CarlaClient(object): raise RuntimeError('failed to read data from server') pb_message = carla_protocol.SceneDescription() pb_message.ParseFromString(data) - self._sensor_names = settings._get_sensor_names(carla_settings) + self._sensor_names = settings.get_sensor_names(carla_settings) self._is_episode_requested = True return pb_message diff --git a/PythonClient/carla/sensor.py b/PythonClient/carla/sensor.py index e8cccb9e9..f4e14333a 100644 --- a/PythonClient/carla/sensor.py +++ b/PythonClient/carla/sensor.py @@ -113,7 +113,7 @@ class Image(SensorData): size=(self.width, self.height), data=self.raw_data, decoder_name='raw') - b, g, r, a = image.split() + b, g, r, _ = image.split() image = PImage.merge("RGB", (r, g, b)) folder = os.path.dirname(filename) diff --git a/PythonClient/carla/settings.py b/PythonClient/carla/settings.py index 0fcc98767..f0eb50218 100644 --- a/PythonClient/carla/settings.py +++ b/PythonClient/carla/settings.py @@ -122,18 +122,21 @@ class CarlaSettings(object): return text.getvalue().replace(' = ', '=') -def _get_sensor_names(settings): +def get_sensor_names(settings): """ Return a list with the names of the sensors defined in the settings object. The settings object can be a CarlaSettings or an INI formatted string. """ if isinstance(settings, CarlaSettings): + # pylint: disable=protected-access return [camera.CameraName for camera in settings._cameras] ini = ConfigParser() - if sys.version_info >= (3, 0): - ini.readfp(io.StringIO(settings)) + if sys.version_info >= (3, 2): + ini.read_string(settings) + elif sys.version_info >= (3, 0): + ini.readfp(io.StringIO(settings)) # pylint: disable=deprecated-method else: - ini.readfp(io.BytesIO(settings)) + ini.readfp(io.BytesIO(settings)) # pylint: disable=deprecated-method section_name = 'CARLA/SceneCapture' option_name = 'Cameras' diff --git a/PythonClient/carla/tcp.py b/PythonClient/carla/tcp.py index b9ca34b6a..5dd9ed9ef 100644 --- a/PythonClient/carla/tcp.py +++ b/PythonClient/carla/tcp.py @@ -39,19 +39,18 @@ class TCPClient(object): try: self._socket = socket.create_connection(address=(self._host, self._port), timeout=self._timeout) self._socket.settimeout(self._timeout) - logging.debug(self._logprefix + 'connected') + logging.debug('%sconnected', self._logprefix) return - except Exception as exception: + except OSError as exception: error = exception - logging.debug(self._logprefix + 'connection attempt %d: %s', attempt, error) + logging.debug('%sconnection attempt %d: %s', self._logprefix, attempt, error) time.sleep(1) - continue self._reraise_exception_as_tcp_error('failed to connect', error) def disconnect(self): """Disconnect any active connection.""" if self._socket is not None: - logging.debug(self._logprefix + 'disconnecting') + logging.debug('%sdisconnecting', self._logprefix) self._socket.close() self._socket = None @@ -66,7 +65,7 @@ class TCPClient(object): header = struct.pack(' 0: try: data = self._socket.recv(length) - except Exception as exception: + except OSError as exception: self._reraise_exception_as_tcp_error('failed to read data', exception) if not data: raise TCPConnectionError(self._logprefix + 'connection closed') diff --git a/PythonClient/carla/util.py b/PythonClient/carla/util.py index 02fb4db8e..ce668235c 100644 --- a/PythonClient/carla/util.py +++ b/PythonClient/carla/util.py @@ -53,9 +53,9 @@ else: # Workaround for older Python versions. def print_over_same_line(text): - line_length = max(print_over_same_line._last_line_length, len(text)) + line_length = max(print_over_same_line.last_line_length, len(text)) empty_space = max(0, line_length - len(text)) sys.stdout.write('\r' + text + empty_space * ' ') sys.stdout.flush() - print_over_same_line._last_line_length = line_length - print_over_same_line._last_line_length = 0 + print_over_same_line.last_line_length = line_length + print_over_same_line.last_line_length = 0 diff --git a/PythonClient/client_example.py b/PythonClient/client_example.py index 9be0c4301..2b687313d 100755 --- a/PythonClient/client_example.py +++ b/PythonClient/client_example.py @@ -13,7 +13,6 @@ from __future__ import print_function import argparse import logging import random -import sys import time from carla.client import make_carla_client @@ -213,14 +212,10 @@ def main(): settings_filepath=args.carla_settings) print('Done.') - return except TCPConnectionError as error: logging.error(error) time.sleep(1) - except Exception as exception: - logging.exception(exception) - sys.exit(1) if __name__ == '__main__': diff --git a/PythonClient/manual_control.py b/PythonClient/manual_control.py index 329d831a0..dfca225db 100755 --- a/PythonClient/manual_control.py +++ b/PythonClient/manual_control.py @@ -30,7 +30,6 @@ from __future__ import print_function import argparse import logging import random -import sys import time try: @@ -131,6 +130,8 @@ class CarlaGame(object): self._map = CarlaMap(city_name) if city_name is not None else None self._map_shape = self._map.map_image.shape if city_name is not None else None self._map_view = self._map.get_map(WINDOW_HEIGHT) if city_name is not None else None + self._position = None + self._agent_positions = None def execute(self): """Launch the PyGame.""" @@ -363,9 +364,6 @@ def main(): except TCPConnectionError as error: logging.error(error) time.sleep(1) - except Exception as exception: - logging.exception(exception) - sys.exit(1) if __name__ == '__main__': From 1252dd80e851f3216c1e3aa3c3de8141b5cbb480 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Tue, 9 Jan 2018 15:58:50 +0100 Subject: [PATCH 042/121] Fix more pylint warnings --- PythonClient/carla/planner/map.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/PythonClient/carla/planner/map.py b/PythonClient/carla/planner/map.py index 22c651118..8779bb169 100644 --- a/PythonClient/carla/planner/map.py +++ b/PythonClient/carla/planner/map.py @@ -38,14 +38,14 @@ class CarlaMap(object): city_map_file = os.path.join(dir_path, city + '.png') city_map_file_lanes = os.path.join(dir_path, city + 'Lanes.png') - with open(city_file, 'r') as file: + with open(city_file, 'r') as file_object: - linewordloffset = file.readline() + linewordloffset = file_object.readline() # The offset of the world from the zero coordinates ( The # coordinate we consider zero) self.worldoffset = string_to_floats(linewordloffset) - lineworldangles = file.readline() + lineworldangles = file_object.readline() self.angles = string_to_floats(lineworldangles) self.worldrotation = np.array([ @@ -55,14 +55,14 @@ class CarlaMap(object): # Ignore for now, these are offsets for map coordinates and scale # (not used). - _ = file.readline() - linemapoffset = file.readline() + _ = file_object.readline() + linemapoffset = file_object.readline() # The offset of the map zero coordinate. self.mapoffset = string_to_floats(linemapoffset) # the graph resolution. - linegraphres = file.readline() + linegraphres = file_object.readline() self.resolution = string_to_node(linegraphres) # The number of game units per pixel. From 80a3c26cabb7771ea42756493e4600963dfccc95 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Tue, 9 Jan 2018 16:13:20 +0100 Subject: [PATCH 043/121] Verbose Cppcheck command --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 62d7b54af..360dbf880 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,4 +24,4 @@ matrix: packages: - cppcheck script: - - cppcheck Unreal/CarlaUE4/Source Unreal/CarlaUE4/Plugins/Carla/Source Util/ -iUtil/Build -iUtil/CarlaServer/source/carla/server/carla_server.pb.cc --quiet --error-exitcode=1 --enable=warning + - cppcheck Unreal/CarlaUE4/Source Unreal/CarlaUE4/Plugins/Carla/Source Util/ -iUtil/Build -iUtil/CarlaServer/source/carla/server/carla_server.pb.cc --error-exitcode=1 --enable=warning From e1847f2001b6da1092169e7d6529275edd7f85e7 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Tue, 9 Jan 2018 16:23:50 +0100 Subject: [PATCH 044/121] Fix warning and make Cppcheck quiet again --- .travis.yml | 2 +- .../Plugins/Carla/Source/Carla/MapGen/CityMapMeshHolder.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 360dbf880..62d7b54af 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,4 +24,4 @@ matrix: packages: - cppcheck script: - - cppcheck Unreal/CarlaUE4/Source Unreal/CarlaUE4/Plugins/Carla/Source Util/ -iUtil/Build -iUtil/CarlaServer/source/carla/server/carla_server.pb.cc --error-exitcode=1 --enable=warning + - cppcheck Unreal/CarlaUE4/Source Unreal/CarlaUE4/Plugins/Carla/Source Util/ -iUtil/Build -iUtil/CarlaServer/source/carla/server/carla_server.pb.cc --quiet --error-exitcode=1 --enable=warning diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshHolder.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshHolder.h index ea646cf55..9cad7d854 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshHolder.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshHolder.h @@ -102,7 +102,7 @@ private: USceneComponent *SceneRootComponent; UPROPERTY(Category = "Map Generation", VisibleAnywhere) - float MapScale; + float MapScale = 1.0f; UPROPERTY(Category = "Meshes", EditAnywhere) TMap StaticMeshes; From 84b20488d13657733f54da60fc8d9349a240d0ed Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 10 Jan 2018 13:29:52 +0100 Subject: [PATCH 045/121] Update coding standard --- Docs/CONTRIBUTING.md | 44 ++++++++++++++++++++++++++--------- Util/ImageConverter/Makefile | 2 +- Util/ImageConverter/README.md | 4 ++-- 3 files changed, 36 insertions(+), 14 deletions(-) diff --git a/Docs/CONTRIBUTING.md b/Docs/CONTRIBUTING.md index 85055e9f6..3438010e1 100644 --- a/Docs/CONTRIBUTING.md +++ b/Docs/CONTRIBUTING.md @@ -15,7 +15,7 @@ Reporting bugs -------------- Use our [issue section](issueslink) on GitHub. Please check before that the -issue was not already added. +issue is not already reported. [issueslink]: https://github.com/carla-simulator/carla/issues @@ -31,10 +31,14 @@ your request as a new issue. Code contributions ------------------ +So you are considering making a code contribution, great! we love to have +contributions from the community. + Before starting hands-on on coding, please check out the -[projects page][projectslink] to see if we are already working on that. In case -of doubt or to discuss how to proceed, please contact one of us (or send an -email to carla.simulator@gmail.com). +[projects page][projectslink] to see if we are already working on that, it would +be a pity putting an effort into something just to discover that someone else +was already working on that. In case of doubt or to discuss how to proceed, +please contact one of us (or send an email to carla.simulator@gmail.com). [projectslink]: https://github.com/carla-simulator/carla/projects/1 @@ -42,22 +46,40 @@ email to carla.simulator@gmail.com). Check out the ["CARLA Design"](carla_design.md) document to get an idea on the different modules that compose CARLA, and chose the most appropriate one to hold -the new feature. +the new feature. We are aware the developers documentation is still scarce, +please ask us in case of doubt, and of course don't hesitate to improve the +current documentation if you feel confident enough. -#### Coding style +#### Coding standard Please follow the current coding style when submitting new code. +###### General + * Use spaces, not tabs. - * Comments should not exceed 80 columns, code may exceed this limit a bit in rare -occasions if it results in clearer code. + * Avoid adding trailing whitespace as it creates noise in the diffs. + * Comments should not exceed 80 columns, code may exceed this limit a bit in rare occasions if it results in clearer code. + +###### Python + + * All code must be compatible with Python 2.7, 3.5, and 3.6. + * [Pylint](https://www.pylint.org/) should not give any error or warning (few exceptions apply with external classes like `numpy`, see our `.pylintrc`). * Python code follows [PEP8 style guide](https://www.python.org/dev/peps/pep-0008/) (use `autopep8` whenever possible). - * Unreal C++ code, CarlaUE4 and Carla plugin, follow the [Unreal Engine's Coding Standard](https://docs.unrealengine.com/latest/INT/Programming/Development/CodingStandard/) with the exception of using spaces instead of tabs. + +###### C++ + + * Compilation should not give any error or warning (`clang++ -Wall -Wextra -std=C++14`). + * Unreal C++ code (CarlaUE4 and Carla plugin) follow the [Unreal Engine's Coding Standard](https://docs.unrealengine.com/latest/INT/Programming/Development/CodingStandard/) with the exception of using spaces instead of tabs. * CarlaServer uses [Google's style guide](https://google.github.io/styleguide/cppguide.html). -#### Pull request +#### Pull-requests Once you think your contribution is ready to be added to CARLA, please submit a -pull request and one of our team members will take a look at it. +pull-request to the `dev` branch. Try to be as descriptive as possible when filling the pull-request description. + +Please note that there are some checks that the new code is required to pass +before we can do the merge. The checks are automatically run by the continuous +integration system, you will see a green tick mark if all the checks succeeded. +If you see a red mark, please correct your code accordingly. diff --git a/Util/ImageConverter/Makefile b/Util/ImageConverter/Makefile index 011da4c42..c4c0013e0 100644 --- a/Util/ImageConverter/Makefile +++ b/Util/ImageConverter/Makefile @@ -1,4 +1,4 @@ -CXX=g++ +CXX=clang++ FLAGS=-Wall -Wextra -std=c++14 -fopenmp LIBS=-lboost_system -lboost_filesystem -lboost_program_options -lpng -ljpeg -ltiff HEADERS=*.h diff --git a/Util/ImageConverter/README.md b/Util/ImageConverter/README.md index fa73b7f93..979d87503 100644 --- a/Util/ImageConverter/README.md +++ b/Util/ImageConverter/README.md @@ -4,9 +4,9 @@ Image Converter Converts output images of depth and semantic segmentation to a prettier format. Requires boost_system, boost_filesystem, boost_program_options, libpng, libtiff, -libjpeg and openmp. +libjpeg and libomp. -Compile with `g++ -std=c++14 -fopenmp`, for the default compilation just run +Compile with `clang++ -std=c++14 -fopenmp`, for the default compilation just run make make From bbb3b283af5c185f5d1e5dcf6833192b2441e6d9 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 10 Jan 2018 17:55:39 +0100 Subject: [PATCH 046/121] Fix #2 create a random engine for each vehicle derived from the spawner's random engine --- .../Carla/Source/Carla/AI/VehicleSpawnerBase.cpp | 2 +- .../Source/Carla/AI/WheeledVehicleAIController.cpp | 2 ++ .../Source/Carla/AI/WheeledVehicleAIController.h | 12 ++++-------- .../Carla/Source/Carla/Game/CarlaGameModeBase.cpp | 3 ++- .../Plugins/Carla/Source/Carla/Util/RandomEngine.cpp | 7 +++++++ .../Plugins/Carla/Source/Carla/Util/RandomEngine.h | 8 +++++++- 6 files changed, 23 insertions(+), 11 deletions(-) diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/VehicleSpawnerBase.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/VehicleSpawnerBase.cpp index e8030de9a..1bd86bf47 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/VehicleSpawnerBase.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/VehicleSpawnerBase.cpp @@ -104,7 +104,7 @@ void AVehicleSpawnerBase::SpawnVehicleAtSpawnPoint( Vehicle->SpawnDefaultController(); auto Controller = GetController(Vehicle); if (Controller != nullptr) { // Sometimes fails... - Controller->SetRandomEngine(GetRandomEngine()); + Controller->GetRandomEngine()->Seed(GetRandomEngine()->GenerateSeed()); Controller->SetRoadMap(GetRoadMap()); Controller->SetAutopilot(true); Vehicles.Add(Vehicle); diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WheeledVehicleAIController.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WheeledVehicleAIController.cpp index ec9c7e5f7..af67fd6fd 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WheeledVehicleAIController.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WheeledVehicleAIController.cpp @@ -73,6 +73,8 @@ static void ClearQueue(std::queue &Queue) AWheeledVehicleAIController::AWheeledVehicleAIController(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) { + RandomEngine = CreateDefaultSubobject(TEXT("RandomEngine")); + PrimaryActorTick.bCanEverTick = true; PrimaryActorTick.TickGroup = TG_PrePhysics; } diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WheeledVehicleAIController.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WheeledVehicleAIController.h index c4e51c74f..d0ea753ce 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WheeledVehicleAIController.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WheeledVehicleAIController.h @@ -98,14 +98,10 @@ public: /// @{ public: - void SetRandomEngine(URandomEngine *InRandomEngine) - { - RandomEngine = InRandomEngine; - } - UFUNCTION(Category = "Random Engine", BlueprintCallable) URandomEngine *GetRandomEngine() { + check(RandomEngine != nullptr); return RandomEngine; } @@ -221,13 +217,13 @@ private: private: UPROPERTY() - ACarlaWheeledVehicle *Vehicle; + ACarlaWheeledVehicle *Vehicle = nullptr; UPROPERTY() - URoadMap *RoadMap; + URoadMap *RoadMap = nullptr; UPROPERTY() - URandomEngine *RandomEngine; + URandomEngine *RandomEngine = nullptr; UPROPERTY(VisibleAnywhere) bool bAutopilotEnabled = false; diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.cpp index 3352bafe8..16b42a3ec 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.cpp @@ -176,7 +176,8 @@ void ACarlaGameModeBase::BeginPlay() VehicleSpawner->SetSeed(CarlaSettings.SeedVehicles); VehicleSpawner->SetRoadMap(RoadMap); if (PlayerController != nullptr) { - PlayerController->SetRandomEngine(VehicleSpawner->GetRandomEngine()); + PlayerController->GetRandomEngine()->Seed( + VehicleSpawner->GetRandomEngine()->GenerateSeed()); } } else { UE_LOG(LogCarla, Error, TEXT("Missing vehicle spawner actor!")); diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/RandomEngine.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/RandomEngine.cpp index 91f299282..a15237b88 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/RandomEngine.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/RandomEngine.cpp @@ -17,3 +17,10 @@ int32 URandomEngine::GenerateRandomSeed() std::numeric_limits::max()); return Distribution(RandomDevice); } + +int32 URandomEngine::GenerateSeed() +{ + return GetUniformIntInRange( + std::numeric_limits::lowest(), + std::numeric_limits::max()); +} diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/RandomEngine.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/RandomEngine.h index a124baf20..8e49954a7 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/RandomEngine.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/RandomEngine.h @@ -18,13 +18,19 @@ class URandomEngine : public UObject public: // =========================================================================== - /// @name Set and get seed + /// @name Seed // =========================================================================== /// @{ + /// Generate a non-deterministic random seed. UFUNCTION(BlueprintCallable) static int32 GenerateRandomSeed(); + /// Generate a seed derived from previous seed. + UFUNCTION(BlueprintCallable) + int32 GenerateSeed(); + + /// Seed the random engine. UFUNCTION(BlueprintCallable) void Seed(int32 InSeed) { From b1589f5fdd718b3c4e04d214d5ef61d75473f801 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Thu, 11 Jan 2018 14:56:43 +0100 Subject: [PATCH 047/121] Add repeatability test --- .gitignore | 2 +- PythonClient/test/test_repeatability.py | 168 ++++++++++++++++++++++++ 2 files changed, 169 insertions(+), 1 deletion(-) create mode 100755 PythonClient/test/test_repeatability.py diff --git a/.gitignore b/.gitignore index fa06fd814..7efe9136a 100644 --- a/.gitignore +++ b/.gitignore @@ -22,5 +22,5 @@ Util/Build .tags* .vs __pycache__ -_images +_images* core diff --git a/PythonClient/test/test_repeatability.py b/PythonClient/test/test_repeatability.py new file mode 100755 index 000000000..a37d83a3c --- /dev/null +++ b/PythonClient/test/test_repeatability.py @@ -0,0 +1,168 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de +# Barcelona (UAB), and the INTEL Visual Computing Lab. +# +# This work is licensed under the terms of the MIT license. +# For a copy, see . + +"""Client that runs two servers simultaneously to test repeatability.""" + +import argparse +import logging +import os +import random +import sys +import time + +sys.path.append(os.path.join(os.path.dirname(__file__), '..')) + +from carla.client import make_carla_client +from carla.sensor import Camera, Image +from carla.settings import CarlaSettings +from carla.tcp import TCPConnectionError + + +def run_carla_clients(args): + filename = '_images_repeatability/server{:d}/{:0>6d}.png' + with make_carla_client(args.host1, args.port1) as client1: + logging.info('1st client connected') + with make_carla_client(args.host2, args.port2) as client2: + logging.info('2nd client connected') + + settings = CarlaSettings() + settings.set( + SynchronousMode=True, + SendNonPlayerAgentsInfo=True, + NumberOfVehicles=50, + NumberOfPedestrians=50, + WeatherId=random.choice([1, 3, 7, 8, 14])) + settings.randomize_seeds() + + if args.images_to_disk: + camera = Camera('DefaultCamera') + camera.set_image_size(800, 600) + settings.add_sensor(camera) + + scene1 = client1.load_settings(settings) + scene2 = client2.load_settings(settings) + + number_of_player_starts = len(scene1.player_start_spots) + assert number_of_player_starts == len(scene2.player_start_spots) + player_start = random.randint(0, max(0, number_of_player_starts - 1)) + logging.info( + 'start episode at %d/%d player start (run forever, press ctrl+c to cancel)', + player_start, + number_of_player_starts) + + client1.start_episode(player_start) + client2.start_episode(player_start) + + frame = 0 + while True: + frame += 1 + + meas1, sensor_data1 = client1.read_data() + meas2, sensor_data2 = client2.read_data() + + player1 = meas1.player_measurements + player2 = meas2.player_measurements + + images1 = [x for x in sensor_data1.values() if isinstance(x, Image)] + images2 = [x for x in sensor_data2.values() if isinstance(x, Image)] + + control1 = player1.autopilot_control + control2 = player2.autopilot_control + + try: + assert len(images1) == len(images2) + assert len(meas1.non_player_agents) == len(meas2.non_player_agents) + assert player1.transform.location.x == player2.transform.location.x + assert player1.transform.location.y == player2.transform.location.y + assert player1.transform.location.z == player2.transform.location.z + assert control1.steer == control2.steer + assert control1.throttle == control2.throttle + assert control1.brake == control2.brake + assert control1.hand_brake == control2.hand_brake + assert control1.reverse == control2.reverse + except AssertionError: + logging.exception('assertion failed') + + if args.images_to_disk: + assert len(images1) == 1 + images1[0].save_to_disk(filename.format(1, frame)) + images2[0].save_to_disk(filename.format(2, frame)) + + client1.send_control(control1) + client2.send_control(control2) + + +def main(): + argparser = argparse.ArgumentParser(description=__doc__) + argparser.add_argument( + '-v', '--verbose', + action='store_true', + dest='debug', + help='print debug information') + argparser.add_argument( + '--log', + metavar='LOG_FILE', + default=None, + help='print output to file') + argparser.add_argument( + '--host1', + metavar='H', + default='127.0.0.1', + help='IP of the first host server (default: 127.0.0.1)') + argparser.add_argument( + '-p1', '--port1', + metavar='P', + default=2000, + type=int, + help='TCP port to listen to the first server (default: 2000)') + argparser.add_argument( + '--host2', + metavar='H', + default='127.0.0.1', + help='IP of the second host server (default: 127.0.0.1)') + argparser.add_argument( + '-p2', '--port2', + metavar='P', + default=3000, + type=int, + help='TCP port to listen to the second server (default: 3000)') + argparser.add_argument( + '-i', '--images-to-disk', + action='store_true', + help='save images to disk') + + args = argparser.parse_args() + + logging_config = { + 'format': '%(levelname)s: %(message)s', + 'level': logging.DEBUG if args.debug else logging.INFO + } + if args.log: + logging_config['filename'] = args.log + logging_config['filemode'] = 'w+' + logging.basicConfig(**logging_config) + + logging.info('listening to 1st server at %s:%s', args.host1, args.port1) + logging.info('listening to 2nd server at %s:%s', args.host2, args.port2) + + while True: + try: + + run_carla_clients(args) + + except TCPConnectionError as error: + logging.error(error) + time.sleep(1) + + +if __name__ == '__main__': + + try: + main() + except KeyboardInterrupt: + print('\nCancelled by user. Bye!') From 45f8ec54fe7e2300d3f0834e5be82403660022ef Mon Sep 17 00:00:00 2001 From: felipecode Date: Fri, 12 Jan 2018 15:59:00 +0100 Subject: [PATCH 048/121] Fixing some coding issues for travis integration --- PythonClient/carla/benchmarks/agent.py | 22 ++- PythonClient/carla/benchmarks/corl_2017.py | 151 ++++++++------------- PythonClient/carla/benchmarks/metrics.py | 2 +- PythonClient/carla/planner/astar.py | 18 +-- PythonClient/carla/planner/city_track.py | 129 +++++++----------- PythonClient/carla/planner/converter.py | 30 ++-- PythonClient/carla/planner/graph.py | 19 +-- PythonClient/carla/planner/grid.py | 27 ++-- PythonClient/carla/planner/map.py | 48 +++---- PythonClient/carla/planner/planner.py | 33 ++--- 10 files changed, 198 insertions(+), 281 deletions(-) diff --git a/PythonClient/carla/benchmarks/agent.py b/PythonClient/carla/benchmarks/agent.py index 63f4e7b77..8a6c65363 100644 --- a/PythonClient/carla/benchmarks/agent.py +++ b/PythonClient/carla/benchmarks/agent.py @@ -11,25 +11,24 @@ from __future__ import print_function import abc -from carla.planner.planner import Planner +from carla.planner.planner import Planner + class Agent(object): - def __init__(self,city_name, **kwargs): - __metaclass__ = abc.ABCMeta + def __init__(self, city_name): + __metaclass__ = abc.ABCMeta # Try to remove self._planner = Planner(city_name) - def get_distance(self,start_point,end_point): - - path_distance=self._planner.get_shortest_path_distance( - [start_point.location.x,start_point.location.y,22] - ,[start_point.orientation.x,start_point.orientation.y,22] - ,[end_point.location.x,end_point.location.y,22] - ,[end_point.orientation.x,end_point.orientation.y,22]) + def get_distance(self, start_point, end_point): + path_distance = self._planner.get_shortest_path_distance( + [start_point.location.x, start_point.location.y, 22] + , [start_point.orientation.x, start_point.orientation.y, 22] + , [end_point.location.x, end_point.location.y, 22] + , [end_point.orientation.x, end_point.orientation.y, 22]) # We calculate the timout based on the distance return path_distance - @abc.abstractmethod def run_step(self, measurements, sensor_data, target): """ @@ -37,4 +36,3 @@ class Agent(object): :param The measurements like speed, the image data and a target :returns A carla Control object, with the steering/gas/brake for the agent """ - diff --git a/PythonClient/carla/benchmarks/corl_2017.py b/PythonClient/carla/benchmarks/corl_2017.py index fdaaec8a1..8f61b17cd 100644 --- a/PythonClient/carla/benchmarks/corl_2017.py +++ b/PythonClient/carla/benchmarks/corl_2017.py @@ -16,141 +16,118 @@ from .experiment import Experiment from carla.sensor import Camera from carla.settings import CarlaSettings - from .metrics import compute_summary - class CoRL2017(Benchmark): - def get_all_statistics(self): summary = compute_summary(os.path.join( - self._full_name, self._suffix_name),[3]) + self._full_name, self._suffix_name), [3]) return summary - def plot_summary_train(self): - - self._plot_summary([1.0,3.0,6.0,8.0]) + self._plot_summary([1.0, 3.0, 6.0, 8.0]) def plot_summary_test(self): + self._plot_summary([4.0, 14.0]) - self._plot_summary([4.0,14.0]) - - - def _plot_summary(self,weathers): + def _plot_summary(self, weathers): """ We plot the summary of the testing for the set selected weathers. The test weathers are [4,14] """ - metrics_summary = compute_summary(os.path.join( - self._full_name, self._suffix_name),[3]) + self._full_name, self._suffix_name), [3]) - - for metric,values in metrics_summary.items(): + for metric, values in metrics_summary.items(): print('Metric : ', metric) for weather, tasks in values.items(): if weather in set(weathers): - print(' Weather: ',weather) - count =0 + print(' Weather: ', weather) + count = 0 for t in tasks: - - print(' Task ',count,' -> ',t) + print(' Task ', count, ' -> ', t) count += 1 + print(' AvG -> ', float(sum(tasks)) / float(len(tasks))) - print(' AvG -> ',float(sum(tasks))/float(len(tasks))) - - - - - - def _calculate_time_out(self,path_distance): + def _calculate_time_out(self, path_distance): """ Function to return the timeout ( in miliseconds) that is calculated based on distance to goal. This is the same timeout as used on the CoRL paper. """ - return ((path_distance/100000.0)/10.0)*3600.0 + 10.0 - - - + return ((path_distance / 100000.0) / 10.0) * 3600.0 + 10.0 def _poses_town01(self): """ Each matrix is a new task. We have all the four tasks """ - def _poses_straight(): - return [[36,40],[39,35],[110,114],[7,3],[0,4], - [68,50],[61,59],[47,64],[147,90],[33,87], - [26,19],[80,76],[45,49],[55,44],[29,107], - [95,104],[84,34],[53,67],[22,17],[91,148], - [20,107],[78,70],[95,102],[68,44],[45,69]] + def _poses_straight(): + return [[36, 40], [39, 35], [110, 114], [7, 3], [0, 4], + [68, 50], [61, 59], [47, 64], [147, 90], [33, 87], + [26, 19], [80, 76], [45, 49], [55, 44], [29, 107], + [95, 104], [84, 34], [53, 67], [22, 17], [91, 148], + [20, 107], [78, 70], [95, 102], [68, 44], [45, 69]] def _poses_one_curve(): - return [[138,17],[47,16],[26,9],[42,49],[140,124], - [85,98],[65,133],[137,51],[76,66],[46,39], - [40,60],[0,29],[4,129],[121,140],[2,129], - [78,44],[68,85],[41,102],[95,70],[68,129], - [84,69],[47,79],[110,15],[130,17],[0,17]] + return [[138, 17], [47, 16], [26, 9], [42, 49], [140, 124], + [85, 98], [65, 133], [137, 51], [76, 66], [46, 39], + [40, 60], [0, 29], [4, 129], [121, 140], [2, 129], + [78, 44], [68, 85], [41, 102], [95, 70], [68, 129], + [84, 69], [47, 79], [110, 15], [130, 17], [0, 17]] def _poses_navigation(): - return [[105,29],[27,130],[102,87],[132,27],[24,44], - [96,26],[34,67],[28,1],[140,134],[105,9], - [148,129],[65,18],[21,16],[147,97],[42,51], - [30,41],[18,107],[69,45],[102,95],[18,145], - [111,64],[79,45],[84,69],[73,31],[37,81]] - - - return [ _poses_straight(), - _poses_one_curve(), - _poses_navigation(), - _poses_navigation()] - + return [[105, 29], [27, 130], [102, 87], [132, 27], [24, 44], + [96, 26], [34, 67], [28, 1], [140, 134], [105, 9], + [148, 129], [65, 18], [21, 16], [147, 97], [42, 51], + [30, 41], [18, 107], [69, 45], [102, 95], [18, 145], + [111, 64], [79, 45], [84, 69], [73, 31], [37, 81]] + return [_poses_straight(), + _poses_one_curve(), + _poses_navigation(), + _poses_navigation()] def _poses_town02(self): - def _poses_straight(): return [[38, 34], [4, 2], [12, 10], [62, 55], [43, 47], - [64, 66], [78, 76],[59,57],[61,18],[35,39], - [12,8],[0,18],[75,68],[54,60],[45,49], - [46,42],[53,46],[80,29],[65,63],[0,81], - [54,63],[51,42],[16,19],[17,26],[77,68]] + [64, 66], [78, 76], [59, 57], [61, 18], [35, 39], + [12, 8], [0, 18], [75, 68], [54, 60], [45, 49], + [46, 42], [53, 46], [80, 29], [65, 63], [0, 81], + [54, 63], [51, 42], [16, 19], [17, 26], [77, 68]] def _poses_one_curve(): return [[37, 76], [8, 24], [60, 69], [38, 10], [21, 1], - [58,71],[74,32],[44,0],[71,16],[14,24], - [34,11],[43,14],[75,16],[80,21],[3,23], - [75,59],[50,47],[11,19],[77,34],[79,25], - [40,63],[58,76],[79,55],[16,61],[27,11]] + [58, 71], [74, 32], [44, 0], [71, 16], [14, 24], + [34, 11], [43, 14], [75, 16], [80, 21], [3, 23], + [75, 59], [50, 47], [11, 19], [77, 34], [79, 25], + [40, 63], [58, 76], [79, 55], [16, 61], [27, 11]] def _poses_navigation(): - return [[19,66],[79,14],[19,57],[23,1], - [53,76],[42,13],[31,71],[33,5], - [54,30],[10,61],[66,3],[27,12], - [79,19],[2,29],[16,14],[5,57], - [70,73],[46,67],[57,50],[61,49],[21,12], - [51,81],[77,68],[56,65],[43,54]] - - return [ _poses_straight(), - _poses_one_curve(), - _poses_navigation(), - _poses_navigation() - ] + return [[19, 66], [79, 14], [19, 57], [23, 1], + [53, 76], [42, 13], [31, 71], [33, 5], + [54, 30], [10, 61], [66, 3], [27, 12], + [79, 19], [2, 29], [16, 14], [5, 57], + [70, 73], [46, 67], [57, 50], [61, 49], [21, 12], + [51, 81], [77, 68], [56, 65], [43, 54]] + return [_poses_straight(), + _poses_one_curve(), + _poses_navigation(), + _poses_navigation() + ] def _build_experiments(self): """ @@ -164,38 +141,30 @@ class CoRL2017(Benchmark): camera = Camera('CameraRGB') camera.set(CameraFOV=100) - camera.set_image_size(800, 600) camera.set_position(200, 0, 140) - camera.set_rotation(-15.0,0,0) + camera.set_rotation(-15.0, 0, 0) - weathers = [1,3,6,8,4,14] + weathers = [1, 3, 6, 8, 4, 14] if self._city_name == 'Town01': poses_tasks = self._poses_town01() - vehicles_tasks =[0,0,0,20] - pedestrians_tasks = [0,0,0,50] + vehicles_tasks = [0, 0, 0, 20] + pedestrians_tasks = [0, 0, 0, 50] else: poses_tasks = self._poses_town02() - vehicles_tasks =[0,0,0,15] - pedestrians_tasks = [0,0,0,50] - - + vehicles_tasks = [0, 0, 0, 15] + pedestrians_tasks = [0, 0, 0, 50] experiments_vector = [] - for weather in weathers: - for iteration in range(len(poses_tasks)): - poses = poses_tasks[iteration] vehicles = vehicles_tasks[iteration] pedestrians = pedestrians_tasks[iteration] - - conditions = CarlaSettings() conditions.set( SynchronousMode=True, @@ -216,7 +185,7 @@ class CoRL2017(Benchmark): Poses=poses, Id=iteration, Repetitions=1 - ) + ) experiments_vector.append(experiment) return experiments_vector @@ -226,12 +195,10 @@ class CoRL2017(Benchmark): # Function to get automatic information from the experiment for writing purposes return 'corl2017_' + self._city_name - def _get_pose_and_task(self, line_on_file): """ Returns the pose and task this experiment is, based on the line it was on the log file. """ # We assume that the number of poses is constant - return int(line_on_file/len(self._experiments)), line_on_file % 25 - + return int(line_on_file / len(self._experiments)), line_on_file % 25 diff --git a/PythonClient/carla/benchmarks/metrics.py b/PythonClient/carla/benchmarks/metrics.py index 3f6ced110..b08b1730c 100644 --- a/PythonClient/carla/benchmarks/metrics.py +++ b/PythonClient/carla/benchmarks/metrics.py @@ -68,7 +68,7 @@ def get_distance_traveled(selected_matrix, header): i += 1 - return (float(acummulated_distance)/float(100*1000)) + return float(acummulated_distance)/float(100*1000) diff --git a/PythonClient/carla/planner/astar.py b/PythonClient/carla/planner/astar.py index 76a6626ee..d22bbc2d5 100644 --- a/PythonClient/carla/planner/astar.py +++ b/PythonClient/carla/planner/astar.py @@ -1,5 +1,6 @@ import heapq + class Cell(object): def __init__(self, x, y, reachable): """Initialize new cell. @@ -20,7 +21,6 @@ class Cell(object): self.h = 0 self.f = 0 - def __lt__(self, other): return self.g < other.g @@ -36,6 +36,8 @@ class AStar(object): self.cells = [] self.grid_height = None self.grid_width = None + self.start = None + self.end = None def init_grid(self, width, height, walls, start, end): """Prepare grid cells, walls. @@ -85,14 +87,14 @@ class AStar(object): @returns adjacent cells list. """ cells = [] - if cell.x < self.grid_width-1: - cells.append(self.get_cell(cell.x+1, cell.y)) + if cell.x < self.grid_width - 1: + cells.append(self.get_cell(cell.x + 1, cell.y)) if cell.y > 0: - cells.append(self.get_cell(cell.x, cell.y-1)) + cells.append(self.get_cell(cell.x, cell.y - 1)) if cell.x > 0: - cells.append(self.get_cell(cell.x-1, cell.y)) - if cell.y < self.grid_height-1: - cells.append(self.get_cell(cell.x, cell.y+1)) + cells.append(self.get_cell(cell.x - 1, cell.y)) + if cell.y < self.grid_height - 1: + cells.append(self.get_cell(cell.x, cell.y + 1)) return cells def get_path(self): @@ -145,4 +147,4 @@ class AStar(object): else: self.update_cell(adj_cell, cell) # add adj cell to open list - heapq.heappush(self.opened, (adj_cell.f, adj_cell)) \ No newline at end of file + heapq.heappush(self.opened, (adj_cell.f, adj_cell)) diff --git a/PythonClient/carla/planner/city_track.py b/PythonClient/carla/planner/city_track.py index 72bec3d26..db543b44d 100644 --- a/PythonClient/carla/planner/city_track.py +++ b/PythonClient/carla/planner/city_track.py @@ -1,17 +1,12 @@ -import math - - -import numpy as np - from carla.planner.graph import sldist from carla.planner.astar import AStar from carla.planner.map import CarlaMap + class CityTrack(object): - - def __init__(self,city_name): + def __init__(self, city_name): self._node_density = 50.0 self._pixel_density = 16.43 @@ -24,134 +19,112 @@ class CityTrack(object): self._previous_node = [] # The current computed route - self._route =None + self._route = None - def project_node(self, position, node_orientation): + def project_node(self, position): """ Projecting the graph node into the city road """ - node =self._map.convert_to_node(position) + node = self._map.convert_to_node(position) # To change the orientation with respect to the map standards - #node_orientation = np.array([node_orientation[0], - # node_orientation[1]]) - node = tuple([ int(x) for x in node ]) + node = tuple([int(x) for x in node]) # Set to zero if it is less than zero. - node =(max(0,node[0]),max(0,node[1])) - node =(min(self._map.get_graph_resolution()[0]-1,node[0]), - min(self._map.get_graph_resolution()[1]-1,node[1])) - # is it x or y ? Check to avoid special corner cases - - - #if math.fabs(node_orientation[0]) > math.fabs(node_orientation[1]): - # node_orientation = (node_orientation[0], 0.0, 0.0) - #else: - # node_orientation = (0.0, node_orientation[1], 0.0) - - node = self._map._grid.search_on_grid(node[0], node[1]) + node = (max(0, node[0]), max(0, node[1])) + node = (min(self._map.get_graph_resolution()[0] - 1, node[0]), + min(self._map.get_graph_resolution()[1] - 1, node[1])) + node = self._map.search_on_grid(node) return node + def get_intersection_nodes(self): + return self._map.get_intersection_nodes() def get_pixel_density(self): return self._pixel_density + def get_node_density(self): return self._node_density - def is_at_goal(self,source,target): + def is_at_goal(self, source, target): return source == target - def is_at_new_node(self,current_node): + def is_at_new_node(self, current_node): return current_node != self._previous_node - - def is_away_from_intersection(self,current_node): + def is_away_from_intersection(self, current_node): return self._closest_intersection_position(current_node) > 1 - def is_far_away_from_route_intersection(self,current_node): + def is_far_away_from_route_intersection(self, current_node): # CHECK FOR THE EMPTY CASE - if self._route == None: + if self._route is None: raise RuntimeError('Impossible to find route' - + ' Current planner is limited' - + ' Try to select start points away from interesections') - + + ' Current planner is limited' + + ' Try to select start points away from intersections') return self._closest_intersection_route_position(current_node, - self._route) > 4 - - - - def compute_route(self,node_source,source_ori,node_target,target_ori): + self._route) > 4 + def compute_route(self, node_source, source_ori, node_target, target_ori): self._previous_node = node_source - - a_star =AStar() + a_star = AStar() a_star.init_grid(self._map.get_graph_resolution()[0], - self._map.get_graph_resolution()[1], - self._map.get_walls_directed(node_source,source_ori, - node_target,target_ori),node_source, - node_target) - + self._map.get_graph_resolution()[1], + self._map.get_walls_directed(node_source, source_ori, + node_target, target_ori), node_source, + node_target) route = a_star.solve() - - # JuSt a Corner Case # TODO: Clean this to avoid having to use this function - if route == None: - a_star =AStar() + if route is None: + a_star = AStar() a_star.init_grid(self._map.get_graph_resolution()[0], - self._map.get_graph_resolution()[1],self._map.get_walls(), - node_source, node_target) + self._map.get_graph_resolution()[1], self._map.get_walls(), + node_source, node_target) route = a_star.solve() - self._route = route return route - - def _closest_intersection_position(self, current_node): - - distance_vector = [] - for node_iterator in self._map._graph.intersection_nodes(): - - distance_vector.append(sldist(node_iterator, current_node)) - - return sorted(distance_vector)[0] - - def _closest_intersection_route_position(self, current_node,route): - - distance_vector = [] - for node_iter in route: - for node_iterator in self._map._graph.intersection_nodes(): - - distance_vector.append(sldist(node_iterator, current_node)) - - return sorted(distance_vector)[0] - - - def get_distance_closest_node_route(self, pos, route): distance = [] for node_iter in route: - if node_iter in self.graph.intersection_nodes(): - + if node_iter in self._map.get_intersection_nodes(): distance.append(sldist(node_iter, pos)) if not distance: - return sldist(route[-1], pos) return sorted(distance)[0] + + def _closest_intersection_position(self, current_node): + + distance_vector = [] + for node_iterator in self._map.get_intersection_nodes(): + distance_vector.append(sldist(node_iterator, current_node)) + + return sorted(distance_vector)[0] + +""" + def _closest_intersection_route_position(self, current_node, route): + + distance_vector = [] + for _ in route: + for node_iterator in self._map.get_intersection_nodes(): + distance_vector.append(sldist(node_iterator, current_node)) + + return sorted(distance_vector)[0] +""" diff --git a/PythonClient/carla/planner/converter.py b/PythonClient/carla/planner/converter.py index dce2ba71f..f417f7610 100644 --- a/PythonClient/carla/planner/converter.py +++ b/PythonClient/carla/planner/converter.py @@ -1,8 +1,7 @@ import math import numpy as np -from carla.planner.graph import string_to_node,string_to_floats - +from carla.planner.graph import string_to_floats # Constant definition enumeration @@ -18,7 +17,6 @@ class Converter(object): self._node_density = node_density self._pixel_density = pixel_density with open(city_file, 'r') as f: - # The offset of the world from the zero coordinates ( The # coordinate we consider zero) self._worldoffset = string_to_floats(f.readline()) @@ -38,14 +36,13 @@ class Converter(object): # The offset of the map zero coordinate. self._mapoffset = string_to_floats(f.readline()) - def convert_to_node(self,input_data): + def convert_to_node(self, input_data): """ Receives a data type (Can Be Pixel or World ) :param input_data: position in some coordinate :return: A vector representing a node """ - input_type = self._check_input_type(input_data) if input_type == PIXEL: return self._pixel_to_node(input_data) @@ -54,9 +51,7 @@ class Converter(object): else: raise ValueError('Invalid node to be converted') - - - def convert_to_pixel(self,input_data): + def convert_to_pixel(self, input_data): """ Receives a data type (Can Be Node or World ) @@ -72,8 +67,7 @@ class Converter(object): else: raise ValueError('Invalid node to be converted') - - def convert_to_world(self,input_data): + def convert_to_world(self, input_data): """ Receives a data type (Can Be Pixel or Node ) @@ -109,22 +103,22 @@ class Converter(object): , int(((pixel[1]) / self._node_density) - 2)] return tuple(node) - def _pixel_to_world(self,pixel): + + def _pixel_to_world(self, pixel): """ Conversion from pixel format (image) to world (3D) :param pixel: :return: world """ - - relative_location = [ pixel[0] * self._pixel_density, + relative_location = [pixel[0] * self._pixel_density, pixel[1] * self._pixel_density] world = [ relative_location[0] + self._mapoffset[0] - self._worldoffset[0], relative_location[1] + self._mapoffset[1] - self._worldoffset[1], 22 - ] + ] return world @@ -139,11 +133,11 @@ class Converter(object): rotation = rotation.dot(self._worldrotation) relative_location = [rotation[0] + self._worldoffset[0] - self._mapoffset[0], - rotation[1] + self._worldoffset[1] - self._mapoffset[1], - rotation[2] + self._worldoffset[2] - self._mapoffset[2]] + rotation[1] + self._worldoffset[1] - self._mapoffset[1], + rotation[2] + self._worldoffset[2] - self._mapoffset[2]] pixel = [math.floor(relative_location[0] / float(self._pixel_density)), - math.floor(relative_location[1] / float(self._pixel_density))] + math.floor(relative_location[1] / float(self._pixel_density))] return pixel @@ -161,5 +155,3 @@ class Converter(object): return NODE else: return PIXEL - - diff --git a/PythonClient/carla/planner/graph.py b/PythonClient/carla/planner/graph.py index 92c1933c5..54769e859 100644 --- a/PythonClient/carla/planner/graph.py +++ b/PythonClient/carla/planner/graph.py @@ -13,12 +13,12 @@ def string_to_floats(string): def sldist(c1, c2): - return math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) + return math.sqrt((c2[0] - c1[0]) ** 2 + (c2[1] - c1[1]) ** 2) def sldist3(c1, c2): - return math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1]) - ** 2 + (c2[2] - c1[2])**2) + return math.sqrt((c2[0] - c1[0]) ** 2 + (c2[1] - c1[1]) + ** 2 + (c2[2] - c1[2]) ** 2) class Graph(object): @@ -72,14 +72,12 @@ class Graph(object): sorted(distance_dic.items())) self._angles[node] = heading - for k, v in distance_dic.iteritems(): - - + for k, v in distance_dic.items(): start_to_goal = np.array([node[0] - v[0], node[1] - v[1]]) print(start_to_goal) - self.angles[v] = start_to_goal / np.linalg.norm(start_to_goal) + self._angles[v] = start_to_goal / np.linalg.norm(start_to_goal) def add_edge(self, from_node, to_node, distance): self._add_edge(from_node, to_node, distance) @@ -89,6 +87,11 @@ class Graph(object): self._edges[from_node].append(to_node) self._distances[(from_node, to_node)] = distance + def get_resolution(self): + return self._resolution + def get_edges(self): + return self._edges + def intersection_nodes(self): intersect_nodes = [] @@ -111,7 +114,7 @@ class Graph(object): line_len = 1 lines = [[(p[0], p[1]), (p[0] + line_len * self._angles[p][0], - p[1] + line_len * self._angles[p][1])] for p in self.nodes] + p[1] + line_len * self._angles[p][1])] for p in self._nodes] lc = mc.LineCollection(lines, linewidth=2, color='green') fig, ax = plt.subplots() ax.add_collection(lc) diff --git a/PythonClient/carla/planner/grid.py b/PythonClient/carla/planner/grid.py index 01d9eb9f1..3e7d8bcf4 100644 --- a/PythonClient/carla/planner/grid.py +++ b/PythonClient/carla/planner/grid.py @@ -14,25 +14,26 @@ class Grid(object): self._structure = self._make_structure() self._walls = self._make_walls() - def search_on_grid(self, x, y): visit = [[0, 1], [0, -1], [1, 0], [1, 1], [1, -1], [-1, 0], [-1, 1], [-1, -1]] c_x, c_y = x, y scale = 1 - while(self._structure[c_x, c_y] != 0): + while self._structure[c_x, c_y] != 0: for offset in visit: c_x, c_y = x + offset[0] * scale, y + offset[1] * scale - if c_x >= 0 and c_x < self._graph._resolution[ - 0] and c_y >= 0 and c_y < self._graph._resolution[1]: + if c_x >= 0 and c_x < self._graph.get_resolution()[ + 0] and c_y >= 0 and c_y < self._graph.get_resolution()[1]: if self._structure[c_x, c_y] == 0: break else: c_x, c_y = x, y scale += 1 - return (c_x, c_y) + return c_x, c_y + def get_walls(self): + return self._walls def get_wall_source(self, pos, pos_ori, target): @@ -46,10 +47,8 @@ class Grid(object): start_to_goal = np.array([adj[0] - pos[0], adj[1] - pos[1]]) angle = angle_between(heading_start, start_to_goal) if (angle > 1.6 and adj != target): - final_walls.add((adj[0], adj[1])) - return final_walls def get_wall_target(self, pos, pos_ori, source): @@ -63,10 +62,8 @@ class Grid(object): angle = angle_between(heading_start, start_to_goal) if (angle < 1.0 and adj != source): - final_walls.add((adj[0], adj[1])) - return final_walls def _draw_line(self, grid, xi, yi, xf, yf): @@ -84,21 +81,19 @@ class Grid(object): for i in range(xi, xf + 1): for j in range(yi, yf + 1): - grid[i, j] = 0.0 return grid def _make_structure(self): structure = np.ones( - (self._graph._resolution[0], - self._graph._resolution[1])) + (self._graph.get_resolution()[0], + self._graph.get_resolution()[1])) - for key, connections in self._graph._edges.items(): + for key, connections in self._graph.get_edges().items(): # draw a line for con in connections: - # print key[0],key[1],con[0],con[1] structure = self._draw_line( structure, key[0], key[1], con[0], con[1]) @@ -125,8 +120,8 @@ class Grid(object): for offset in visit: node = (pos[0] + offset[0], pos[1] + offset[1]) - if (node[0] >= 0 and node[0] < self._graph._resolution[0] - and node[1] >= 0 and node[1] < self._graph._resolution[1]): + if (node[0] >= 0 and node[0] < self._graph.get_resolution()[0] + and node[1] >= 0 and node[1] < self._graph.get_resolution()[1]): if self._structure[node[0], node[1]] == 0.0: adjacent.add(node) diff --git a/PythonClient/carla/planner/map.py b/PythonClient/carla/planner/map.py index 25806f71b..9c8decb70 100644 --- a/PythonClient/carla/planner/map.py +++ b/PythonClient/carla/planner/map.py @@ -9,7 +9,6 @@ import math import os - try: import numpy as np except ImportError: @@ -21,12 +20,14 @@ except ImportError: raise RuntimeError('cannot import PIL, make sure pillow package is installed') from carla.planner.graph import Graph +from carla.planner.graph import sldist from carla.planner.grid import Grid from carla.planner.converter import Converter def color_to_angle(color): - return ((float(color)/255.0)) * 2*math.pi + return ((float(color) / 255.0)) * 2 * math.pi + class CarlaMap(object): @@ -48,8 +49,6 @@ class CarlaMap(object): self._converter = Converter(city_file, pixel_density, node_density) - - # Load the lanes image self.map_image_lanes = Image.open(city_map_file_lanes) self.map_image_lanes.load() @@ -64,18 +63,17 @@ class CarlaMap(object): self.map_image_center.load() self.map_image_center = np.asarray(self.map_image_center, dtype="int32") - def get_graph_resolution(self): - return self._graph._resolution + return self._graph.get_resolution() def get_map(self, height=None): if height is not None: img = Image.fromarray(self.map_image.astype(np.uint8)) - aspect_ratio = height/float(self.map_image.shape[0]) + aspect_ratio = height / float(self.map_image.shape[0]) - img = img.resize((int(aspect_ratio*self.map_image.shape[1]),height), Image.ANTIALIAS) + img = img.resize((int(aspect_ratio * self.map_image.shape[1]), height), Image.ANTIALIAS) img.load() return np.asarray(img, dtype="int32") return np.fliplr(self.map_image) @@ -97,31 +95,29 @@ class CarlaMap(object): return (-math.cos(ori), -math.sin(ori)) - def convert_to_node(self, input): + def convert_to_node(self, input_data): """ Receives a data type (Can Be Pixel or World ) - :param input: position in some coordinate + :param input_data: position in some coordinate :return: A node object """ - return self._converter.convert_to_node(input) + return self._converter.convert_to_node(input_data) - def convert_to_pixel(self, input): + def convert_to_pixel(self, input_data): """ Receives a data type (Can Be Pixel or World ) - :param input: position in some coordinate + :param input_data: position in some coordinate :return: A node object """ - return self._converter.convert_to_pixel(input) + return self._converter.convert_to_pixel(input_data) - def convert_to_world(self, input): + def convert_to_world(self, input_data): """ Receives a data type (Can Be Pixel or World ) - :param input: position in some coordinate + :param input_data: position in some coordinate :return: A node object """ - return self._converter.convert_to_world(input) - - + return self._converter.convert_to_world(input_data) def get_walls_directed(self, node_source, source_ori, node_target, target_ori): """ @@ -134,23 +130,23 @@ class CarlaMap(object): final_walls = self._grid.get_wall_source(node_source, source_ori, node_target) final_walls = final_walls.union(self._grid.get_wall_target( - node_target, target_ori, node_source)) + node_target, target_ori, node_source)) return final_walls - def get_walls(self): - return self._grid._walls - - + return self._grid.get_walls() def get_distance_closest_node(self, pos): distance = [] - for node_iter in self.graph.intersection_nodes(): - + for node_iter in self._graph.intersection_nodes(): distance.append(sldist(node_iter, pos)) return sorted(distance)[0] + def get_intersection_nodes(self): + return self._graph.intersection_nodes() + def search_on_grid(self,node): + return self._grid.search_on_grid(node[0], node[1]) \ No newline at end of file diff --git a/PythonClient/carla/planner/planner.py b/PythonClient/carla/planner/planner.py index 907696751..45949503b 100644 --- a/PythonClient/carla/planner/planner.py +++ b/PythonClient/carla/planner/planner.py @@ -1,10 +1,8 @@ import collections import math - import numpy as np - from . import city_track @@ -28,7 +26,7 @@ def angle_between(v1, v2): return np.arccos(np.dot(v1, v2) / np.linalg.norm(v1) / np.linalg.norm(v2)) -def sldist(c1, c2): return math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) +def sldist(c1, c2): return math.sqrt((c2[0] - c1[0]) ** 2 + (c2[1] - c1[1]) ** 2) def signal(v1, v2): @@ -43,7 +41,6 @@ class Planner(object): self._commands = [] - def get_next_command(self, source, source_ori, target, target_ori): """ Computes the full plan and returns the next command, @@ -54,8 +51,8 @@ class Planner(object): :return: a command ( Straight,Lane Follow, Left or Right) """ - track_source = self._city_track.project_node(source, source_ori) - track_target = self._city_track.project_node(target, target_ori) + track_source = self._city_track.project_node(source) + track_target = self._city_track.project_node(target) # reach the goal @@ -100,8 +97,8 @@ class Planner(object): target_ori): distance = 0 - track_source = self._city_track.project_node(source, source_ori) - track_target = self._city_track.project_node(target, target_ori) + track_source = self._city_track.project_node(source) + track_target = self._city_track.project_node(target) current_pos = track_source @@ -112,30 +109,26 @@ class Planner(object): return 0.0 for node_iter in route: - distance += sldist(node_iter, current_pos) current_pos = node_iter # We multiply by these values to convert distance to world coordinates return distance * self._city_track.get_pixel_density() \ - * self._city_track.get_node_density() - + * self._city_track.get_node_density() def is_there_posible_route(self, source, source_ori, target, target_ori): - track_source = self._city_track.project_node(source, source_ori) - track_target = self._city_track.project_node(target, target_ori) + track_source = self._city_track.project_node(source) + track_target = self._city_track.project_node(target) return not self._city_track.compute_route( track_source, source_ori, track_target, target_ori) is None - def test_position(self, source, source_ori): - - node_source = self._city_track.project_node(source, source_ori) - - return self.is_away_from_intersection(node_source) + def test_position(self, source): + node_source = self._city_track.project_node(source) + return self._city_track.is_away_from_intersection(node_source) def _route_to_commands(self, route): @@ -146,11 +139,10 @@ class Planner(object): :return: list of commands encoded from 0-5 """ - commands_list = [] for i in range(0, len(route)): - if route[i] not in self._city_track._map._graph.intersection_nodes(): + if route[i] not in self._city_track.get_intersection_nodes(): continue current = route[i] @@ -163,7 +155,6 @@ class Planner(object): [future[0] - current[0], future[1] - current[1]]) angle = signal(current_to_future, past_to_current) - if angle < -0.1: command = TURN_RIGHT elif angle > 0.1: From 4083adcba2f09e2802045b7e482f6515f6d97990 Mon Sep 17 00:00:00 2001 From: felipecode Date: Fri, 12 Jan 2018 15:57:53 -0200 Subject: [PATCH 049/121] Adding dependencies and fixing a few bugs --- PythonClient/carla/planner/city_track.py | 4 ++-- PythonClient/manual_control.py | 2 +- PythonClient/requirements.txt | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/PythonClient/carla/planner/city_track.py b/PythonClient/carla/planner/city_track.py index db543b44d..f7adff1b1 100644 --- a/PythonClient/carla/planner/city_track.py +++ b/PythonClient/carla/planner/city_track.py @@ -118,7 +118,7 @@ class CityTrack(object): return sorted(distance_vector)[0] -""" + def _closest_intersection_route_position(self, current_node, route): distance_vector = [] @@ -127,4 +127,4 @@ class CityTrack(object): distance_vector.append(sldist(node_iterator, current_node)) return sorted(distance_vector)[0] -""" + diff --git a/PythonClient/manual_control.py b/PythonClient/manual_control.py index dfca225db..9e3d9d69b 100755 --- a/PythonClient/manual_control.py +++ b/PythonClient/manual_control.py @@ -127,7 +127,7 @@ class CarlaGame(object): self._map_view = None self._is_on_reverse = False self._city_name = city_name - self._map = CarlaMap(city_name) if city_name is not None else None + self._map = CarlaMap(city_name, 16.43, 50.0) if city_name is not None else None self._map_shape = self._map.map_image.shape if city_name is not None else None self._map_view = self._map.get_map(WINDOW_HEIGHT) if city_name is not None else None self._position = None diff --git a/PythonClient/requirements.txt b/PythonClient/requirements.txt index 1a697a692..c6c7a2cfe 100644 --- a/PythonClient/requirements.txt +++ b/PythonClient/requirements.txt @@ -2,3 +2,5 @@ Pillow numpy protobuf pygame +matplotlib +builtins From 676656d20b09f62c4eedfb50536a0349ef7621f3 Mon Sep 17 00:00:00 2001 From: felipecode Date: Fri, 12 Jan 2018 16:06:01 -0200 Subject: [PATCH 050/121] Changing requirements --- PythonClient/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PythonClient/requirements.txt b/PythonClient/requirements.txt index c6c7a2cfe..f170835dd 100644 --- a/PythonClient/requirements.txt +++ b/PythonClient/requirements.txt @@ -3,4 +3,4 @@ numpy protobuf pygame matplotlib -builtins +future From 6195653942f725d62d8b05a6b9edb354c6ae7fe8 Mon Sep 17 00:00:00 2001 From: felipecode Date: Fri, 12 Jan 2018 16:31:39 -0200 Subject: [PATCH 051/121] Removing travis warnings --- PythonClient/carla/benchmarks/agent.py | 2 +- PythonClient/carla/benchmarks/benchmark.py | 2 +- PythonClient/carla/planner/astar.py | 2 +- PythonClient/carla/planner/city_track.py | 2 +- PythonClient/carla/planner/graph.py | 8 ++--- PythonClient/carla/planner/test_planner.py | 41 ++++++++++++++++++++++ 6 files changed, 49 insertions(+), 8 deletions(-) create mode 100644 PythonClient/carla/planner/test_planner.py diff --git a/PythonClient/carla/benchmarks/agent.py b/PythonClient/carla/benchmarks/agent.py index 8a6c65363..c71f4c1db 100644 --- a/PythonClient/carla/benchmarks/agent.py +++ b/PythonClient/carla/benchmarks/agent.py @@ -16,7 +16,7 @@ from carla.planner.planner import Planner class Agent(object): def __init__(self, city_name): - __metaclass__ = abc.ABCMeta # Try to remove + self.__metaclass__ = abc.ABCMeta self._planner = Planner(city_name) def get_distance(self, start_point, end_point): diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index a008d4d46..c138a7c8b 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -40,7 +40,7 @@ class Benchmark(object): continue_experiment=False, save_images=False): - __metaclass__ = abc.ABCMeta + self.__metaclass__ = abc.ABCMeta self._city_name = city_name diff --git a/PythonClient/carla/planner/astar.py b/PythonClient/carla/planner/astar.py index d22bbc2d5..e322395ec 100644 --- a/PythonClient/carla/planner/astar.py +++ b/PythonClient/carla/planner/astar.py @@ -128,7 +128,7 @@ class AStar(object): heapq.heappush(self.opened, (self.start.f, self.start)) while len(self.opened): # pop cell from heap queue - f, cell = heapq.heappop(self.opened) + _, cell = heapq.heappop(self.opened) # add cell to closed list so we don't process it twice self.closed.add(cell) # if ending cell, return found path diff --git a/PythonClient/carla/planner/city_track.py b/PythonClient/carla/planner/city_track.py index f7adff1b1..4223426c8 100644 --- a/PythonClient/carla/planner/city_track.py +++ b/PythonClient/carla/planner/city_track.py @@ -84,7 +84,7 @@ class CityTrack(object): route = a_star.solve() # JuSt a Corner Case - # TODO: Clean this to avoid having to use this function + # Clean this to avoid having to use this function if route is None: a_star = AStar() a_star.init_grid(self._map.get_graph_resolution()[0], diff --git a/PythonClient/carla/planner/graph.py b/PythonClient/carla/planner/graph.py index 54769e859..54913b00f 100644 --- a/PythonClient/carla/planner/graph.py +++ b/PythonClient/carla/planner/graph.py @@ -35,9 +35,9 @@ class Graph(object): self._node_density = node_density if graph_file is not None: - with open(graph_file, 'r') as file: + with open(graph_file, 'r') as f: # Skipe the first four lines that - lines_after_4 = file.readlines()[4:] + lines_after_4 = f.readlines()[4:] # the graph resolution. linegraphres = lines_after_4[0] @@ -72,7 +72,7 @@ class Graph(object): sorted(distance_dic.items())) self._angles[node] = heading - for k, v in distance_dic.items(): + for _, v in distance_dic.items(): start_to_goal = np.array([node[0] - v[0], node[1] - v[1]]) print(start_to_goal) @@ -116,7 +116,7 @@ class Graph(object): lines = [[(p[0], p[1]), (p[0] + line_len * self._angles[p][0], p[1] + line_len * self._angles[p][1])] for p in self._nodes] lc = mc.LineCollection(lines, linewidth=2, color='green') - fig, ax = plt.subplots() + _, ax = plt.subplots() ax.add_collection(lc) ax.autoscale() diff --git a/PythonClient/carla/planner/test_planner.py b/PythonClient/carla/planner/test_planner.py new file mode 100644 index 000000000..9d977cf44 --- /dev/null +++ b/PythonClient/carla/planner/test_planner.py @@ -0,0 +1,41 @@ +from carla import sensor +from carla.sensor import Camera +from carla.settings import CarlaSettings +from carla.tcp import TCPConnectionError +from carla.util import print_over_same_line +from carla.planner.planner import Planner + +from carla.carla_server_pb2 import Control + + + + +planner= Planner('Town01') + + + + +resolution = planner._city_track._map.get_graph_resolution() + +for i in range(resolution[0]): + for j in range(resolution[1]): + + world_source = planner._city_track._map.convert_to_world((i,j)) + source_ori = planner._city_track._map.get_lane_orientation(world_source) + print (' Making Route from (',i, ',',j,') o (',source_ori[0],',',source_ori[1],')') + + for k in range(resolution[0]): + for l in range(resolution[1]): + world_target = planner._city_track._map.convert_to_world((k,l)) + + target_ori = planner._city_track._map.get_lane_orientation(world_target) + print (' To (',k, ',',l,') o (',target_ori[0],',',target_ori[1],')') + + path_distance=planner.get_shortest_path_distance( + world_source,source_ori,world_target,target_ori) + + #print ('Distance is ',path_distance) + command=planner.get_next_command( + world_source,source_ori,world_target,target_ori) + #print ('Command is ',command) + #print ('Latest Route ',planner._city_track._route) From 7037a7a36601f3638710c66aa001f4c739838379 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Mon, 15 Jan 2018 14:55:26 +0100 Subject: [PATCH 052/121] Minor improvements to documentation --- Docs/faq.md | 2 +- README.md | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Docs/faq.md b/Docs/faq.md index dea812cb8..448d7decd 100644 --- a/Docs/faq.md +++ b/Docs/faq.md @@ -30,6 +30,6 @@ Once you open the project in the Unreal Editor, you can hit Play to test CARLA. #### How can I create a binary version of CARLA? To compile a binary (packaged) version of CARLA, open the CarlaUE4 project with -Unreal Editor, go to the menu “File -> Package Project”, and select your +Unreal Editor, go to the menu "File -> Package Project", and select your platform. This takes a while, but in the end it should generate a packaged version of CARLA to execute without Unreal Editor. diff --git a/README.md b/README.md index 74f6d5390..572284531 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,13 @@ Felipe Codevilla, Antonio Lopez, Vladlen Koltun; PMLR 78:1-16 } ``` +Contributing +------------ + +Please take a look at our [Contribution guidelines][contriblink]. + +[contriblink]: http://carla.readthedocs.io/en/latest/CONTRIBUTING + License ------- From d9683c810f34bf81be05cc6d51af34ad62fec54c Mon Sep 17 00:00:00 2001 From: nsubiron Date: Mon, 15 Jan 2018 17:03:33 +0100 Subject: [PATCH 053/121] Add option to skip content download, useful for #84 --- Docs/faq.md | 13 ++++++++++++ Docs/troubleshooting.md | 13 ++++++++++++ Setup.sh | 24 ++++++++++++++++------ Update.sh | 45 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 89 insertions(+), 6 deletions(-) diff --git a/Docs/faq.md b/Docs/faq.md index dea812cb8..340e09683 100644 --- a/Docs/faq.md +++ b/Docs/faq.md @@ -27,6 +27,19 @@ building CARLA from source. Once you open the project in the Unreal Editor, you can hit Play to test CARLA. +#### Can I skip the download step in Setup.sh? + +It is possible to skip the download step by passing the `-s` argument to the +setup script + + $ ./Setup.sh -s + +Bear in mind that if you do so, you are supposed to manually download and +extract the content package yourself, check out the last output of the Setup.sh +for instructions or run + + $ ./Update.sh -s + #### How can I create a binary version of CARLA? To compile a binary (packaged) version of CARLA, open the CarlaUE4 project with diff --git a/Docs/troubleshooting.md b/Docs/troubleshooting.md index 7645a6308..106f2e687 100644 --- a/Docs/troubleshooting.md +++ b/Docs/troubleshooting.md @@ -26,3 +26,16 @@ rebuild of all the project files with $ cd Unreal/CarlaUE4/ $ make CarlaUE4Editor ARGS=-clean $ make CarlaUE4Editor + +#### Setup.sh fails to download content + +It is possible to skip the download step by passing the `-s` argument to the +setup script + + $ ./Setup.sh -s + +Bear in mind that if you do so, you are supposed to manually download and +extract the content package yourself, check out the last output of the Setup.sh +for instructions or run + + $ ./Update.sh -s diff --git a/Setup.sh b/Setup.sh index 45b98ac7e..ea30b09e1 100755 --- a/Setup.sh +++ b/Setup.sh @@ -1,10 +1,14 @@ #! /bin/bash ################################################################################ -# CARLA Util Setup +# CARLA Setup.sh # -# This downloads and compiles libc++. So we can build and compile our -# dependencies with libc++ for linking against Unreal. +# This script sets up the environment and dependencies for compiling CARLA on +# Linux. +# +# 1) Download CARLA Content if necessary. +# 2) Download and compile libc++. +# 3) Download other third-party libraries and compile them with libc++. # # Thanks to the people at https://github.com/Microsoft/AirSim for providing the # important parts of this script. @@ -12,6 +16,10 @@ set -e +# ============================================================================== +# -- Set up environment -------------------------------------------------------- +# ============================================================================== + SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" pushd "$SCRIPT_DIR" >/dev/null @@ -22,9 +30,6 @@ command -v clang++-3.9 >/dev/null 2>&1 || { exit 1; } -# Update content. -./Update.sh - mkdir -p Util/Build pushd Util/Build >/dev/null @@ -161,6 +166,13 @@ fi ./Util/Protoc.sh +# ============================================================================== +# -- Update CARLA Content ------------------------------------------------------ +# ============================================================================== + +echo +./Update.sh $@ + # ============================================================================== # -- ...and we are done -------------------------------------------------------- # ============================================================================== diff --git a/Update.sh b/Update.sh index 1b85b5ef8..61f0807ad 100755 --- a/Update.sh +++ b/Update.sh @@ -6,6 +6,38 @@ set -e +# ============================================================================== +# -- Parse arguments ----------------------------------------------------------- +# ============================================================================== + +USAGE_STRING="Usage: $0 [-h|--help] [-s|--skip-download]" + +SKIP_DOWNLOAD=false + +OPTS=`getopt -o hs --long help,skip-download -n 'parse-options' -- "$@"` + +if [ $? != 0 ] ; then echo "$USAGE_STRING" ; exit 2 ; fi + +eval set -- "$OPTS" + +while true; do + case "$1" in + -s | --skip-download ) + SKIP_DOWNLOAD=true; + shift ;; + -h | --help ) + echo "$USAGE_STRING" + exit 1 + ;; + * ) + break ;; + esac +done + +# ============================================================================== +# -- Set up environment -------------------------------------------------------- +# ============================================================================== + SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" pushd "$SCRIPT_DIR" >/dev/null @@ -30,6 +62,19 @@ function download_content { echo "Content updated successfully." } +# ============================================================================== +# -- Download Content if necessary --------------------------------------------- +# ============================================================================== + +if $SKIP_DOWNLOAD ; then + echo "Skipping 'Content' update. Please manually download the package from" + echo + echo " https://drive.google.com/open?id=$CONTENT_GDRIVE_ID" + echo + echo "and extract it under Unreal/CarlaUE4/Content." + exit 0 +fi + if [[ -d "$CONTENT_FOLDER/.git" ]]; then echo "Using git version of 'Content', skipping update." elif [[ -f "$CONTENT_FOLDER/.version" ]]; then From e2995c955820e17a6690da35e9278bd866e3a251 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Tue, 16 Jan 2018 16:09:30 +0100 Subject: [PATCH 054/121] Add code of conduct --- Docs/CODE_OF_CONDUCT.md | 73 +++++++++++++++++++++++++++++++++++++++++ Docs/index.md | 1 + mkdocs.yml | 1 + 3 files changed, 75 insertions(+) create mode 100644 Docs/CODE_OF_CONDUCT.md diff --git a/Docs/CODE_OF_CONDUCT.md b/Docs/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..45904febb --- /dev/null +++ b/Docs/CODE_OF_CONDUCT.md @@ -0,0 +1,73 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +education, socio-economic status, nationality, personal appearance, race, +religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at [INSERT EMAIL ADDRESS]. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org diff --git a/Docs/index.md b/Docs/index.md index 1666c0670..7189698ee 100644 --- a/Docs/index.md +++ b/Docs/index.md @@ -19,6 +19,7 @@ CARLA Documentation #### Contributing * [Contribution guidelines](CONTRIBUTING.md) + * [Code of conduct](CODE_OF_CONDUCT.md) #### Development diff --git a/mkdocs.yml b/mkdocs.yml index 20ed2da28..d3c1acfbb 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -17,6 +17,7 @@ pages: - 'How to add Automotive Materials': 'how_to_add_automotive_materials.md' - Contributing: - 'Contribution guidelines': 'CONTRIBUTING.md' + - 'Code of conduct': 'CODE_OF_CONDUCT.md' - Development: - 'Map customization': 'map_customization.md' - 'How to add assets': 'how_to_add_assets.md' From fb2bd3884d2c2b934ab75ec7f83f8bb50dd6e692 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Tue, 16 Jan 2018 17:43:07 +0100 Subject: [PATCH 055/121] Add pull-request template --- .travis.yml | 2 +- Docs/PULL_REQUEST_TEMPLATE.md | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 Docs/PULL_REQUEST_TEMPLATE.md diff --git a/.travis.yml b/.travis.yml index 62d7b54af..5f123a019 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,4 +24,4 @@ matrix: packages: - cppcheck script: - - cppcheck Unreal/CarlaUE4/Source Unreal/CarlaUE4/Plugins/Carla/Source Util/ -iUtil/Build -iUtil/CarlaServer/source/carla/server/carla_server.pb.cc --quiet --error-exitcode=1 --enable=warning + - cppcheck . -iBuild -i.pb.cc --error-exitcode=1 --enable=warning --quiet diff --git a/Docs/PULL_REQUEST_TEMPLATE.md b/Docs/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..cfaddb774 --- /dev/null +++ b/Docs/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,33 @@ + + +#### Description + + + +Fixes # + +#### Where has this been tested? + + * **Platform(s):** ... + * **Python version(s):** ... + * **Unreal Engine version(s):** ... + +#### Possible Drawbacks + + From 388a8060d7a357cd3451d3863c65c5cbf1ef8cd8 Mon Sep 17 00:00:00 2001 From: felipecode Date: Wed, 17 Jan 2018 13:00:33 +0100 Subject: [PATCH 056/121] organizing benchmark code --- PythonClient/carla/benchmarks/benchmark.py | 7 ++-- PythonClient/carla/benchmarks/corl_2017.py | 4 +-- PythonClient/carla/benchmarks/metrics.py | 10 +++--- PythonClient/carla/planner/test_planner.py | 41 ---------------------- PythonClient/run_benchmark.py | 3 -- 5 files changed, 9 insertions(+), 56 deletions(-) delete mode 100644 PythonClient/carla/planner/test_planner.py diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index c138a7c8b..b62dd2114 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -273,7 +273,7 @@ class Benchmark(object): now.strftime("%Y%m%d%H%M")), 'w') as f: pass - return suffix_name,full_name + return suffix_name, full_name def _continue_experiment(self, continue_experiment): @@ -307,11 +307,8 @@ class Benchmark(object): def _get_last_position(self): with open(os.path.join(self._full_name, self._suffix_name)) as f: + return sum(1 for _ in f) - # Function to count the lines. - for i, l in enumerate(f): - pass - return i # To be redefined on subclasses on how to calculate timeout for an episode @abc.abstractmethod diff --git a/PythonClient/carla/benchmarks/corl_2017.py b/PythonClient/carla/benchmarks/corl_2017.py index 8f61b17cd..85bc15718 100644 --- a/PythonClient/carla/benchmarks/corl_2017.py +++ b/PythonClient/carla/benchmarks/corl_2017.py @@ -59,13 +59,13 @@ class CoRL2017(Benchmark): print(' AvG -> ', float(sum(tasks)) / float(len(tasks))) - def _calculate_time_out(self, path_distance): + def _calculate_time_out(self, distance): """ Function to return the timeout ( in miliseconds) that is calculated based on distance to goal. This is the same timeout as used on the CoRL paper. """ - return ((path_distance / 100000.0) / 10.0) * 3600.0 + 10.0 + return ((distance / 100000.0) / 10.0) * 3600.0 + 10.0 def _poses_town01(self): """ diff --git a/PythonClient/carla/benchmarks/metrics.py b/PythonClient/carla/benchmarks/metrics.py index b08b1730c..e9ca1d80f 100644 --- a/PythonClient/carla/benchmarks/metrics.py +++ b/PythonClient/carla/benchmarks/metrics.py @@ -101,13 +101,13 @@ def get_out_of_road_lane(selected_matrix, header): -def compute_summary(file, dynamic_episodes): +def compute_summary(filename, dynamic_episodes): # Separate the PATH and the basename - path = os.path.dirname(file) - base_name = os.path.basename(file) + path = os.path.dirname(filename) + base_name = os.path.basename(filename) - f = open(file, "rb") + f = open(filename, "rb") header = f.readline() header = header.split(',') header[-1] = header[-1][:-2] @@ -119,7 +119,7 @@ def compute_summary(file, dynamic_episodes): header_rewards[-1] = header_rewards[-1][:-2] f.close() - data_matrix = np.loadtxt(open(file, "rb"), delimiter=",", skiprows=1) + data_matrix = np.loadtxt(open(filename, "rb"), delimiter=",", skiprows=1) tasks = np.unique(data_matrix[:, header.index('exp_id')]) diff --git a/PythonClient/carla/planner/test_planner.py b/PythonClient/carla/planner/test_planner.py deleted file mode 100644 index 9d977cf44..000000000 --- a/PythonClient/carla/planner/test_planner.py +++ /dev/null @@ -1,41 +0,0 @@ -from carla import sensor -from carla.sensor import Camera -from carla.settings import CarlaSettings -from carla.tcp import TCPConnectionError -from carla.util import print_over_same_line -from carla.planner.planner import Planner - -from carla.carla_server_pb2 import Control - - - - -planner= Planner('Town01') - - - - -resolution = planner._city_track._map.get_graph_resolution() - -for i in range(resolution[0]): - for j in range(resolution[1]): - - world_source = planner._city_track._map.convert_to_world((i,j)) - source_ori = planner._city_track._map.get_lane_orientation(world_source) - print (' Making Route from (',i, ',',j,') o (',source_ori[0],',',source_ori[1],')') - - for k in range(resolution[0]): - for l in range(resolution[1]): - world_target = planner._city_track._map.convert_to_world((k,l)) - - target_ori = planner._city_track._map.get_lane_orientation(world_target) - print (' To (',k, ',',l,') o (',target_ori[0],',',target_ori[1],')') - - path_distance=planner.get_shortest_path_distance( - world_source,source_ori,world_target,target_ori) - - #print ('Distance is ',path_distance) - command=planner.get_next_command( - world_source,source_ori,world_target,target_ori) - #print ('Command is ',command) - #print ('Latest Route ',planner._city_track._route) diff --git a/PythonClient/run_benchmark.py b/PythonClient/run_benchmark.py index 81d65ae53..ef3317ac0 100755 --- a/PythonClient/run_benchmark.py +++ b/PythonClient/run_benchmark.py @@ -87,6 +87,3 @@ if __name__ == '__main__': except TCPConnectionError as error: logging.error(error) time.sleep(1) - except Exception as exception: - logging.exception(exception) - sys.exit(1) From bad04d82da4346106c0b43099aef0519e979159b Mon Sep 17 00:00:00 2001 From: felipecode Date: Wed, 17 Jan 2018 14:06:29 +0100 Subject: [PATCH 057/121] Fixing some format issues --- PythonClient/carla/benchmarks/benchmark.py | 9 ++++----- PythonClient/carla/benchmarks/experiment.py | 3 +-- PythonClient/carla/planner/planner.py | 6 +++--- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index b62dd2114..6696bcc62 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -7,7 +7,7 @@ # For a copy, see . -from builtins import input +from builtins import input_data import csv import datetime @@ -269,12 +269,11 @@ class Benchmark(object): # Make a date file: to show when this was modified, # the number of times the experiments were run now = datetime.datetime.now() - with open(os.path.join(full_name, - now.strftime("%Y%m%d%H%M")), 'w') as f: - pass + open(os.path.join(full_name, now.strftime("%Y%m%d%H%M"))).close() return suffix_name, full_name + def _continue_experiment(self, continue_experiment): if self._experiment_exist(): @@ -284,7 +283,7 @@ class Benchmark(object): else: # Ask question, to avoid mistaken override situations - answer = input("The experiment was already found in the files" + answer = input_data("The experiment was already found in the files" + ", Do you want to continue (y/n)? \n" ) if answer == 'Yes' or answer == 'y': diff --git a/PythonClient/carla/benchmarks/experiment.py b/PythonClient/carla/benchmarks/experiment.py index 4340d5599..8626dd797 100644 --- a/PythonClient/carla/benchmarks/experiment.py +++ b/PythonClient/carla/benchmarks/experiment.py @@ -1,11 +1,10 @@ from carla.settings import CarlaSettings -from carla.sensor import Camera class Experiment(object): - def __init__(self, **kwargs): + def __init__(self): self.Id = '' self.Conditions = CarlaSettings() self.Poses = [[]] diff --git a/PythonClient/carla/planner/planner.py b/PythonClient/carla/planner/planner.py index 45949503b..20f84f981 100644 --- a/PythonClient/carla/planner/planner.py +++ b/PythonClient/carla/planner/planner.py @@ -10,9 +10,9 @@ def compare(x, y): return collections.Counter(x) == collections.Counter(y) -""" -Constants Used for the high level commands -""" + +# Constants Used for the high level commands + REACH_GOAL = 0.0 GO_STRAIGHT = 5.0 From d481a5f3ba5dc8cafa1f778cb4ade932e412c7b5 Mon Sep 17 00:00:00 2001 From: felipecode Date: Wed, 17 Jan 2018 14:12:56 +0100 Subject: [PATCH 058/121] Correcting travis issues --- PythonClient/carla/benchmarks/benchmark.py | 4 ++-- PythonClient/carla/benchmarks/corl_2017.py | 1 - PythonClient/run_benchmark.py | 1 - 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index 6696bcc62..a1b113d66 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -7,7 +7,7 @@ # For a copy, see . -from builtins import input_data +from builtins import input as input_data import csv import datetime @@ -269,7 +269,7 @@ class Benchmark(object): # Make a date file: to show when this was modified, # the number of times the experiments were run now = datetime.datetime.now() - open(os.path.join(full_name, now.strftime("%Y%m%d%H%M"))).close() + open(os.path.join(full_name, now.strftime("%Y%m%d%H%M")),'w').close() return suffix_name, full_name diff --git a/PythonClient/carla/benchmarks/corl_2017.py b/PythonClient/carla/benchmarks/corl_2017.py index 85bc15718..cf2cf11c2 100644 --- a/PythonClient/carla/benchmarks/corl_2017.py +++ b/PythonClient/carla/benchmarks/corl_2017.py @@ -9,7 +9,6 @@ from __future__ import print_function import os -import datetime from .benchmark import Benchmark from .experiment import Experiment diff --git a/PythonClient/run_benchmark.py b/PythonClient/run_benchmark.py index ef3317ac0..2aa70e1da 100755 --- a/PythonClient/run_benchmark.py +++ b/PythonClient/run_benchmark.py @@ -8,7 +8,6 @@ import argparse import logging -import sys import time from carla.benchmarks.agent import Agent From 59762f52debd43494a57d4eeb6ac266e02312b3c Mon Sep 17 00:00:00 2001 From: felipecode Date: Wed, 17 Jan 2018 15:21:52 +0100 Subject: [PATCH 059/121] Adding documentation for the benchmarking --- Docs/benchmark.md | 41 ++++++++++++++++++++++++++++++----- PythonClient/run_benchmark.py | 4 ---- 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/Docs/benchmark.md b/Docs/benchmark.md index 64c536607..4eb02d8fa 100644 --- a/Docs/benchmark.md +++ b/Docs/benchmark.md @@ -1,9 +1,6 @@ CARLA Benchmark =============== -!!! important - Benchmark code is currently in beta and can be found only in the - `benchmark_branch`. Running the Benchmark --------------------- @@ -13,8 +10,6 @@ tests on a certain agent. We already provide the same benchmark used in the CoRL 2017 paper. By running this benchmark you can compare the results of your agent to the results obtained by the agents show in the paper. -!!! important - Currently not tested on python 3 Besides the requirements of the CARLA client, the benchmark package also needs the future package @@ -34,3 +29,39 @@ or Run the help command to see options available $ ./run_benchmark.py --help + +Benchmarking your Agent +--------------------- +The benchmark works by calling three lines of code + + corl = CoRL2017(city_name=args.city_name, name_to_save=args.log_name) + agent = Manual(args.city_name) + results = corl.benchmark_agent(agent, client) + +This is excerpted is executed in the run_benchmark.py example. + +First a benchmark object is defined. This is the object that is used to benchmark a certain Agent. + +On the second line of our sample code. There is an object of a Manual class instanced. This class inherited an Agent base class +that is used on the benchmarked. +To be benchmarked an Agent subclass must redefine the *run_step* function as it is done in the following excerpt: + + def run_step(self, measurements, sensor_data, target): + """ + Function to run a control step in the CARLA vehicle. + :param measurements: object of the Measurements type + :param sensor_data: images list object + :param target: target position of Transform type + :return: an object of the control type. + """ + control = VehicleControl() + control.throttle = 0.9 + return control + +The [measurements](https://github.com/carla-simulator/carla/blob/master/Docs/measurements.md), [target](https://github.com/carla-simulator/carla/blob/master/Docs/measurements.md), [sensor_data](https://github.com/carla-simulator/carla/blob/master/Docs/cameras_and_sensors.m) and [control](https://github.com/carla-simulator/carla/blob/master/Docs/measurements.md) types are described at the documentation. + +The function receives measurements from the world, sensor data and a target position. With this the function must return a control to the car, *i.e.* steering value, throttle value, brake value, etc. + +Creating your Benchmark +--------------------- +Tutorial to be added diff --git a/PythonClient/run_benchmark.py b/PythonClient/run_benchmark.py index 2aa70e1da..008347b22 100755 --- a/PythonClient/run_benchmark.py +++ b/PythonClient/run_benchmark.py @@ -24,11 +24,7 @@ class Manual(Agent): """ def run_step(self, measurements, sensor_data, target): control = VehicleControl() - control.steer = 0.0 control.throttle = 0.9 - control.brake = 0.0 - control.hand_brake = False - control.reverse = False return control From 59d857a158c136ea7ff251539ccbb4ef2e9401f6 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 17 Jan 2018 15:25:26 +0100 Subject: [PATCH 060/121] Rename pull-request template --- Docs/{PULL_REQUEST_TEMPLATE.md => pull_request_template.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Docs/{PULL_REQUEST_TEMPLATE.md => pull_request_template.md} (100%) diff --git a/Docs/PULL_REQUEST_TEMPLATE.md b/Docs/pull_request_template.md similarity index 100% rename from Docs/PULL_REQUEST_TEMPLATE.md rename to Docs/pull_request_template.md From bd42d675394a40980758c745d3a1db99250846ac Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 17 Jan 2018 15:25:49 +0100 Subject: [PATCH 061/121] Add issue template --- Docs/issue_template.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 Docs/issue_template.md diff --git a/Docs/issue_template.md b/Docs/issue_template.md new file mode 100644 index 000000000..8328b7bda --- /dev/null +++ b/Docs/issue_template.md @@ -0,0 +1,9 @@ + From 4dc711a20b0db674cc7801622e9d43a940e5ec56 Mon Sep 17 00:00:00 2001 From: felipecode Date: Wed, 17 Jan 2018 15:27:15 +0100 Subject: [PATCH 062/121] Benchmarking added to main README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 74f6d5390..ce1c58288 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ environmental conditions. For instructions on how to use and compile CARLA, check out [CARLA Documentation](http://carla.readthedocs.io). +If you want to benchmark your model in the same conditions as in our CoRL’17 paper, check out [Benchmarking](https://github.com/carla-simulator/carla/blob/benchmark_branch/Docs/benchmark.md). News ---- From f901b05a66f835501b8803ccd7386b6a8f1a2de2 Mon Sep 17 00:00:00 2001 From: felipecode Date: Wed, 17 Jan 2018 15:28:47 +0100 Subject: [PATCH 063/121] Benchmarking added to main README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ce1c58288..82b6d64ab 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ environmental conditions. For instructions on how to use and compile CARLA, check out [CARLA Documentation](http://carla.readthedocs.io). + If you want to benchmark your model in the same conditions as in our CoRL’17 paper, check out [Benchmarking](https://github.com/carla-simulator/carla/blob/benchmark_branch/Docs/benchmark.md). News From f139431c628dc8dbb24783c2ce06955025db8eb9 Mon Sep 17 00:00:00 2001 From: felipecode Date: Wed, 17 Jan 2018 15:33:47 +0100 Subject: [PATCH 064/121] More fix on benchmark documentation --- Docs/benchmark.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/Docs/benchmark.md b/Docs/benchmark.md index 4eb02d8fa..b21096032 100644 --- a/Docs/benchmark.md +++ b/Docs/benchmark.md @@ -1,6 +1,9 @@ CARLA Benchmark =============== +!!! important + Benchmark code is currently in beta and can be found only in the + `benchmark_branch`. Running the Benchmark --------------------- @@ -38,13 +41,12 @@ The benchmark works by calling three lines of code agent = Manual(args.city_name) results = corl.benchmark_agent(agent, client) -This is excerpted is executed in the run_benchmark.py example. +This is excerpt is executed in the run_benchmark.py example. -First a benchmark object is defined. This is the object that is used to benchmark a certain Agent. - -On the second line of our sample code. There is an object of a Manual class instanced. This class inherited an Agent base class -that is used on the benchmarked. -To be benchmarked an Agent subclass must redefine the *run_step* function as it is done in the following excerpt: +First a *benchmark* object is defined. This is the object that is used to benchmark a certain Agent.
+On the second line of our sample code, there is an object of a Manual class instanced. This class inherited an Agent base class +that is used by the *benchmark* object. +To be benchmarked, an Agent subclass must redefine the *run_step* function as it is done in the following excerpt: def run_step(self, measurements, sensor_data, target): """ @@ -57,10 +59,11 @@ To be benchmarked an Agent subclass must redefine the *run_step* function as it control = VehicleControl() control.throttle = 0.9 return control +The function receives measurements from the world, sensor data and a target position. With this the function must return a control to the car, *i.e.* steering value, throttle value, brake value, etc. The [measurements](https://github.com/carla-simulator/carla/blob/master/Docs/measurements.md), [target](https://github.com/carla-simulator/carla/blob/master/Docs/measurements.md), [sensor_data](https://github.com/carla-simulator/carla/blob/master/Docs/cameras_and_sensors.m) and [control](https://github.com/carla-simulator/carla/blob/master/Docs/measurements.md) types are described at the documentation. -The function receives measurements from the world, sensor data and a target position. With this the function must return a control to the car, *i.e.* steering value, throttle value, brake value, etc. + Creating your Benchmark --------------------- From eabec718453ccc552b328baa8704971fbf6f9e09 Mon Sep 17 00:00:00 2001 From: felipecode Date: Wed, 17 Jan 2018 15:35:36 +0100 Subject: [PATCH 065/121] Update benchmark.md --- Docs/benchmark.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docs/benchmark.md b/Docs/benchmark.md index b21096032..4f61ec581 100644 --- a/Docs/benchmark.md +++ b/Docs/benchmark.md @@ -41,7 +41,7 @@ The benchmark works by calling three lines of code agent = Manual(args.city_name) results = corl.benchmark_agent(agent, client) -This is excerpt is executed in the run_benchmark.py example. +This is excerpt is executed in the [run_benchmark.py](https://github.com/carla-simulator/carla/blob/benchmark_branch/PythonClient/run_benchmark.py) example. First a *benchmark* object is defined. This is the object that is used to benchmark a certain Agent.
On the second line of our sample code, there is an object of a Manual class instanced. This class inherited an Agent base class From 3feccb8b22fd2612e5ca496621edc45c9cf51aec Mon Sep 17 00:00:00 2001 From: felipecode Date: Wed, 17 Jan 2018 15:37:38 +0100 Subject: [PATCH 066/121] Update benchmark.md --- Docs/benchmark.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Docs/benchmark.md b/Docs/benchmark.md index 4f61ec581..2dc8ff2b9 100644 --- a/Docs/benchmark.md +++ b/Docs/benchmark.md @@ -43,7 +43,7 @@ The benchmark works by calling three lines of code This is excerpt is executed in the [run_benchmark.py](https://github.com/carla-simulator/carla/blob/benchmark_branch/PythonClient/run_benchmark.py) example. -First a *benchmark* object is defined. This is the object that is used to benchmark a certain Agent.
+First a *benchmark* object is defined, for this case, a CoRL2017 benchmark. This is object is used to benchmark a certain Agent.
On the second line of our sample code, there is an object of a Manual class instanced. This class inherited an Agent base class that is used by the *benchmark* object. To be benchmarked, an Agent subclass must redefine the *run_step* function as it is done in the following excerpt: @@ -59,7 +59,7 @@ To be benchmarked, an Agent subclass must redefine the *run_step* function as it control = VehicleControl() control.throttle = 0.9 return control -The function receives measurements from the world, sensor data and a target position. With this the function must return a control to the car, *i.e.* steering value, throttle value, brake value, etc. +The function receives measurements from the world, sensor data and a target position. With this, the function must return a control to the car, *i.e.* steering value, throttle value, brake value, etc. The [measurements](https://github.com/carla-simulator/carla/blob/master/Docs/measurements.md), [target](https://github.com/carla-simulator/carla/blob/master/Docs/measurements.md), [sensor_data](https://github.com/carla-simulator/carla/blob/master/Docs/cameras_and_sensors.m) and [control](https://github.com/carla-simulator/carla/blob/master/Docs/measurements.md) types are described at the documentation. From de1c0739eaf0213edbb1cef976c9f0664e47069b Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 17 Jan 2018 15:39:45 +0100 Subject: [PATCH 067/121] Test mkdocs formatting --- Docs/faq.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Docs/faq.md b/Docs/faq.md index 448d7decd..d3a88a06c 100644 --- a/Docs/faq.md +++ b/Docs/faq.md @@ -1,6 +1,13 @@ CARLA F.A.Q. ============ +
+ FAQ title here + Your content here...
+ more content...
+ bla bla bla
+
+ #### What is the expected disk space needed for building CARLA? Building CARLA from source requires about 15GB of disk space, not counting From 01c088067ce3b888dc61213449c07155086b9825 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 17 Jan 2018 15:42:25 +0100 Subject: [PATCH 068/121] Test mkdocs formatting --- Docs/faq.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Docs/faq.md b/Docs/faq.md index d3a88a06c..d18eab80b 100644 --- a/Docs/faq.md +++ b/Docs/faq.md @@ -2,10 +2,15 @@ CARLA F.A.Q. ============
- FAQ title here - Your content here...
- more content...
- bla bla bla
+

What is the expected disk space needed for building CARLA?

+ +Building CARLA from source requires about 15GB of disk space, not counting +Unreal Engine installation. + +However, you will also need to build and install Unreal Engine, which on Linux +requires much more disk space as it keeps all the intermediate files, +[see this thread](https://answers.unrealengine.com/questions/430541/linux-engine-size.html). +
#### What is the expected disk space needed for building CARLA? From 36d4e478949e84a241d92670f9078fbbcf718ee0 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 17 Jan 2018 15:52:44 +0100 Subject: [PATCH 069/121] Test mkdocs formatting --- Docs/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docs/faq.md b/Docs/faq.md index d18eab80b..54252ab08 100644 --- a/Docs/faq.md +++ b/Docs/faq.md @@ -2,7 +2,7 @@ CARLA F.A.Q. ============
-

What is the expected disk space needed for building CARLA?

+
What is the expected disk space needed for building CARLA?
Building CARLA from source requires about 15GB of disk space, not counting Unreal Engine installation. From d8042a1ded721f583da42197643b0f17fb26acb7 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 17 Jan 2018 15:56:12 +0100 Subject: [PATCH 070/121] Test mkdocs formatting --- Docs/faq.md | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/Docs/faq.md b/Docs/faq.md index 54252ab08..cf85c002c 100644 --- a/Docs/faq.md +++ b/Docs/faq.md @@ -2,7 +2,9 @@ CARLA F.A.Q. ============
-
What is the expected disk space needed for building CARLA?
+
+ What is the expected disk space needed for building CARLA? +
Building CARLA from source requires about 15GB of disk space, not counting Unreal Engine installation. @@ -13,16 +15,10 @@ requires much more disk space as it keeps all the intermediate files,
-#### What is the expected disk space needed for building CARLA? - -Building CARLA from source requires about 15GB of disk space, not counting -Unreal Engine installation. - -However, you will also need to build and install Unreal Engine, which on Linux -requires much more disk space as it keeps all the intermediate files, -[see this thread](https://answers.unrealengine.com/questions/430541/linux-engine-size.html). - -#### Is it possible to dump images from the CARLA server view? +
+
+ Is it possible to dump images from the CARLA server view? +
Yes, this is an Unreal Engine feature. You can dump the images of the server camera by running CARLA with @@ -31,6 +27,8 @@ camera by running CARLA with Images are saved to "CarlaUE4/Saved/Screenshots/LinuxNoEditor". +
+ #### I downloaded CARLA source from GitHub, where is the "CarlaUE4.sh" script? There is no "CarlaUE4.sh" script in the source version of CARLA, you need to From 8b8f9d9a942f5295000da888d30ef92f74111a6d Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 17 Jan 2018 15:58:29 +0100 Subject: [PATCH 071/121] Test mkdocs formatting --- Docs/faq.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Docs/faq.md b/Docs/faq.md index cf85c002c..35a806bb5 100644 --- a/Docs/faq.md +++ b/Docs/faq.md @@ -2,7 +2,7 @@ CARLA F.A.Q. ============
-
+
What is the expected disk space needed for building CARLA?
@@ -16,7 +16,7 @@ requires much more disk space as it keeps all the intermediate files,
-
+
Is it possible to dump images from the CARLA server view?
@@ -29,7 +29,10 @@ Images are saved to "CarlaUE4/Saved/Screenshots/LinuxNoEditor".
-#### I downloaded CARLA source from GitHub, where is the "CarlaUE4.sh" script? +
+
+ I downloaded CARLA source from GitHub, where is the "CarlaUE4.sh" script? +
There is no "CarlaUE4.sh" script in the source version of CARLA, you need to follow the instructions in the [documentation](http://carla.readthedocs.io) on @@ -37,9 +40,16 @@ building CARLA from source. Once you open the project in the Unreal Editor, you can hit Play to test CARLA. -#### How can I create a binary version of CARLA? +
+ +
+
+ How can I create a binary version of CARLA? +
To compile a binary (packaged) version of CARLA, open the CarlaUE4 project with Unreal Editor, go to the menu "File -> Package Project", and select your platform. This takes a while, but in the end it should generate a packaged version of CARLA to execute without Unreal Editor. + +
From aa6cd7c8d8e6a937d4d1a7b4a9d273d377a06e71 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 17 Jan 2018 16:16:44 +0100 Subject: [PATCH 072/121] Organise FAQ --- Docs/faq.md | 87 +++++++++++++++++++++++++++++++---------- Docs/index.md | 1 - Docs/troubleshooting.md | 28 ------------- mkdocs.yml | 1 - 4 files changed, 67 insertions(+), 50 deletions(-) delete mode 100644 Docs/troubleshooting.md diff --git a/Docs/faq.md b/Docs/faq.md index 35a806bb5..9aed5a548 100644 --- a/Docs/faq.md +++ b/Docs/faq.md @@ -1,6 +1,4 @@ -CARLA F.A.Q. -============ - +
What is the expected disk space needed for building CARLA? @@ -15,6 +13,63 @@ requires much more disk space as it keeps all the intermediate files,
+ +
+
+ I downloaded CARLA source from GitHub, where is the "CarlaUE4.sh" script? +
+ +There is no "CarlaUE4.sh" script in the source version of CARLA, you need to +follow the instructions in the [documentation](http://carla.readthedocs.io) on +building CARLA from source. + +Once you open the project in the Unreal Editor, you can hit Play to test CARLA. + +
+ + +
+
+ Why Unreal Editor hangs after hitting Play? +
+ +This is most probably happening because CARLA is starting in server mode. Check +your CarlaSettings.ini file ("./Unreal/CarlaUE4/Config/CarlaSettings.ini") and +set + +```ini +[CARLA/Server] +UseNetworking=false +``` + +
+ + +
+
+ How can I create a binary version of CARLA? +
+ +To compile a binary (packaged) version of CARLA, open the CarlaUE4 project with +Unreal Editor, go to the menu "File -> Package Project", and select your +platform. This takes a while, but in the end it should generate a packaged +version of CARLA to execute without Unreal Editor. + +
+ + +
+
+ Why do I have very low FPS when running the server in Unreal Editor? +
+ +UE4 Editor goes to a low performance mode when out of focus. It can be disabled +in the editor preferences. Go to "Edit->Editor Preferences->Performance" and +disable the "Use Less CPU When in Background" option. + +
+ +
Is it possible to dump images from the CARLA server view? @@ -29,27 +84,19 @@ Images are saved to "CarlaUE4/Saved/Screenshots/LinuxNoEditor".
+
- I downloaded CARLA source from GitHub, where is the "CarlaUE4.sh" script? + Fatal error: 'version.h' has been modified since the precompiled header.
-There is no "CarlaUE4.sh" script in the source version of CARLA, you need to -follow the instructions in the [documentation](http://carla.readthedocs.io) on -building CARLA from source. +This happens from time to time due to Linux updates. It is possible to force a +rebuild of all the project files with -Once you open the project in the Unreal Editor, you can hit Play to test CARLA. - -
- -
-
- How can I create a binary version of CARLA? -
- -To compile a binary (packaged) version of CARLA, open the CarlaUE4 project with -Unreal Editor, go to the menu "File -> Package Project", and select your -platform. This takes a while, but in the end it should generate a packaged -version of CARLA to execute without Unreal Editor. + $ cd Unreal/CarlaUE4/ + $ make CarlaUE4Editor ARGS=-clean + $ make CarlaUE4Editor + +It takes a long time but fixes the issue. Sometimes a reboot is also needed.
diff --git a/Docs/index.md b/Docs/index.md index 7189698ee..18df71409 100644 --- a/Docs/index.md +++ b/Docs/index.md @@ -8,7 +8,6 @@ CARLA Documentation * [Measurements](measurements.md) * [Cameras and sensors](cameras_and_sensors.md) * [F.A.Q.](faq.md) - * [Troubleshooting](troubleshooting.md) #### Building from source diff --git a/Docs/troubleshooting.md b/Docs/troubleshooting.md deleted file mode 100644 index 7645a6308..000000000 --- a/Docs/troubleshooting.md +++ /dev/null @@ -1,28 +0,0 @@ -Troubleshooting -=============== - -#### Editor hangs after hitting Play - -This is most probably happening because CARLA is started in server mode. Check -in your CarlaSettings.ini file ("./Unreal/CarlaUE4/Config/CarlaSettings.ini") -and set - -```ini -[CARLA/Server] -UseNetworking=false -``` - -#### Very low FPS in editor when not in focus - -UE4 Editor goes to a low performance mode when out of focus. It can be disabled -in the editor preferences. Go to "Edit->Editor Preferences->Performance" and -disable the "Use Less CPU When in Background" option. - -#### Fatal error: file '/usr/include/linux/version.h' has been modified since the precompiled header - -This happens from time to time due to Linux updates. It is possible to force a -rebuild of all the project files with - - $ cd Unreal/CarlaUE4/ - $ make CarlaUE4Editor ARGS=-clean - $ make CarlaUE4Editor diff --git a/mkdocs.yml b/mkdocs.yml index d3c1acfbb..77bc106d3 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -10,7 +10,6 @@ pages: - 'Measurements': 'measurements.md' - 'Cameras and sensors': 'cameras_and_sensors.md' - 'F.A.Q.': 'faq.md' - - 'Troubleshooting': 'troubleshooting.md' - Building from source: - 'How to build on Linux': 'how_to_build_on_linux.md' - 'How to build on Windows': 'how_to_build_on_windows.md' From 1b10c4568d12a1dda93a6757930a8f9bb3f82e8e Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 17 Jan 2018 17:20:13 +0100 Subject: [PATCH 073/121] Improving FAQ --- Docs/faq.md | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/Docs/faq.md b/Docs/faq.md index 9aed5a548..943883d49 100644 --- a/Docs/faq.md +++ b/Docs/faq.md @@ -1,3 +1,15 @@ + +
+
+ What is the recommended hardware to run CARLA? +
+ +CARLA is a very performance demanding software, at the very minimum you would +need a computer with a dedicated GPU capable of running Unreal Engine. See +[Unreal Engine's recommended hardware](https://wiki.unrealengine.com/Recommended_Hardware). + +
+
@@ -20,13 +32,35 @@ requires much more disk space as it keeps all the intermediate files,
There is no "CarlaUE4.sh" script in the source version of CARLA, you need to -follow the instructions in the [documentation](http://carla.readthedocs.io) on +follow the instructions in the [documentation](http://carla.readthedocs.io) for building CARLA from source. Once you open the project in the Unreal Editor, you can hit Play to test CARLA.
+ +
+
+ Can I run the server from within Unreal Editor? +
+ +Yes, you can connect the Python client to a server running within Unreal Editor +as if it was the standalone server. + +Go to **"Unreal/CarlaUE4/Config/CarlaSettings.ini"** (this file should have been +created by the Setup.sh) and enable networking. If for whatever reason you don't +have this file, just create it and add the following + +```ini +[CARLA/Server] +UseNetworking=true +``` + +Now when you hit Play the editor will hang until a client connects. + +
+
@@ -34,8 +68,7 @@ Once you open the project in the Unreal Editor, you can hit Play to test CARLA.
This is most probably happening because CARLA is starting in server mode. Check -your CarlaSettings.ini file ("./Unreal/CarlaUE4/Config/CarlaSettings.ini") and -set +your **"Unreal/CarlaUE4/Config/CarlaSettings.ini"** and set ```ini [CARLA/Server] From 1ca9cedc47c3b4cdf31cbb0f24580abfd2a58e28 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 17 Jan 2018 17:33:17 +0100 Subject: [PATCH 074/121] Some minor documentation improvements --- Docs/how_to_run.md | 10 ++-------- README.md | 6 ++++++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Docs/how_to_run.md b/Docs/how_to_run.md index 47412a339..613d44b5a 100644 --- a/Docs/how_to_run.md +++ b/Docs/how_to_run.md @@ -38,15 +38,9 @@ The "carla" Python module provides a basic API for communicating with the CARLA server. In the "PythonClient" folder we provide a couple of examples on how to use this API. We recommend Python 3, but they are also compatible with Python 2. -The basic functionality requires only the protobuf module to be installed +Install the dependencies with - $ sudo apt-get install python3 python3-pip - $ sudo pip3 install protobuf - -However, other operations as handling images require some extra modules, and the -"manual_control.py" example requires pygame - - $ sudo pip3 install numpy Pillow pygame + $ pip install -r PythonClient/requirements.txt The script "PythonClient/client_example.py" provides basic functionality for controlling the vehicle and saving images to disk. Run the help command to see diff --git a/README.md b/README.md index 572284531..7eab6be40 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,12 @@ Please take a look at our [Contribution guidelines][contriblink]. [contriblink]: http://carla.readthedocs.io/en/latest/CONTRIBUTING +F.A.Q. +------ + +If you run into problems, check our +[FAQ](http://carla.readthedocs.io/en/latest/faq/). + License ------- From d9202bb099d59210aa9d4a41c0982662187cadbb Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 17 Jan 2018 18:11:57 +0100 Subject: [PATCH 075/121] Improve contribution guidelines --- Docs/CONTRIBUTING.md | 70 +++++++++++++++++++++++------------ Docs/coding_standard.md | 25 +++++++++++++ Docs/index.md | 1 + Docs/issue_template.md | 2 +- Docs/pull_request_template.md | 16 ++++---- mkdocs.yml | 1 + 6 files changed, 83 insertions(+), 32 deletions(-) create mode 100644 Docs/coding_standard.md diff --git a/Docs/CONTRIBUTING.md b/Docs/CONTRIBUTING.md index 3438010e1..b83c80279 100644 --- a/Docs/CONTRIBUTING.md +++ b/Docs/CONTRIBUTING.md @@ -1,23 +1,25 @@ Contributing to CARLA ===================== -> _This document is a work in progress and might be incomplete._ - We are more than happy to accept contributions! How can I contribute? * Reporting bugs * Feature requests + * Improving documentation * Code contributions Reporting bugs -------------- -Use our [issue section](issueslink) on GitHub. Please check before that the -issue is not already reported. +Use our [issue section][issueslink] on GitHub. Please check before that the +issue is not already reported, and make sure you have read our +[Documentation][docslink] and [FAQ][faqlink]. [issueslink]: https://github.com/carla-simulator/carla/issues +[docslink]: http://carla.readthedocs.io +[faqlink]: http://carla.readthedocs.io/en/latest/faq/ Feature requests ---------------- @@ -28,6 +30,28 @@ your request as a new issue. [frlink]: https://github.com/carla-simulator/carla/issues?q=is%3Aissue+is%3Aopen+label%3A%22feature+request%22 +Improving documentation +----------------------- + +If you feel something is missing in the documentation, please don't hesitate in +opening an issue to let us know. + +Even better, if you think you can improve it yourself it would be a great +contribution to the community! + +We build our documentation with [MkDocs](http://www.mkdocs.org/) based on the +Markdown files inside the "Docs" folder. You can either directly modify them on +GitHub or locally in your machine. + +Once you are done with your changes, please submit a pull-request against the +`documentation` branch. + +**TIP:** You can build and serve it locally by running `mkdocs` in the project's +main folder + + $ sudo pip install mkdocs + $ mkdocs serve + Code contributions ------------------ @@ -52,25 +76,8 @@ current documentation if you feel confident enough. #### Coding standard -Please follow the current coding style when submitting new code. - -###### General - - * Use spaces, not tabs. - * Avoid adding trailing whitespace as it creates noise in the diffs. - * Comments should not exceed 80 columns, code may exceed this limit a bit in rare occasions if it results in clearer code. - -###### Python - - * All code must be compatible with Python 2.7, 3.5, and 3.6. - * [Pylint](https://www.pylint.org/) should not give any error or warning (few exceptions apply with external classes like `numpy`, see our `.pylintrc`). - * Python code follows [PEP8 style guide](https://www.python.org/dev/peps/pep-0008/) (use `autopep8` whenever possible). - -###### C++ - - * Compilation should not give any error or warning (`clang++ -Wall -Wextra -std=C++14`). - * Unreal C++ code (CarlaUE4 and Carla plugin) follow the [Unreal Engine's Coding Standard](https://docs.unrealengine.com/latest/INT/Programming/Development/CodingStandard/) with the exception of using spaces instead of tabs. - * CarlaServer uses [Google's style guide](https://google.github.io/styleguide/cppguide.html). +Please follow the current [coding standard](coding_standard.md) when submitting +new code. #### Pull-requests @@ -78,8 +85,25 @@ Once you think your contribution is ready to be added to CARLA, please submit a pull-request to the `dev` branch. Try to be as descriptive as possible when filling the pull-request description. +Adding images and gifs may help people to understand your changes or new +features. Please note that there are some checks that the new code is required to pass before we can do the merge. The checks are automatically run by the continuous integration system, you will see a green tick mark if all the checks succeeded. If you see a red mark, please correct your code accordingly. + +###### Checklist + + + + - [ ] Make sure you are making a pull request against the `dev` branch (not `master` please) + - [ ] Your branch is up-to-date with `dev` branch and tested with latest changes + - [ ] Extended the README / documentation, if necessary + - [ ] Code compiles correctly + - [ ] All tests passing + - [ ] `make check` + - [ ] `pylint --disable=R,C --rcfile=PythonClient/.pylintrc PythonClient/carla PythonClient/*.py` + - [ ] `cppcheck . -iBuild -i.pb.cc --enable=warning` diff --git a/Docs/coding_standard.md b/Docs/coding_standard.md new file mode 100644 index 000000000..f03eae186 --- /dev/null +++ b/Docs/coding_standard.md @@ -0,0 +1,25 @@ +Coding standard +=============== + +> _This document is a work in progress and might be incomplete._ + +General +------- + + * Use spaces, not tabs. + * Avoid adding trailing whitespace as it creates noise in the diffs. + * Comments should not exceed 80 columns, code may exceed this limit a bit in rare occasions if it results in clearer code. + +Python +------ + + * All code must be compatible with Python 2.7, 3.5, and 3.6. + * [Pylint](https://www.pylint.org/) should not give any error or warning (few exceptions apply with external classes like `numpy`, see our `.pylintrc`). + * Python code follows [PEP8 style guide](https://www.python.org/dev/peps/pep-0008/) (use `autopep8` whenever possible). + +C++ +--- + + * Compilation should not give any error or warning (`clang++ -Wall -Wextra -std=C++14`). + * Unreal C++ code (CarlaUE4 and Carla plugin) follow the [Unreal Engine's Coding Standard](https://docs.unrealengine.com/latest/INT/Programming/Development/CodingStandard/) with the exception of using spaces instead of tabs. + * CarlaServer uses [Google's style guide](https://google.github.io/styleguide/cppguide.html). diff --git a/Docs/index.md b/Docs/index.md index 18df71409..2a264647c 100644 --- a/Docs/index.md +++ b/Docs/index.md @@ -18,6 +18,7 @@ CARLA Documentation #### Contributing * [Contribution guidelines](CONTRIBUTING.md) + * [Coding standard](coding_standard.md) * [Code of conduct](CODE_OF_CONDUCT.md) #### Development diff --git a/Docs/issue_template.md b/Docs/issue_template.md index 8328b7bda..024be87e5 100644 --- a/Docs/issue_template.md +++ b/Docs/issue_template.md @@ -3,7 +3,7 @@ Thanks for contributing to CARLA! If you are asking a question please make sure your question was not asked before -by searching among the existing issues. Also make sure you have read the our +by searching among the existing issues. Also make sure you have read our documentation and FAQ at carla.readthedocs.io. --> diff --git a/Docs/pull_request_template.md b/Docs/pull_request_template.md index cfaddb774..81ea6bda7 100644 --- a/Docs/pull_request_template.md +++ b/Docs/pull_request_template.md @@ -5,14 +5,14 @@ view the contribution guidelines, then fill out the blanks below. Checklist: -- [ ] Make sure you are making a pull request against the `dev` branch (not `master` please) -- [ ] Your branch is up-to-date with `dev` branch and tested with latest changes -- [ ] Extended the README / documentation, if necessary -- [ ] Code compiles correctly -- [ ] All tests passing - * [ ] `make check` - * [ ] `pylint --disable=R,C --rcfile=PythonClient/.pylintrc PythonClient/carla PythonClient/*.py` - * [ ] `cppcheck . -iBuild -i.pb.cc --enable=warning` + - [ ] Make sure you are making a pull request against the `dev` branch (not `master` please) + - [ ] Your branch is up-to-date with `dev` branch and tested with latest changes + - [ ] Extended the README / documentation, if necessary + - [ ] Code compiles correctly + - [ ] All tests passing + - [ ] `make check` + - [ ] `pylint --disable=R,C --rcfile=PythonClient/.pylintrc PythonClient/carla PythonClient/*.py` + - [ ] `cppcheck . -iBuild -i.pb.cc --enable=warning` --> diff --git a/mkdocs.yml b/mkdocs.yml index 77bc106d3..79b54f1fb 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -16,6 +16,7 @@ pages: - 'How to add Automotive Materials': 'how_to_add_automotive_materials.md' - Contributing: - 'Contribution guidelines': 'CONTRIBUTING.md' + - 'Coding standard': 'coding_standard.md' - 'Code of conduct': 'CODE_OF_CONDUCT.md' - Development: - 'Map customization': 'map_customization.md' From 83cceb0e2f9d235c76b142f032ebcc4bcbd1b76f Mon Sep 17 00:00:00 2001 From: nsubiron Date: Thu, 18 Jan 2018 12:05:23 +0100 Subject: [PATCH 076/121] Minor documentation fix --- Docs/CONTRIBUTING.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Docs/CONTRIBUTING.md b/Docs/CONTRIBUTING.md index b83c80279..067579a52 100644 --- a/Docs/CONTRIBUTING.md +++ b/Docs/CONTRIBUTING.md @@ -33,11 +33,9 @@ your request as a new issue. Improving documentation ----------------------- -If you feel something is missing in the documentation, please don't hesitate in -opening an issue to let us know. - -Even better, if you think you can improve it yourself it would be a great -contribution to the community! +If you feel something is missing in the documentation, please don't hesitate to +open an issue to let us know. Even better, if you think you can improve it +yourself, it would be a great contribution to the community! We build our documentation with [MkDocs](http://www.mkdocs.org/) based on the Markdown files inside the "Docs" folder. You can either directly modify them on From 1e2c3a3ea07dfa35690e83a80fd55a9eb6193ca6 Mon Sep 17 00:00:00 2001 From: felipecode Date: Thu, 18 Jan 2018 12:52:02 +0100 Subject: [PATCH 077/121] metrics, wrong f name, corner case --- PythonClient/carla/benchmarks/metrics.py | 27 +++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/PythonClient/carla/benchmarks/metrics.py b/PythonClient/carla/benchmarks/metrics.py index e9ca1d80f..dd47a5f52 100644 --- a/PythonClient/carla/benchmarks/metrics.py +++ b/PythonClient/carla/benchmarks/metrics.py @@ -107,26 +107,33 @@ def compute_summary(filename, dynamic_episodes): path = os.path.dirname(filename) base_name = os.path.basename(filename) + + f = open(filename, "rb") header = f.readline() header = header.split(',') header[-1] = header[-1][:-2] f.close() - f = open(os.path.join(path, 'rewards_' + base_name), "rb") - header_rewards = f.readline() - header_rewards = header_rewards.split(',') - header_rewards[-1] = header_rewards[-1][:-2] + f = open(os.path.join(path, 'details_' + base_name), "rb") + header_details = f.readline() + header_details = header_details.split(',') + header_details[-1] = header_details[-1][:-2] f.close() data_matrix = np.loadtxt(open(filename, "rb"), delimiter=",", skiprows=1) + # Corner Case: The presented test just had one episode + if data_matrix.ndim == 1: + data_matrix = np.expand_dims(data_matrix, axis=0) + + tasks = np.unique(data_matrix[:, header.index('exp_id')]) all_weathers = np.unique(data_matrix[:, header.index('weather')]) reward_matrix = np.loadtxt(open(os.path.join( - path, 'rewards_' + base_name), "rb"), delimiter=",", skiprows=1) + path, 'details_' + base_name), "rb"), delimiter=",", skiprows=1) metrics_dictionary = {'average_completion': {w: [0.0]*len(tasks) for w in all_weathers}, 'intersection_offroad': {w: [0.0]*len(tasks) for w in all_weathers}, @@ -153,11 +160,11 @@ def compute_summary(filename, dynamic_episodes): 'exp_id')] == t, data_matrix[:, header.index('weather')] == w)] - task_reward_matrix = reward_matrix[np.logical_and(reward_matrix[:, header_rewards.index( - 'exp_id')] == float(t), reward_matrix[:, header_rewards.index('weather')] == float(w))] + task_reward_matrix = reward_matrix[np.logical_and(reward_matrix[:, header_details.index( + 'exp_id')] == float(t), reward_matrix[:, header_details.index('weather')] == float(w))] km_run = get_distance_traveled( - task_reward_matrix, header_rewards) + task_reward_matrix, header_details) metrics_dictionary['average_fully_completed'][w][t] = sum( task_data_matrix[:, header.index('result')])/task_data_matrix.shape[0] @@ -178,8 +185,8 @@ def compute_summary(filename, dynamic_episodes): if list(tasks).index(t) in set(dynamic_episodes): lane_road = get_out_of_road_lane( - task_reward_matrix, header_rewards) - colisions = get_colisions(task_reward_matrix, header_rewards) + task_reward_matrix, header_details) + colisions = get_colisions(task_reward_matrix, header_details) From cec548c9644b991f24588fe0b8db91933f9aab81 Mon Sep 17 00:00:00 2001 From: felipecode Date: Thu, 18 Jan 2018 14:19:50 +0100 Subject: [PATCH 078/121] Small bug on checking experiment --- PythonClient/carla/benchmarks/benchmark.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index a1b113d66..e5ced2339 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -299,9 +299,7 @@ class Benchmark(object): def _experiment_exist(self): - - folder = os.path.dirname(self._full_name) - return os.path.isdir(folder) + return os.path.isfile(self._full_name) def _get_last_position(self): From 0e040e4dd285b3fedb68a091113701c37cf15c81 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Thu, 18 Jan 2018 16:43:08 +0100 Subject: [PATCH 079/121] Increase PEP8 line length --- PythonClient/.pep8 | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 PythonClient/.pep8 diff --git a/PythonClient/.pep8 b/PythonClient/.pep8 new file mode 100644 index 000000000..68859ad03 --- /dev/null +++ b/PythonClient/.pep8 @@ -0,0 +1,2 @@ +[pep8] +max-line-length = 120 From e9160f58b1cc8cf836ba6a80d4b17cb14737302f Mon Sep 17 00:00:00 2001 From: nsubiron Date: Fri, 19 Jan 2018 16:10:27 +0100 Subject: [PATCH 080/121] Docs for new workflow --- Docs/CONTRIBUTING.md | 8 +++----- Docs/pull_request_template.md | 3 +-- README.md | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/Docs/CONTRIBUTING.md b/Docs/CONTRIBUTING.md index 067579a52..1f0c50781 100644 --- a/Docs/CONTRIBUTING.md +++ b/Docs/CONTRIBUTING.md @@ -41,8 +41,7 @@ We build our documentation with [MkDocs](http://www.mkdocs.org/) based on the Markdown files inside the "Docs" folder. You can either directly modify them on GitHub or locally in your machine. -Once you are done with your changes, please submit a pull-request against the -`documentation` branch. +Once you are done with your changes, please submit a pull-request. **TIP:** You can build and serve it locally by running `mkdocs` in the project's main folder @@ -80,7 +79,7 @@ new code. #### Pull-requests Once you think your contribution is ready to be added to CARLA, please submit a -pull-request to the `dev` branch. +pull-request. Try to be as descriptive as possible when filling the pull-request description. Adding images and gifs may help people to understand your changes or new @@ -97,8 +96,7 @@ If you see a red mark, please correct your code accordingly. If you modify this list please keep it up-to-date with pull_request_template.md --> - - [ ] Make sure you are making a pull request against the `dev` branch (not `master` please) - - [ ] Your branch is up-to-date with `dev` branch and tested with latest changes + - [ ] Your branch is up-to-date with the `master` branch and tested with latest changes - [ ] Extended the README / documentation, if necessary - [ ] Code compiles correctly - [ ] All tests passing diff --git a/Docs/pull_request_template.md b/Docs/pull_request_template.md index 81ea6bda7..3a5c29258 100644 --- a/Docs/pull_request_template.md +++ b/Docs/pull_request_template.md @@ -5,8 +5,7 @@ view the contribution guidelines, then fill out the blanks below. Checklist: - - [ ] Make sure you are making a pull request against the `dev` branch (not `master` please) - - [ ] Your branch is up-to-date with `dev` branch and tested with latest changes + - [ ] Your branch is up-to-date with the `master` branch and tested with latest changes - [ ] Extended the README / documentation, if necessary - [ ] Code compiles correctly - [ ] All tests passing diff --git a/README.md b/README.md index 7eab6be40..c15573242 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,22 @@ Felipe Codevilla, Antonio Lopez, Vladlen Koltun; PMLR 78:1-16 } ``` +Building CARLA +-------------- + +Use `git clone` or download the project from this page. Note that the master +branch contains the latest fixes and features, for the latest stable code may be +best to switch to the `stable` branch. + +Then follow the instruction at [How to build on Linux][buildlink]. + +Unfortunately we don't have yet official instructions to build on other +platforms, please check the progress for [Windows][issue21] and [Mac][issue150]. + +[buildlink]: http://carla.readthedocs.io/en/latest/how_to_build_on_linux +[issue21]: https://github.com/carla-simulator/carla/issues/21 +[issue150]: https://github.com/carla-simulator/carla/issues/150 + Contributing ------------ From f0eccca7ad9f02fbd38bebe29cf901caa31cb95f Mon Sep 17 00:00:00 2001 From: felipecode Date: Mon, 22 Jan 2018 10:43:12 +0100 Subject: [PATCH 081/121] Fixing exception on tcp, adding verbose --- PythonClient/carla/benchmarks/benchmark.py | 42 +++++++++++++--------- PythonClient/carla/tcp.py | 6 ++-- PythonClient/run_benchmark.py | 17 +++++++-- 3 files changed, 43 insertions(+), 22 deletions(-) diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index e5ced2339..12bfd0beb 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -7,21 +7,19 @@ # For a copy, see . -from builtins import input as input_data - import csv import datetime import math import os - import abc +import logging +from builtins import input as input_data from carla.client import VehicleControl - def sldist(c1, c2): return math.sqrt((c2[0] - c1[0])**2 + (c2[1] - c1[1])**2) @@ -38,11 +36,15 @@ class Benchmark(object): city_name, name_to_save, continue_experiment=False, - save_images=False): + save_images=False, + verbose=False): + self.__metaclass__ = abc.ABCMeta self._city_name = city_name + self._verbose = verbose + self._base_name = name_to_save self._dict_stats = {'exp_id': -1, @@ -104,8 +106,11 @@ class Benchmark(object): measurements, sensor_data = carla.read_data() control = agent.run_step(measurements, sensor_data, target) - print('STEER ', control.steer, 'GAS ', - control.throttle, 'Brake ', control.brake) + + logging.info("Controller is Inputting:") + logging.info('Steer = %f Throttle = %f Brake = %f ' % + (control.steer, control.throttle, control.brake)) + carla.send_control(control) # measure distance to target @@ -124,9 +129,11 @@ class Benchmark(object): distance = sldist([curr_x, curr_y], [target.location.x, target.location.y]) - print( + logging.info('Status:') + logging.info( '[d=%f] c_x = %f, c_y = %f ---> t_x = %f, t_y = %f' % - (float(distance), curr_x, curr_y, target.location.x, target.location.y)) + (float(distance), curr_x, curr_y, target.location.x, + target.location.y)) if distance < 200.0: success = True @@ -157,7 +164,7 @@ class Benchmark(object): else: (start_task, start_pose) = self._get_pose_and_task(self._line_on_file) - print(' START ') + logging.info(' START ') for experiment in self._experiments[start_task:]: @@ -172,12 +179,15 @@ class Benchmark(object): carla.start_episode(start_point) - print('======== !!!! ==========') - print(' Start Position ', start_point, - ' End Position ', end_point) + logging.info('======== !!!! ==========') + logging.info(' Start Position %d End Position %d ' % + (start_point, end_point)) path_distance = agent.get_distance( positions[start_point], positions[end_point]) + euclidean_distance = \ + sldist([positions[start_point].location.x, positions[start_point].location.y], + [positions[end_point].location.x, positions[end_point].location.y]) time_out = self._calculate_time_out(path_distance) # running the agent @@ -191,16 +201,16 @@ class Benchmark(object): # compute stats for the experiment self._write_summary_results( - experiment, pose, rep, path_distance, + experiment, pose, rep, euclidean_distance, remaining_distance, final_time, time_out, result) self._write_details_results(experiment, rep, reward_vec) if(result > 0): - print('+++++ Target achieved in %f seconds! +++++' % + logging.info('+++++ Target achieved in %f seconds! +++++' % final_time) else: - print('----- Timeout! -----') + logging.info('----- Timeout! -----') return self.get_all_statistics() def _write_summary_results(self, experiment, pose, rep, diff --git a/PythonClient/carla/tcp.py b/PythonClient/carla/tcp.py index 5dd9ed9ef..fbf1b17f3 100644 --- a/PythonClient/carla/tcp.py +++ b/PythonClient/carla/tcp.py @@ -41,7 +41,7 @@ class TCPClient(object): self._socket.settimeout(self._timeout) logging.debug('%sconnected', self._logprefix) return - except OSError as exception: + except socket.error as exception: error = exception logging.debug('%sconnection attempt %d: %s', self._logprefix, attempt, error) time.sleep(1) @@ -65,7 +65,7 @@ class TCPClient(object): header = struct.pack(' 0: try: data = self._socket.recv(length) - except OSError as exception: + except socket.error as exception: self._reraise_exception_as_tcp_error('failed to read data', exception) if not data: raise TCPConnectionError(self._logprefix + 'connection closed') diff --git a/PythonClient/run_benchmark.py b/PythonClient/run_benchmark.py index 008347b22..790882600 100755 --- a/PythonClient/run_benchmark.py +++ b/PythonClient/run_benchmark.py @@ -35,6 +35,11 @@ if __name__ == '__main__': argparser.add_argument( '-v', '--verbose', action='store_true', + dest='verbose', + help='print some extra status information') + argparser.add_argument( + '-db', '--debug', + action='store_true', dest='debug', help='print debug information') argparser.add_argument( @@ -58,12 +63,17 @@ if __name__ == '__main__': '-n', '--log_name', metavar='T', default='test', - help='The name of the log file to be created by the scripts' + help='The name of the log file to be created by the benchmark' ) args = argparser.parse_args() + if args.debug: + log_level = logging.DEBUG + elif args.verbose: + log_level = logging.INFO + else: + log_level = logging.WARNING - log_level = logging.DEBUG if args.debug else logging.INFO logging.basicConfig(format='%(levelname)s: %(message)s', level=log_level) logging.info('listening to server %s:%s', args.host, args.port) @@ -71,7 +81,8 @@ if __name__ == '__main__': while True: try: with make_carla_client(args.host, args.port) as client: - corl = CoRL2017(city_name=args.city_name, name_to_save=args.log_name) + corl = CoRL2017(city_name=args.city_name, name_to_save=args.log_name, + verbose=args.verbose) agent = Manual(args.city_name) results = corl.benchmark_agent(agent, client) corl.plot_summary_test() From 78187b83d07bf7e84629fd370bc5574c4a0db7e3 Mon Sep 17 00:00:00 2001 From: felipecode Date: Mon, 22 Jan 2018 10:53:08 +0100 Subject: [PATCH 082/121] log not lazy fix --- PythonClient/carla/benchmarks/benchmark.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index 12bfd0beb..b4e3dba02 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -108,8 +108,8 @@ class Benchmark(object): control = agent.run_step(measurements, sensor_data, target) logging.info("Controller is Inputting:") - logging.info('Steer = %f Throttle = %f Brake = %f ' % - (control.steer, control.throttle, control.brake)) + logging.info('Steer = %f Throttle = %f Brake = %f ', + control.steer, control.throttle, control.brake) carla.send_control(control) @@ -131,9 +131,9 @@ class Benchmark(object): logging.info('Status:') logging.info( - '[d=%f] c_x = %f, c_y = %f ---> t_x = %f, t_y = %f' % - (float(distance), curr_x, curr_y, target.location.x, - target.location.y)) + '[d=%f] c_x = %f, c_y = %f ---> t_x = %f, t_y = %f', + float(distance), curr_x, curr_y, target.location.x, + target.location.y) if distance < 200.0: success = True @@ -180,8 +180,8 @@ class Benchmark(object): carla.start_episode(start_point) logging.info('======== !!!! ==========') - logging.info(' Start Position %d End Position %d ' % - (start_point, end_point)) + logging.info(' Start Position %d End Position %d ', + start_point, end_point) path_distance = agent.get_distance( positions[start_point], positions[end_point]) @@ -207,7 +207,7 @@ class Benchmark(object): self._write_details_results(experiment, rep, reward_vec) if(result > 0): - logging.info('+++++ Target achieved in %f seconds! +++++' % + logging.info('+++++ Target achieved in %f seconds! +++++', final_time) else: logging.info('----- Timeout! -----') From 07d2231ac3ab0955bca96320fb27d9abe09020a8 Mon Sep 17 00:00:00 2001 From: felipecode Date: Mon, 22 Jan 2018 11:01:13 +0100 Subject: [PATCH 083/121] removing verbose label --- PythonClient/carla/benchmarks/benchmark.py | 6 +++--- PythonClient/run_benchmark.py | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index b4e3dba02..672e4f0f7 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -36,14 +36,14 @@ class Benchmark(object): city_name, name_to_save, continue_experiment=False, - save_images=False, - verbose=False): + save_images=False + ): self.__metaclass__ = abc.ABCMeta self._city_name = city_name - self._verbose = verbose + self._base_name = name_to_save diff --git a/PythonClient/run_benchmark.py b/PythonClient/run_benchmark.py index 790882600..384885ede 100755 --- a/PythonClient/run_benchmark.py +++ b/PythonClient/run_benchmark.py @@ -81,8 +81,7 @@ if __name__ == '__main__': while True: try: with make_carla_client(args.host, args.port) as client: - corl = CoRL2017(city_name=args.city_name, name_to_save=args.log_name, - verbose=args.verbose) + corl = CoRL2017(city_name=args.city_name, name_to_save=args.log_name) agent = Manual(args.city_name) results = corl.benchmark_agent(agent, client) corl.plot_summary_test() From 1da114b2ed1194a4213d79cf47a6af82dfdca9ff Mon Sep 17 00:00:00 2001 From: nsubiron Date: Mon, 22 Jan 2018 11:21:09 +0100 Subject: [PATCH 084/121] Add doc string --- Update.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Update.sh b/Update.sh index 61f0807ad..35043f193 100755 --- a/Update.sh +++ b/Update.sh @@ -1,17 +1,19 @@ #! /bin/bash ################################################################################ -# Updates CARLA contents. +# Updates CARLA content. ################################################################################ set -e +DOC_STRING="Update CARLA content to the latest version, to be run after 'git pull'." + +USAGE_STRING="Usage: $0 [-h|--help] [-s|--skip-download]" + # ============================================================================== # -- Parse arguments ----------------------------------------------------------- # ============================================================================== -USAGE_STRING="Usage: $0 [-h|--help] [-s|--skip-download]" - SKIP_DOWNLOAD=false OPTS=`getopt -o hs --long help,skip-download -n 'parse-options' -- "$@"` @@ -26,6 +28,7 @@ while true; do SKIP_DOWNLOAD=true; shift ;; -h | --help ) + echo "$DOC_STRING" echo "$USAGE_STRING" exit 1 ;; From e8be3a20f4d9c2adfe8fcf1c9b9bc7f298bc8ea2 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Mon, 22 Jan 2018 11:21:40 +0100 Subject: [PATCH 085/121] Add option to Rebuild.sh to not launch the editor --- Rebuild.sh | 51 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) diff --git a/Rebuild.sh b/Rebuild.sh index 82dffb79d..09db805e2 100755 --- a/Rebuild.sh +++ b/Rebuild.sh @@ -1,6 +1,46 @@ #!/bin/bash + +################################################################################ +# Updates CARLA content. +################################################################################ + set -e +DOC_STRING="Update CARLA content to the latest version, to be run after 'git pull'." + +USAGE_STRING="Usage: $0 [-h|--help] [--no-editor]" + +# ============================================================================== +# -- Parse arguments ----------------------------------------------------------- +# ============================================================================== + +LAUNCH_UE4_EDITOR=true + +OPTS=`getopt -o h --long help,no-editor -n 'parse-options' -- "$@"` + +if [ $? != 0 ] ; then echo "$USAGE_STRING" ; exit 2 ; fi + +eval set -- "$OPTS" + +while true; do + case "$1" in + --no-editor ) + LAUNCH_UE4_EDITOR=false; + shift ;; + -h | --help ) + echo "$DOC_STRING" + echo "$USAGE_STRING" + exit 1 + ;; + * ) + break ;; + esac +done + +# ============================================================================== +# -- Set up environment -------------------------------------------------------- +# ============================================================================== + SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" pushd "$SCRIPT_DIR" >/dev/null @@ -60,8 +100,15 @@ set -e log "Build CarlaUE4 project..." make CarlaUE4Editor -log "Launching UE4Editor..." -${UE4_ROOT}/Engine/Binaries/Linux/UE4Editor "${PWD}/CarlaUE4.uproject" +if $LAUNCH_UE4_EDITOR ; then + log "Launching UE4Editor..." + ${UE4_ROOT}/Engine/Binaries/Linux/UE4Editor "${PWD}/CarlaUE4.uproject" +else + echo "" + echo "****************" + echo "*** Success! ***" + echo "****************" +fi popd >/dev/null From d67dc6a1de958750bdc9c1a484d2ec803a29ddad Mon Sep 17 00:00:00 2001 From: nsubiron Date: Mon, 22 Jan 2018 11:22:16 +0100 Subject: [PATCH 086/121] New content version --- Util/ContentVersions.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Util/ContentVersions.txt b/Util/ContentVersions.txt index 160075361..3a6553be4 100644 --- a/Util/ContentVersions.txt +++ b/Util/ContentVersions.txt @@ -7,3 +7,4 @@ 0.5.4: 0B2HFV-VuKn3PYUFFanlmZ2VMTW8 0.6.0: 1Gw8sw01hDEV4FtpHEZZwvS-6XN0jmaLT 0.7.0: 11PKC_lG7L80L1ZxiMlzV17utU45UcRnT +0.7.1: 1gf3YaFIjwr1EaK6qxq2V-a510Brt9Imq From 0df68de755adbcaa1c66efff37f6ee2453fc1f89 Mon Sep 17 00:00:00 2001 From: felipecode Date: Mon, 22 Jan 2018 15:30:54 +0100 Subject: [PATCH 087/121] Fixing links --- Docs/benchmark.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docs/benchmark.md b/Docs/benchmark.md index 2dc8ff2b9..dd4a1ffed 100644 --- a/Docs/benchmark.md +++ b/Docs/benchmark.md @@ -61,7 +61,7 @@ To be benchmarked, an Agent subclass must redefine the *run_step* function as it return control The function receives measurements from the world, sensor data and a target position. With this, the function must return a control to the car, *i.e.* steering value, throttle value, brake value, etc. -The [measurements](https://github.com/carla-simulator/carla/blob/master/Docs/measurements.md), [target](https://github.com/carla-simulator/carla/blob/master/Docs/measurements.md), [sensor_data](https://github.com/carla-simulator/carla/blob/master/Docs/cameras_and_sensors.m) and [control](https://github.com/carla-simulator/carla/blob/master/Docs/measurements.md) types are described at the documentation. +The [measurements](measurements.md), [target](measurements.md), [sensor_data](cameras_and_sensors.m) and [control](measurements.md) types are described at the documentation. From e12098f3a605bf680da8c2e264d59065331989dd Mon Sep 17 00:00:00 2001 From: nsubiron Date: Mon, 22 Jan 2018 15:36:14 +0100 Subject: [PATCH 088/121] C++ programmer job offer --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index c15573242..15b914876 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ For instructions on how to use and compile CARLA, check out News ---- +- 22.01.2018 Job opening: [C++ (UE4) Programmer](https://drive.google.com/open?id=1Hx0eUgpXl95d4IL9meEGhJECgSRos1T1). - 28.11.2017 CARLA 0.7.0 released: [change log](https://github.com/carla-simulator/carla/blob/master/CHANGELOG.md#carla-070), [release](https://github.com/carla-simulator/carla/releases/tag/0.7.0). - 15.11.2017 CARLA 0.6.0 released: [change log](https://github.com/carla-simulator/carla/blob/master/CHANGELOG.md#carla-060), [release](https://github.com/carla-simulator/carla/releases/tag/0.6.0). @@ -84,6 +85,13 @@ F.A.Q. If you run into problems, check our [FAQ](http://carla.readthedocs.io/en/latest/faq/). +Jobs +---- + +We are currently looking for a new programmer to join our team + + * [C++ (UE4) Programmer](https://drive.google.com/open?id=1Hx0eUgpXl95d4IL9meEGhJECgSRos1T1) + License ------- From d700a388d6341bd5d76ce429e6b8827654977501 Mon Sep 17 00:00:00 2001 From: felipecode Date: Mon, 22 Jan 2018 15:39:59 +0100 Subject: [PATCH 089/121] Update benchmark.md --- Docs/benchmark.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Docs/benchmark.md b/Docs/benchmark.md index dd4a1ffed..c737beb08 100644 --- a/Docs/benchmark.md +++ b/Docs/benchmark.md @@ -41,7 +41,7 @@ The benchmark works by calling three lines of code agent = Manual(args.city_name) results = corl.benchmark_agent(agent, client) -This is excerpt is executed in the [run_benchmark.py](https://github.com/carla-simulator/carla/blob/benchmark_branch/PythonClient/run_benchmark.py) example. +This is excerpt is executed in the [run_benchmark.py](https://github.com/carla-simulator/carla/blob/master/PythonClient/run_benchmark.py) example. First a *benchmark* object is defined, for this case, a CoRL2017 benchmark. This is object is used to benchmark a certain Agent.
On the second line of our sample code, there is an object of a Manual class instanced. This class inherited an Agent base class @@ -61,7 +61,7 @@ To be benchmarked, an Agent subclass must redefine the *run_step* function as it return control The function receives measurements from the world, sensor data and a target position. With this, the function must return a control to the car, *i.e.* steering value, throttle value, brake value, etc. -The [measurements](measurements.md), [target](measurements.md), [sensor_data](cameras_and_sensors.m) and [control](measurements.md) types are described at the documentation. +The [measurements](measurements.md), [target](measurements#player-measurements.md), [sensor_data](cameras_and_sensors.md) and [control](measurements.md) types are described at the documentation. From 16b4679c1002c4344c790061af36e74d5be144de Mon Sep 17 00:00:00 2001 From: felipecode Date: Mon, 22 Jan 2018 15:40:35 +0100 Subject: [PATCH 090/121] Update benchmark.md --- Docs/benchmark.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docs/benchmark.md b/Docs/benchmark.md index c737beb08..c73503521 100644 --- a/Docs/benchmark.md +++ b/Docs/benchmark.md @@ -61,7 +61,7 @@ To be benchmarked, an Agent subclass must redefine the *run_step* function as it return control The function receives measurements from the world, sensor data and a target position. With this, the function must return a control to the car, *i.e.* steering value, throttle value, brake value, etc. -The [measurements](measurements.md), [target](measurements#player-measurements.md), [sensor_data](cameras_and_sensors.md) and [control](measurements.md) types are described at the documentation. +The [measurements](measurements.md), [target](measurements.md), [sensor_data](cameras_and_sensors.md) and [control](measurements.md) types are described at the documentation. From bb797c8700bba7dc6d210b8a235425e494fbc4b2 Mon Sep 17 00:00:00 2001 From: felipecode Date: Mon, 22 Jan 2018 15:41:22 +0100 Subject: [PATCH 091/121] Update benchmark.md --- Docs/benchmark.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docs/benchmark.md b/Docs/benchmark.md index c73503521..e27d850cb 100644 --- a/Docs/benchmark.md +++ b/Docs/benchmark.md @@ -61,7 +61,7 @@ To be benchmarked, an Agent subclass must redefine the *run_step* function as it return control The function receives measurements from the world, sensor data and a target position. With this, the function must return a control to the car, *i.e.* steering value, throttle value, brake value, etc. -The [measurements](measurements.md), [target](measurements.md), [sensor_data](cameras_and_sensors.md) and [control](measurements.md) types are described at the documentation. +The [measurements](measurements.md), [target](measurements.md), [sensor_data](cameras_and_sensors.md) and [control](measurements.md) types are described on the documentation. From a991e53059050e712c14ff308ed5ae7179bfc36f Mon Sep 17 00:00:00 2001 From: felipecode Date: Mon, 22 Jan 2018 15:41:39 +0100 Subject: [PATCH 092/121] Update benchmark.md --- Docs/benchmark.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Docs/benchmark.md b/Docs/benchmark.md index e27d850cb..b42d6eafa 100644 --- a/Docs/benchmark.md +++ b/Docs/benchmark.md @@ -1,10 +1,6 @@ CARLA Benchmark =============== -!!! important - Benchmark code is currently in beta and can be found only in the - `benchmark_branch`. - Running the Benchmark --------------------- From 438fd3baced8a5cc34e7fc377b9bdb8677081fb5 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Mon, 22 Jan 2018 16:06:28 +0100 Subject: [PATCH 093/121] Remove repeated package --- PythonClient/setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PythonClient/setup.py b/PythonClient/setup.py index 31e26f2de..7969450a6 100644 --- a/PythonClient/setup.py +++ b/PythonClient/setup.py @@ -5,7 +5,7 @@ from setuptools import setup setup( name='carla_client', version='0.7.1', - packages=['carla', 'carla.planner', 'carla.benchmarks', 'carla.planner'], + packages=['carla', 'carla.benchmarks', 'carla.planner'], license='MIT License', description='Python API for communicating with the CARLA server.', url='https://github.com/carla-simulator/carla', From 5d72b4178f47f6eccd0c93bf326d3403f0f51d8f Mon Sep 17 00:00:00 2001 From: nsubiron Date: Mon, 22 Jan 2018 16:42:10 +0100 Subject: [PATCH 094/121] Update license --- LICENSE | 2 +- PythonClient/carla/benchmarks/agent.py | 2 +- PythonClient/carla/benchmarks/benchmark.py | 2 +- PythonClient/carla/benchmarks/corl_2017.py | 2 +- PythonClient/carla/benchmarks/experiment.py | 5 +++++ PythonClient/carla/benchmarks/metrics.py | 2 +- PythonClient/carla/client.py | 2 +- PythonClient/carla/image_converter.py | 2 +- PythonClient/carla/planner/astar.py | 6 ++++++ PythonClient/carla/planner/city_track.py | 6 ++++++ PythonClient/carla/planner/converter.py | 6 ++++++ PythonClient/carla/planner/graph.py | 6 ++++++ PythonClient/carla/planner/grid.py | 6 ++++++ PythonClient/carla/planner/map.py | 2 +- PythonClient/carla/planner/planner.py | 6 ++++++ PythonClient/carla/sensor.py | 2 +- PythonClient/carla/settings.py | 2 +- PythonClient/carla/tcp.py | 2 +- PythonClient/carla/util.py | 2 +- PythonClient/client_example.py | 2 +- PythonClient/manual_control.py | 2 +- PythonClient/run_benchmark.py | 2 +- PythonClient/test/console.py | 2 +- PythonClient/test/test_client.py | 2 +- PythonClient/test/test_suite.py | 2 +- PythonClient/test/unit_tests/Basic.py | 2 +- PythonClient/test/unit_tests/__init__.py | 2 +- Unreal/CarlaUE4/Config/DefaultGame.ini | 2 +- .../Carla/Source/Carla/AI/CarlaWheeledVehicleState.h | 2 +- .../CarlaUE4/Plugins/Carla/Source/Carla/AI/RoutePlanner.cpp | 2 +- .../CarlaUE4/Plugins/Carla/Source/Carla/AI/RoutePlanner.h | 2 +- .../Plugins/Carla/Source/Carla/AI/TrafficLightBase.cpp | 2 +- .../Plugins/Carla/Source/Carla/AI/TrafficLightBase.h | 2 +- .../Plugins/Carla/Source/Carla/AI/TrafficLightState.h | 2 +- .../Plugins/Carla/Source/Carla/AI/TrafficSignBase.cpp | 2 +- .../Plugins/Carla/Source/Carla/AI/TrafficSignBase.h | 2 +- .../Plugins/Carla/Source/Carla/AI/VehicleSpawnerBase.cpp | 2 +- .../Plugins/Carla/Source/Carla/AI/VehicleSpawnerBase.h | 2 +- .../Plugins/Carla/Source/Carla/AI/WalkerAIController.cpp | 2 +- .../Plugins/Carla/Source/Carla/AI/WalkerAIController.h | 2 +- .../Plugins/Carla/Source/Carla/AI/WalkerSpawnPoint.h | 2 +- .../Plugins/Carla/Source/Carla/AI/WalkerSpawnerBase.cpp | 2 +- .../Plugins/Carla/Source/Carla/AI/WalkerSpawnerBase.h | 2 +- .../Carla/Source/Carla/AI/WheeledVehicleAIController.cpp | 2 +- .../Carla/Source/Carla/AI/WheeledVehicleAIController.h | 2 +- .../Plugins/Carla/Source/Carla/CarlaWheeledVehicle.cpp | 2 +- .../Plugins/Carla/Source/Carla/CarlaWheeledVehicle.h | 2 +- .../Plugins/Carla/Source/Carla/CityMapGenerator.cpp | 2 +- .../CarlaUE4/Plugins/Carla/Source/Carla/CityMapGenerator.h | 2 +- .../CarlaUE4/Plugins/Carla/Source/Carla/DynamicWeather.cpp | 2 +- Unreal/CarlaUE4/Plugins/Carla/Source/Carla/DynamicWeather.h | 2 +- .../Plugins/Carla/Source/Carla/Game/CapturedImage.h | 2 +- .../Plugins/Carla/Source/Carla/Game/CarlaGameController.cpp | 2 +- .../Plugins/Carla/Source/Carla/Game/CarlaGameController.h | 2 +- .../Carla/Source/Carla/Game/CarlaGameControllerBase.h | 2 +- .../Plugins/Carla/Source/Carla/Game/CarlaGameInstance.cpp | 2 +- .../Plugins/Carla/Source/Carla/Game/CarlaGameInstance.h | 2 +- .../Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.cpp | 2 +- .../Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.h | 2 +- .../Plugins/Carla/Source/Carla/Game/CarlaGameState.cpp | 2 +- .../Plugins/Carla/Source/Carla/Game/CarlaGameState.h | 2 +- .../CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaHUD.cpp | 2 +- Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaHUD.h | 2 +- .../Plugins/Carla/Source/Carla/Game/CarlaPlayerState.cpp | 2 +- .../Plugins/Carla/Source/Carla/Game/CarlaPlayerState.h | 2 +- .../Plugins/Carla/Source/Carla/Game/CarlaServer.cpp | 2 +- .../CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaServer.h | 2 +- .../Carla/Source/Carla/Game/CarlaVehicleController.cpp | 2 +- .../Carla/Source/Carla/Game/CarlaVehicleController.h | 2 +- .../Plugins/Carla/Source/Carla/Game/MockGameController.cpp | 2 +- .../Plugins/Carla/Source/Carla/Game/MockGameController.h | 2 +- .../Carla/Source/Carla/Game/MockGameControllerSettings.h | 2 +- .../Plugins/Carla/Source/Carla/Game/TaggerDelegate.cpp | 2 +- .../Plugins/Carla/Source/Carla/Game/TaggerDelegate.h | 2 +- .../Carla/Source/Carla/Game/WheeledVehicleController.cpp | 2 +- .../Carla/Source/Carla/Game/WheeledVehicleController.h | 2 +- .../Plugins/Carla/Source/Carla/MapGen/CityAreaDescription.h | 2 +- .../Plugins/Carla/Source/Carla/MapGen/CityMapDefinitions.h | 2 +- .../Plugins/Carla/Source/Carla/MapGen/CityMapMeshHolder.cpp | 2 +- .../Plugins/Carla/Source/Carla/MapGen/CityMapMeshHolder.h | 2 +- .../Plugins/Carla/Source/Carla/MapGen/CityMapMeshTag.cpp | 2 +- .../Plugins/Carla/Source/Carla/MapGen/CityMapMeshTag.h | 2 +- .../Carla/Source/Carla/MapGen/DoublyConnectedEdgeList.cpp | 2 +- .../Carla/Source/Carla/MapGen/DoublyConnectedEdgeList.h | 2 +- .../Plugins/Carla/Source/Carla/MapGen/GraphGenerator.cpp | 2 +- .../Plugins/Carla/Source/Carla/MapGen/GraphGenerator.h | 2 +- .../Plugins/Carla/Source/Carla/MapGen/GraphParser.cpp | 2 +- .../Plugins/Carla/Source/Carla/MapGen/GraphParser.h | 2 +- .../Plugins/Carla/Source/Carla/MapGen/GraphTypes.cpp | 2 +- .../CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphTypes.h | 2 +- .../CarlaUE4/Plugins/Carla/Source/Carla/MapGen/Position.h | 2 +- .../CarlaUE4/Plugins/Carla/Source/Carla/MapGen/RoadMap.cpp | 2 +- Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/RoadMap.h | 2 +- .../Carla/Source/Carla/MapGen/RoadSegmentDescription.h | 2 +- .../Carla/Source/Carla/MapGen/StaticMeshCollection.cpp | 2 +- .../Carla/Source/Carla/MapGen/StaticMeshCollection.h | 2 +- .../Plugins/Carla/Source/Carla/RoadIntersection.cpp | 2 +- .../CarlaUE4/Plugins/Carla/Source/Carla/RoadIntersection.h | 2 +- Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadSegment.cpp | 2 +- Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadSegment.h | 2 +- .../Plugins/Carla/Source/Carla/SceneCaptureCamera.cpp | 2 +- .../Plugins/Carla/Source/Carla/SceneCaptureCamera.h | 2 +- .../Plugins/Carla/Source/Carla/SceneCaptureToDiskCamera.cpp | 2 +- .../Plugins/Carla/Source/Carla/SceneCaptureToDiskCamera.h | 2 +- .../Plugins/Carla/Source/Carla/Settings/CameraDescription.h | 2 +- .../Source/Carla/Settings/CameraPostProcessParameters.h | 2 +- .../Plugins/Carla/Source/Carla/Settings/CarlaSettings.cpp | 2 +- .../Plugins/Carla/Source/Carla/Settings/CarlaSettings.h | 2 +- .../Carla/Source/Carla/Settings/PostProcessEffect.cpp | 2 +- .../Plugins/Carla/Source/Carla/Settings/PostProcessEffect.h | 2 +- .../Carla/Source/Carla/Settings/WeatherDescription.cpp | 2 +- .../Carla/Source/Carla/Settings/WeatherDescription.h | 2 +- Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Tagger.cpp | 2 +- Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Tagger.h | 2 +- .../Carla/Source/Carla/Util/ActorWithRandomEngine.cpp | 2 +- .../Plugins/Carla/Source/Carla/Util/ActorWithRandomEngine.h | 2 +- Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/IniFile.h | 2 +- Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ListView.h | 2 +- .../Plugins/Carla/Source/Carla/Util/RandomEngine.cpp | 2 +- .../CarlaUE4/Plugins/Carla/Source/Carla/Util/RandomEngine.h | 2 +- Unreal/CarlaUE4/Source/CarlaUE4/CarlaMapGenerator.cpp | 2 +- Unreal/CarlaUE4/Source/CarlaUE4/CarlaMapGenerator.h | 2 +- Util/CarlaServer/include/carla/carla_server.h | 2 +- Util/CarlaServer/source/carla/ArrayView.h | 2 +- Util/CarlaServer/source/carla/Debug.h | 2 +- Util/CarlaServer/source/carla/Logging.h | 2 +- Util/CarlaServer/source/carla/NonCopyable.h | 2 +- Util/CarlaServer/source/carla/Profiler.h | 2 +- Util/CarlaServer/source/carla/StopWatch.h | 2 +- Util/CarlaServer/source/carla/server/AgentServer.cpp | 2 +- Util/CarlaServer/source/carla/server/AgentServer.h | 2 +- Util/CarlaServer/source/carla/server/AsyncServer.h | 2 +- Util/CarlaServer/source/carla/server/AsyncService.cpp | 2 +- Util/CarlaServer/source/carla/server/AsyncService.h | 2 +- Util/CarlaServer/source/carla/server/CarlaEncoder.cpp | 2 +- Util/CarlaServer/source/carla/server/CarlaEncoder.h | 2 +- Util/CarlaServer/source/carla/server/CarlaMeasurements.cpp | 2 +- Util/CarlaServer/source/carla/server/CarlaMeasurements.h | 2 +- Util/CarlaServer/source/carla/server/CarlaServer.cpp | 2 +- Util/CarlaServer/source/carla/server/CarlaServer.h | 2 +- Util/CarlaServer/source/carla/server/CarlaServerAPI.h | 2 +- Util/CarlaServer/source/carla/server/DoubleBuffer.h | 2 +- Util/CarlaServer/source/carla/server/EncoderServer.h | 2 +- Util/CarlaServer/source/carla/server/Future.h | 2 +- Util/CarlaServer/source/carla/server/ImagesMessage.cpp | 2 +- Util/CarlaServer/source/carla/server/ImagesMessage.h | 2 +- Util/CarlaServer/source/carla/server/MeasurementsMessage.h | 2 +- Util/CarlaServer/source/carla/server/Protobuf.cpp | 2 +- Util/CarlaServer/source/carla/server/Protobuf.h | 2 +- Util/CarlaServer/source/carla/server/RequestNewEpisode.h | 2 +- Util/CarlaServer/source/carla/server/ServerTraits.h | 2 +- Util/CarlaServer/source/carla/server/TCPServer.cpp | 2 +- Util/CarlaServer/source/carla/server/TCPServer.h | 2 +- Util/CarlaServer/source/carla/server/Task.h | 2 +- Util/CarlaServer/source/carla/server/ThreadSafeQueue.h | 2 +- Util/CarlaServer/source/carla/server/WorldServer.cpp | 2 +- Util/CarlaServer/source/carla/server/WorldServer.h | 2 +- Util/ImageConverter/depth_pixel_converter.h | 2 +- Util/ImageConverter/image_converter.h | 2 +- Util/ImageConverter/image_converter_types.h | 2 +- Util/ImageConverter/image_io.h | 2 +- Util/ImageConverter/label_pixel_converter.h | 2 +- Util/ImageConverter/main.cpp | 2 +- Util/Proto/carla_server.proto | 2 +- Util/download_from_gdrive.py | 2 +- 165 files changed, 199 insertions(+), 158 deletions(-) diff --git a/LICENSE b/LICENSE index 1fdfb2a5e..fa5e6b50b 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,7 @@ MIT License Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -Barcelona (UAB), and the INTEL Visual Computing Lab. +Barcelona (UAB). Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/PythonClient/carla/benchmarks/agent.py b/PythonClient/carla/benchmarks/agent.py index c71f4c1db..8f58ab372 100644 --- a/PythonClient/carla/benchmarks/agent.py +++ b/PythonClient/carla/benchmarks/agent.py @@ -1,7 +1,7 @@ #!/usr/bin/env python2 # -*- coding: utf-8 -*- # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/carla/benchmarks/benchmark.py b/PythonClient/carla/benchmarks/benchmark.py index 672e4f0f7..2e6f3a164 100644 --- a/PythonClient/carla/benchmarks/benchmark.py +++ b/PythonClient/carla/benchmarks/benchmark.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/carla/benchmarks/corl_2017.py b/PythonClient/carla/benchmarks/corl_2017.py index cf2cf11c2..55a12b46c 100644 --- a/PythonClient/carla/benchmarks/corl_2017.py +++ b/PythonClient/carla/benchmarks/corl_2017.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/carla/benchmarks/experiment.py b/PythonClient/carla/benchmarks/experiment.py index 8626dd797..95fda2972 100644 --- a/PythonClient/carla/benchmarks/experiment.py +++ b/PythonClient/carla/benchmarks/experiment.py @@ -1,3 +1,8 @@ +# Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de +# Barcelona (UAB). +# +# This work is licensed under the terms of the MIT license. +# For a copy, see . from carla.settings import CarlaSettings diff --git a/PythonClient/carla/benchmarks/metrics.py b/PythonClient/carla/benchmarks/metrics.py index dd47a5f52..e3ff22f29 100644 --- a/PythonClient/carla/benchmarks/metrics.py +++ b/PythonClient/carla/benchmarks/metrics.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/carla/client.py b/PythonClient/carla/client.py index 1f969d3f0..77780812b 100644 --- a/PythonClient/carla/client.py +++ b/PythonClient/carla/client.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/carla/image_converter.py b/PythonClient/carla/image_converter.py index 1a1c2e718..22935a1b6 100644 --- a/PythonClient/carla/image_converter.py +++ b/PythonClient/carla/image_converter.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/carla/planner/astar.py b/PythonClient/carla/planner/astar.py index e322395ec..0d24a6090 100644 --- a/PythonClient/carla/planner/astar.py +++ b/PythonClient/carla/planner/astar.py @@ -1,3 +1,9 @@ +# Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de +# Barcelona (UAB). +# +# This work is licensed under the terms of the MIT license. +# For a copy, see . + import heapq diff --git a/PythonClient/carla/planner/city_track.py b/PythonClient/carla/planner/city_track.py index 4223426c8..2e9bf1bff 100644 --- a/PythonClient/carla/planner/city_track.py +++ b/PythonClient/carla/planner/city_track.py @@ -1,3 +1,9 @@ +# Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de +# Barcelona (UAB). +# +# This work is licensed under the terms of the MIT license. +# For a copy, see . + from carla.planner.graph import sldist from carla.planner.astar import AStar diff --git a/PythonClient/carla/planner/converter.py b/PythonClient/carla/planner/converter.py index f417f7610..e05a5b820 100644 --- a/PythonClient/carla/planner/converter.py +++ b/PythonClient/carla/planner/converter.py @@ -1,3 +1,9 @@ +# Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de +# Barcelona (UAB). +# +# This work is licensed under the terms of the MIT license. +# For a copy, see . + import math import numpy as np diff --git a/PythonClient/carla/planner/graph.py b/PythonClient/carla/planner/graph.py index 54913b00f..23f32d381 100644 --- a/PythonClient/carla/planner/graph.py +++ b/PythonClient/carla/planner/graph.py @@ -1,3 +1,9 @@ +# Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de +# Barcelona (UAB). +# +# This work is licensed under the terms of the MIT license. +# For a copy, see . + import math import numpy as np diff --git a/PythonClient/carla/planner/grid.py b/PythonClient/carla/planner/grid.py index 3e7d8bcf4..fe14115a6 100644 --- a/PythonClient/carla/planner/grid.py +++ b/PythonClient/carla/planner/grid.py @@ -1,3 +1,9 @@ +# Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de +# Barcelona (UAB). +# +# This work is licensed under the terms of the MIT license. +# For a copy, see . + import copy import numpy as np diff --git a/PythonClient/carla/planner/map.py b/PythonClient/carla/planner/map.py index f402b2650..7a9227952 100644 --- a/PythonClient/carla/planner/map.py +++ b/PythonClient/carla/planner/map.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/carla/planner/planner.py b/PythonClient/carla/planner/planner.py index 20f84f981..93c22e8a5 100644 --- a/PythonClient/carla/planner/planner.py +++ b/PythonClient/carla/planner/planner.py @@ -1,3 +1,9 @@ +# Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de +# Barcelona (UAB). +# +# This work is licensed under the terms of the MIT license. +# For a copy, see . + import collections import math diff --git a/PythonClient/carla/sensor.py b/PythonClient/carla/sensor.py index f4e14333a..9710d95f4 100644 --- a/PythonClient/carla/sensor.py +++ b/PythonClient/carla/sensor.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/carla/settings.py b/PythonClient/carla/settings.py index f0eb50218..bea024333 100644 --- a/PythonClient/carla/settings.py +++ b/PythonClient/carla/settings.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/carla/tcp.py b/PythonClient/carla/tcp.py index fbf1b17f3..d6de55972 100644 --- a/PythonClient/carla/tcp.py +++ b/PythonClient/carla/tcp.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/carla/util.py b/PythonClient/carla/util.py index ce668235c..517576344 100644 --- a/PythonClient/carla/util.py +++ b/PythonClient/carla/util.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/client_example.py b/PythonClient/client_example.py index 2b687313d..4f513b09f 100755 --- a/PythonClient/client_example.py +++ b/PythonClient/client_example.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/manual_control.py b/PythonClient/manual_control.py index 9e3d9d69b..3074c709d 100755 --- a/PythonClient/manual_control.py +++ b/PythonClient/manual_control.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/run_benchmark.py b/PythonClient/run_benchmark.py index 384885ede..d3b6c5686 100755 --- a/PythonClient/run_benchmark.py +++ b/PythonClient/run_benchmark.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/test/console.py b/PythonClient/test/console.py index 48b7805ff..da1b73e60 100644 --- a/PythonClient/test/console.py +++ b/PythonClient/test/console.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/test/test_client.py b/PythonClient/test/test_client.py index 96d0d0340..cba555cc3 100755 --- a/PythonClient/test/test_client.py +++ b/PythonClient/test/test_client.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/test/test_suite.py b/PythonClient/test/test_suite.py index b1efbd4d9..e4f822635 100755 --- a/PythonClient/test/test_suite.py +++ b/PythonClient/test/test_suite.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/test/unit_tests/Basic.py b/PythonClient/test/unit_tests/Basic.py index fc9e2323a..9197c1241 100644 --- a/PythonClient/test/unit_tests/Basic.py +++ b/PythonClient/test/unit_tests/Basic.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/PythonClient/test/unit_tests/__init__.py b/PythonClient/test/unit_tests/__init__.py index 45081b562..ddd0237e8 100644 --- a/PythonClient/test/unit_tests/__init__.py +++ b/PythonClient/test/unit_tests/__init__.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . diff --git a/Unreal/CarlaUE4/Config/DefaultGame.ini b/Unreal/CarlaUE4/Config/DefaultGame.ini index 6b8758a26..8a71b87ee 100644 --- a/Unreal/CarlaUE4/Config/DefaultGame.ini +++ b/Unreal/CarlaUE4/Config/DefaultGame.ini @@ -2,7 +2,7 @@ ProjectID=675BF8694238308FA9368292CC440350 ProjectName=CARLA UE4 CompanyName=CVC -CopyrightNotice="Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonomade Barcelona (UAB), and the INTEL Visual Computing Lab.This work is licensed under the terms of the MIT license.For a copy, see ." +CopyrightNotice="Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de Barcelona (UAB). This work is licensed under the terms of the MIT license. For a copy, see ." ProjectVersion=0.7.0 [/Script/UnrealEd.ProjectPackagingSettings] diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/CarlaWheeledVehicleState.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/CarlaWheeledVehicleState.h index 39e861b54..a2ffb78c6 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/CarlaWheeledVehicleState.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/CarlaWheeledVehicleState.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/RoutePlanner.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/RoutePlanner.cpp index c25b86905..906cfe698 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/RoutePlanner.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/RoutePlanner.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/RoutePlanner.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/RoutePlanner.h index 8a94d2c51..633887e54 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/RoutePlanner.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/RoutePlanner.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficLightBase.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficLightBase.cpp index bc21f21f9..9a15ad2a5 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficLightBase.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficLightBase.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficLightBase.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficLightBase.h index 2e8194388..b48e6c994 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficLightBase.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficLightBase.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficLightState.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficLightState.h index 44cae4ab9..daba3d2e7 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficLightState.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficLightState.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficSignBase.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficSignBase.cpp index 9eb72fa70..59e954be4 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficSignBase.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficSignBase.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficSignBase.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficSignBase.h index 48e87264e..8832dc7ed 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficSignBase.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/TrafficSignBase.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/VehicleSpawnerBase.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/VehicleSpawnerBase.cpp index e8030de9a..198e7b199 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/VehicleSpawnerBase.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/VehicleSpawnerBase.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/VehicleSpawnerBase.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/VehicleSpawnerBase.h index b1518c92d..b3fc2a623 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/VehicleSpawnerBase.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/VehicleSpawnerBase.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerAIController.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerAIController.cpp index cc6b86bc6..a59e1d0e9 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerAIController.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerAIController.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerAIController.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerAIController.h index 3159ef6c9..c4f59b672 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerAIController.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerAIController.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerSpawnPoint.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerSpawnPoint.h index 7acdda9cc..5ea6cbc48 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerSpawnPoint.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerSpawnPoint.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerSpawnerBase.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerSpawnerBase.cpp index 2e9e0e2cf..409a033a0 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerSpawnerBase.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerSpawnerBase.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerSpawnerBase.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerSpawnerBase.h index ad077d234..0adb22b77 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerSpawnerBase.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WalkerSpawnerBase.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WheeledVehicleAIController.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WheeledVehicleAIController.cpp index ec9c7e5f7..795a656af 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WheeledVehicleAIController.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WheeledVehicleAIController.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WheeledVehicleAIController.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WheeledVehicleAIController.h index c4e51c74f..02d9972f2 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WheeledVehicleAIController.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/AI/WheeledVehicleAIController.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/CarlaWheeledVehicle.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/CarlaWheeledVehicle.cpp index 27ad8a495..c74aa981c 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/CarlaWheeledVehicle.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/CarlaWheeledVehicle.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/CarlaWheeledVehicle.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/CarlaWheeledVehicle.h index ebfaee7f7..b2cdd2d36 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/CarlaWheeledVehicle.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/CarlaWheeledVehicle.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/CityMapGenerator.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/CityMapGenerator.cpp index a8bb3e720..070dae978 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/CityMapGenerator.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/CityMapGenerator.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/CityMapGenerator.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/CityMapGenerator.h index 44e440a7a..814d50d21 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/CityMapGenerator.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/CityMapGenerator.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/DynamicWeather.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/DynamicWeather.cpp index 3241a645d..77c4175ce 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/DynamicWeather.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/DynamicWeather.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/DynamicWeather.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/DynamicWeather.h index 94becc24a..83608c76d 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/DynamicWeather.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/DynamicWeather.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CapturedImage.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CapturedImage.h index b4dbe2659..8ecc4b033 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CapturedImage.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CapturedImage.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameController.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameController.cpp index 9d3d4894c..6c80d71d4 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameController.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameController.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameController.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameController.h index c7f43d68d..e54849f60 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameController.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameController.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameControllerBase.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameControllerBase.h index 007fadf86..cb895ca6f 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameControllerBase.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameControllerBase.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameInstance.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameInstance.cpp index b9555f530..55ae20caf 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameInstance.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameInstance.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameInstance.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameInstance.h index bb51daf14..896f5af7f 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameInstance.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameInstance.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.cpp index 3352bafe8..71d326f6b 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.h index 5556fd53a..9dc4247a1 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameState.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameState.cpp index be9d86e1a..3ce608ee1 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameState.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameState.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameState.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameState.h index bae8545b0..b4c008be0 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameState.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameState.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaHUD.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaHUD.cpp index 8b9a8b0d6..8b2753db4 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaHUD.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaHUD.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaHUD.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaHUD.h index f6f5e7e64..761babefb 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaHUD.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaHUD.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaPlayerState.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaPlayerState.cpp index a2f2df916..e72561aca 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaPlayerState.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaPlayerState.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaPlayerState.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaPlayerState.h index 50cbf4679..fddbf0325 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaPlayerState.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaPlayerState.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaServer.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaServer.cpp index 5e3f9d35e..a82cdf4ea 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaServer.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaServer.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaServer.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaServer.h index 7e8ff7fad..f4ee095e2 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaServer.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaServer.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaVehicleController.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaVehicleController.cpp index e1f7aa497..d2a29baa8 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaVehicleController.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaVehicleController.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaVehicleController.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaVehicleController.h index a0ea4cf03..cbe7e0b7c 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaVehicleController.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaVehicleController.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/MockGameController.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/MockGameController.cpp index edb367729..c57352758 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/MockGameController.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/MockGameController.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/MockGameController.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/MockGameController.h index 8ef00a082..ff9712141 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/MockGameController.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/MockGameController.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/MockGameControllerSettings.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/MockGameControllerSettings.h index 229485fd3..a32033f39 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/MockGameControllerSettings.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/MockGameControllerSettings.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/TaggerDelegate.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/TaggerDelegate.cpp index 01d9225e0..97c0c44af 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/TaggerDelegate.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/TaggerDelegate.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/TaggerDelegate.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/TaggerDelegate.h index 60fbbee23..80c17c057 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/TaggerDelegate.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/TaggerDelegate.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/WheeledVehicleController.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/WheeledVehicleController.cpp index 07d0ca64b..359ff96b3 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/WheeledVehicleController.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/WheeledVehicleController.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/WheeledVehicleController.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/WheeledVehicleController.h index 3be863c5d..690566a99 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/WheeledVehicleController.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/WheeledVehicleController.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityAreaDescription.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityAreaDescription.h index 85496f2db..5302456f4 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityAreaDescription.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityAreaDescription.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapDefinitions.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapDefinitions.h index 114096cb5..1b03db3e6 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapDefinitions.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapDefinitions.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshHolder.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshHolder.cpp index 0d649a92b..47412f3fd 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshHolder.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshHolder.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshHolder.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshHolder.h index 9cad7d854..f9eeb4ba2 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshHolder.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshHolder.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshTag.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshTag.cpp index 80c99a4f7..1ee7916fb 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshTag.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshTag.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshTag.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshTag.h index 49d627843..32354d2d7 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshTag.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/CityMapMeshTag.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/DoublyConnectedEdgeList.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/DoublyConnectedEdgeList.cpp index 192f81209..58a2db67a 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/DoublyConnectedEdgeList.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/DoublyConnectedEdgeList.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/DoublyConnectedEdgeList.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/DoublyConnectedEdgeList.h index e6af7ce57..ea83bf0aa 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/DoublyConnectedEdgeList.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/DoublyConnectedEdgeList.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphGenerator.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphGenerator.cpp index f3af81d3b..4ecc46d78 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphGenerator.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphGenerator.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphGenerator.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphGenerator.h index 79993f7b7..b36c32dac 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphGenerator.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphGenerator.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphParser.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphParser.cpp index dc25d9a2b..624209441 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphParser.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphParser.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphParser.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphParser.h index f556456af..e60405f0e 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphParser.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphParser.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphTypes.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphTypes.cpp index 81f4e2bf0..9653d8078 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphTypes.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphTypes.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphTypes.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphTypes.h index f332636a8..41d3662a4 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphTypes.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/GraphTypes.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/Position.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/Position.h index dbab62be8..d7e042443 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/Position.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/Position.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/RoadMap.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/RoadMap.cpp index bf0badbb1..2994f8f75 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/RoadMap.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/RoadMap.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/RoadMap.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/RoadMap.h index abd6ff57b..ceb9974b7 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/RoadMap.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/RoadMap.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/RoadSegmentDescription.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/RoadSegmentDescription.h index 5521c0b9e..de8afa1a2 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/RoadSegmentDescription.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/RoadSegmentDescription.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/StaticMeshCollection.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/StaticMeshCollection.cpp index 97e65913c..28aaa8062 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/StaticMeshCollection.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/StaticMeshCollection.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/StaticMeshCollection.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/StaticMeshCollection.h index 6eb007a2c..cc61ccb13 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/StaticMeshCollection.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/StaticMeshCollection.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadIntersection.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadIntersection.cpp index ef7acda21..d05354c9f 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadIntersection.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadIntersection.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadIntersection.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadIntersection.h index 96ea75446..ddfb852eb 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadIntersection.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadIntersection.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadSegment.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadSegment.cpp index 32a974c71..f564996ea 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadSegment.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadSegment.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadSegment.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadSegment.h index 80ab186e1..53a6e044a 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadSegment.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/RoadSegment.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/SceneCaptureCamera.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/SceneCaptureCamera.cpp index 0307eb634..a1fd1d1c2 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/SceneCaptureCamera.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/SceneCaptureCamera.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/SceneCaptureCamera.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/SceneCaptureCamera.h index d4411bb7b..360bbebfd 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/SceneCaptureCamera.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/SceneCaptureCamera.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/SceneCaptureToDiskCamera.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/SceneCaptureToDiskCamera.cpp index d5738a78c..223efffcc 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/SceneCaptureToDiskCamera.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/SceneCaptureToDiskCamera.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/SceneCaptureToDiskCamera.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/SceneCaptureToDiskCamera.h index 1ab429a14..38698478b 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/SceneCaptureToDiskCamera.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/SceneCaptureToDiskCamera.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/CameraDescription.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/CameraDescription.h index 05240a86c..d10650fc8 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/CameraDescription.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/CameraDescription.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/CameraPostProcessParameters.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/CameraPostProcessParameters.h index ee59dac02..07ebded37 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/CameraPostProcessParameters.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/CameraPostProcessParameters.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/CarlaSettings.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/CarlaSettings.cpp index 74c7fbb11..905ee408e 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/CarlaSettings.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/CarlaSettings.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/CarlaSettings.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/CarlaSettings.h index 37d130c32..d024870c3 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/CarlaSettings.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/CarlaSettings.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/PostProcessEffect.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/PostProcessEffect.cpp index 5e30ff5b7..660bfac12 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/PostProcessEffect.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/PostProcessEffect.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/PostProcessEffect.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/PostProcessEffect.h index 522d28647..3a6005485 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/PostProcessEffect.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/PostProcessEffect.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/WeatherDescription.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/WeatherDescription.cpp index 394aa42b6..383c1edf7 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/WeatherDescription.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/WeatherDescription.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/WeatherDescription.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/WeatherDescription.h index edde82efb..67f5f074e 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/WeatherDescription.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Settings/WeatherDescription.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Tagger.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Tagger.cpp index 6d3639f68..9cf36179b 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Tagger.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Tagger.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Tagger.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Tagger.h index 58d88306e..97ee77ffe 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Tagger.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Tagger.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ActorWithRandomEngine.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ActorWithRandomEngine.cpp index 31d994ab1..28c1dfd3f 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ActorWithRandomEngine.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ActorWithRandomEngine.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ActorWithRandomEngine.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ActorWithRandomEngine.h index b9f54dbcb..58437e410 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ActorWithRandomEngine.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ActorWithRandomEngine.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/IniFile.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/IniFile.h index e2bc20502..9e6e7276f 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/IniFile.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/IniFile.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ListView.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ListView.h index 91adfd089..cd6ddf7e3 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ListView.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/ListView.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/RandomEngine.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/RandomEngine.cpp index 91f299282..a823cd793 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/RandomEngine.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/RandomEngine.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/RandomEngine.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/RandomEngine.h index a124baf20..db786fade 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/RandomEngine.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/RandomEngine.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Source/CarlaUE4/CarlaMapGenerator.cpp b/Unreal/CarlaUE4/Source/CarlaUE4/CarlaMapGenerator.cpp index 99d14f44e..d593e9629 100644 --- a/Unreal/CarlaUE4/Source/CarlaUE4/CarlaMapGenerator.cpp +++ b/Unreal/CarlaUE4/Source/CarlaUE4/CarlaMapGenerator.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Unreal/CarlaUE4/Source/CarlaUE4/CarlaMapGenerator.h b/Unreal/CarlaUE4/Source/CarlaUE4/CarlaMapGenerator.h index 1a5eb380f..b3608a546 100644 --- a/Unreal/CarlaUE4/Source/CarlaUE4/CarlaMapGenerator.h +++ b/Unreal/CarlaUE4/Source/CarlaUE4/CarlaMapGenerator.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/include/carla/carla_server.h b/Util/CarlaServer/include/carla/carla_server.h index 8df08944f..4ffb02f31 100644 --- a/Util/CarlaServer/include/carla/carla_server.h +++ b/Util/CarlaServer/include/carla/carla_server.h @@ -1,5 +1,5 @@ /* Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma - * de Barcelona (UAB), and the INTEL Visual Computing Lab. + * de Barcelona (UAB). * * This work is licensed under the terms of the MIT license. * For a copy, see . diff --git a/Util/CarlaServer/source/carla/ArrayView.h b/Util/CarlaServer/source/carla/ArrayView.h index edb94526e..21d5aea0c 100644 --- a/Util/CarlaServer/source/carla/ArrayView.h +++ b/Util/CarlaServer/source/carla/ArrayView.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/Debug.h b/Util/CarlaServer/source/carla/Debug.h index 00ccc37ba..c9cc82c0f 100644 --- a/Util/CarlaServer/source/carla/Debug.h +++ b/Util/CarlaServer/source/carla/Debug.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/Logging.h b/Util/CarlaServer/source/carla/Logging.h index e2d231fd9..684a0274d 100644 --- a/Util/CarlaServer/source/carla/Logging.h +++ b/Util/CarlaServer/source/carla/Logging.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/NonCopyable.h b/Util/CarlaServer/source/carla/NonCopyable.h index d6f577aab..41747bc41 100644 --- a/Util/CarlaServer/source/carla/NonCopyable.h +++ b/Util/CarlaServer/source/carla/NonCopyable.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/Profiler.h b/Util/CarlaServer/source/carla/Profiler.h index 6647ec03b..b070696eb 100644 --- a/Util/CarlaServer/source/carla/Profiler.h +++ b/Util/CarlaServer/source/carla/Profiler.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/StopWatch.h b/Util/CarlaServer/source/carla/StopWatch.h index 818a7e46c..b79d8b692 100644 --- a/Util/CarlaServer/source/carla/StopWatch.h +++ b/Util/CarlaServer/source/carla/StopWatch.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/AgentServer.cpp b/Util/CarlaServer/source/carla/server/AgentServer.cpp index 06390da48..6eac5bd94 100644 --- a/Util/CarlaServer/source/carla/server/AgentServer.cpp +++ b/Util/CarlaServer/source/carla/server/AgentServer.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/AgentServer.h b/Util/CarlaServer/source/carla/server/AgentServer.h index e02b956da..37494f387 100644 --- a/Util/CarlaServer/source/carla/server/AgentServer.h +++ b/Util/CarlaServer/source/carla/server/AgentServer.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/AsyncServer.h b/Util/CarlaServer/source/carla/server/AsyncServer.h index ca21f3bc9..972edde8d 100644 --- a/Util/CarlaServer/source/carla/server/AsyncServer.h +++ b/Util/CarlaServer/source/carla/server/AsyncServer.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/AsyncService.cpp b/Util/CarlaServer/source/carla/server/AsyncService.cpp index 967e018fa..a0aabeb11 100644 --- a/Util/CarlaServer/source/carla/server/AsyncService.cpp +++ b/Util/CarlaServer/source/carla/server/AsyncService.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/AsyncService.h b/Util/CarlaServer/source/carla/server/AsyncService.h index 7ff5b2799..aef601242 100644 --- a/Util/CarlaServer/source/carla/server/AsyncService.h +++ b/Util/CarlaServer/source/carla/server/AsyncService.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/CarlaEncoder.cpp b/Util/CarlaServer/source/carla/server/CarlaEncoder.cpp index b90fbeca5..39cb2e654 100644 --- a/Util/CarlaServer/source/carla/server/CarlaEncoder.cpp +++ b/Util/CarlaServer/source/carla/server/CarlaEncoder.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/CarlaEncoder.h b/Util/CarlaServer/source/carla/server/CarlaEncoder.h index c3b3525be..91732671c 100644 --- a/Util/CarlaServer/source/carla/server/CarlaEncoder.h +++ b/Util/CarlaServer/source/carla/server/CarlaEncoder.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/CarlaMeasurements.cpp b/Util/CarlaServer/source/carla/server/CarlaMeasurements.cpp index 6a39cf821..081475495 100644 --- a/Util/CarlaServer/source/carla/server/CarlaMeasurements.cpp +++ b/Util/CarlaServer/source/carla/server/CarlaMeasurements.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/CarlaMeasurements.h b/Util/CarlaServer/source/carla/server/CarlaMeasurements.h index b15f9a1f3..834511a3d 100644 --- a/Util/CarlaServer/source/carla/server/CarlaMeasurements.h +++ b/Util/CarlaServer/source/carla/server/CarlaMeasurements.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/CarlaServer.cpp b/Util/CarlaServer/source/carla/server/CarlaServer.cpp index 6bf81bfd4..7add00d05 100644 --- a/Util/CarlaServer/source/carla/server/CarlaServer.cpp +++ b/Util/CarlaServer/source/carla/server/CarlaServer.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/CarlaServer.h b/Util/CarlaServer/source/carla/server/CarlaServer.h index 8c1b2abc9..6e61b9346 100644 --- a/Util/CarlaServer/source/carla/server/CarlaServer.h +++ b/Util/CarlaServer/source/carla/server/CarlaServer.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/CarlaServerAPI.h b/Util/CarlaServer/source/carla/server/CarlaServerAPI.h index 6755920d3..32ffa12f9 100644 --- a/Util/CarlaServer/source/carla/server/CarlaServerAPI.h +++ b/Util/CarlaServer/source/carla/server/CarlaServerAPI.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/DoubleBuffer.h b/Util/CarlaServer/source/carla/server/DoubleBuffer.h index 4cd42920f..a9172e823 100644 --- a/Util/CarlaServer/source/carla/server/DoubleBuffer.h +++ b/Util/CarlaServer/source/carla/server/DoubleBuffer.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/EncoderServer.h b/Util/CarlaServer/source/carla/server/EncoderServer.h index 5a9657f1e..70067d7ff 100644 --- a/Util/CarlaServer/source/carla/server/EncoderServer.h +++ b/Util/CarlaServer/source/carla/server/EncoderServer.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/Future.h b/Util/CarlaServer/source/carla/server/Future.h index f05509fe7..61c51acd0 100644 --- a/Util/CarlaServer/source/carla/server/Future.h +++ b/Util/CarlaServer/source/carla/server/Future.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/ImagesMessage.cpp b/Util/CarlaServer/source/carla/server/ImagesMessage.cpp index b681e474c..95499b032 100644 --- a/Util/CarlaServer/source/carla/server/ImagesMessage.cpp +++ b/Util/CarlaServer/source/carla/server/ImagesMessage.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/ImagesMessage.h b/Util/CarlaServer/source/carla/server/ImagesMessage.h index 0336d326f..58a6dfb29 100644 --- a/Util/CarlaServer/source/carla/server/ImagesMessage.h +++ b/Util/CarlaServer/source/carla/server/ImagesMessage.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/MeasurementsMessage.h b/Util/CarlaServer/source/carla/server/MeasurementsMessage.h index 4804c3eb6..bcffc829b 100644 --- a/Util/CarlaServer/source/carla/server/MeasurementsMessage.h +++ b/Util/CarlaServer/source/carla/server/MeasurementsMessage.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/Protobuf.cpp b/Util/CarlaServer/source/carla/server/Protobuf.cpp index 7d27cbffa..acf7549e3 100644 --- a/Util/CarlaServer/source/carla/server/Protobuf.cpp +++ b/Util/CarlaServer/source/carla/server/Protobuf.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/Protobuf.h b/Util/CarlaServer/source/carla/server/Protobuf.h index 4dac0125a..b04abd022 100644 --- a/Util/CarlaServer/source/carla/server/Protobuf.h +++ b/Util/CarlaServer/source/carla/server/Protobuf.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/RequestNewEpisode.h b/Util/CarlaServer/source/carla/server/RequestNewEpisode.h index dc0b20515..0e615ffbd 100644 --- a/Util/CarlaServer/source/carla/server/RequestNewEpisode.h +++ b/Util/CarlaServer/source/carla/server/RequestNewEpisode.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/ServerTraits.h b/Util/CarlaServer/source/carla/server/ServerTraits.h index 36d206846..49720a74b 100644 --- a/Util/CarlaServer/source/carla/server/ServerTraits.h +++ b/Util/CarlaServer/source/carla/server/ServerTraits.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/TCPServer.cpp b/Util/CarlaServer/source/carla/server/TCPServer.cpp index 6470ae23f..b99745001 100644 --- a/Util/CarlaServer/source/carla/server/TCPServer.cpp +++ b/Util/CarlaServer/source/carla/server/TCPServer.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/TCPServer.h b/Util/CarlaServer/source/carla/server/TCPServer.h index c1d5ebcd8..a0b580131 100644 --- a/Util/CarlaServer/source/carla/server/TCPServer.h +++ b/Util/CarlaServer/source/carla/server/TCPServer.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/Task.h b/Util/CarlaServer/source/carla/server/Task.h index 6ec9a6caf..bdc51e0a9 100644 --- a/Util/CarlaServer/source/carla/server/Task.h +++ b/Util/CarlaServer/source/carla/server/Task.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/ThreadSafeQueue.h b/Util/CarlaServer/source/carla/server/ThreadSafeQueue.h index d1550d2d0..3a72c6923 100644 --- a/Util/CarlaServer/source/carla/server/ThreadSafeQueue.h +++ b/Util/CarlaServer/source/carla/server/ThreadSafeQueue.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/WorldServer.cpp b/Util/CarlaServer/source/carla/server/WorldServer.cpp index 3b7d974e8..55377af82 100644 --- a/Util/CarlaServer/source/carla/server/WorldServer.cpp +++ b/Util/CarlaServer/source/carla/server/WorldServer.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/CarlaServer/source/carla/server/WorldServer.h b/Util/CarlaServer/source/carla/server/WorldServer.h index 8f41abc51..87cfeb145 100644 --- a/Util/CarlaServer/source/carla/server/WorldServer.h +++ b/Util/CarlaServer/source/carla/server/WorldServer.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/ImageConverter/depth_pixel_converter.h b/Util/ImageConverter/depth_pixel_converter.h index 89abe99e8..b9f4d0eec 100644 --- a/Util/ImageConverter/depth_pixel_converter.h +++ b/Util/ImageConverter/depth_pixel_converter.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/ImageConverter/image_converter.h b/Util/ImageConverter/image_converter.h index ad2c28caf..9d8916d5f 100644 --- a/Util/ImageConverter/image_converter.h +++ b/Util/ImageConverter/image_converter.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/ImageConverter/image_converter_types.h b/Util/ImageConverter/image_converter_types.h index 0d41ab33b..6990bfecf 100644 --- a/Util/ImageConverter/image_converter_types.h +++ b/Util/ImageConverter/image_converter_types.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/ImageConverter/image_io.h b/Util/ImageConverter/image_io.h index fa0b9621c..31dcf128e 100644 --- a/Util/ImageConverter/image_io.h +++ b/Util/ImageConverter/image_io.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/ImageConverter/label_pixel_converter.h b/Util/ImageConverter/label_pixel_converter.h index 0aaef761f..9c922f87b 100644 --- a/Util/ImageConverter/label_pixel_converter.h +++ b/Util/ImageConverter/label_pixel_converter.h @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/ImageConverter/main.cpp b/Util/ImageConverter/main.cpp index b9b727377..c8ed147b5 100644 --- a/Util/ImageConverter/main.cpp +++ b/Util/ImageConverter/main.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/Proto/carla_server.proto b/Util/Proto/carla_server.proto index 876ed321f..1ce3a8296 100644 --- a/Util/Proto/carla_server.proto +++ b/Util/Proto/carla_server.proto @@ -1,5 +1,5 @@ // Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma -// de Barcelona (UAB), and the INTEL Visual Computing Lab. +// de Barcelona (UAB). // // This work is licensed under the terms of the MIT license. // For a copy, see . diff --git a/Util/download_from_gdrive.py b/Util/download_from_gdrive.py index 5d13f51f6..fa137a114 100755 --- a/Util/download_from_gdrive.py +++ b/Util/download_from_gdrive.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de -# Barcelona (UAB), and the INTEL Visual Computing Lab. +# Barcelona (UAB). # # This work is licensed under the terms of the MIT license. # For a copy, see . From 241bca1c3ca6034cf706628ff5aa0635a717ea42 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Tue, 23 Jan 2018 13:03:15 +0100 Subject: [PATCH 095/121] Fix benchmark link --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f2a803b6d..4cdce0fef 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,9 @@ environmental conditions. For instructions on how to use and compile CARLA, check out [CARLA Documentation](http://carla.readthedocs.io). -If you want to benchmark your model in the same conditions as in our CoRL’17 paper, check out [Benchmarking](https://github.com/carla-simulator/carla/blob/benchmark_branch/Docs/benchmark.md). +If you want to benchmark your model in the same conditions as in our CoRL’17 +paper, check out +[Benchmarking](http://carla.readthedocs.io/en/latest/benchmark/). News ---- From 7b22ccae3fc1470a1da8cc643f8781f2aaf3a7d0 Mon Sep 17 00:00:00 2001 From: Wim Lemkens Date: Tue, 23 Jan 2018 14:38:38 +0100 Subject: [PATCH 096/121] Added a basic description for creating a new map --- Docs/map_customization.md | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/Docs/map_customization.md b/Docs/map_customization.md index 13e7ce966..b15b7f26d 100644 --- a/Docs/map_customization.md +++ b/Docs/map_customization.md @@ -2,6 +2,37 @@ This are the specific blueprint assets created to help building the environment. +## Creating a new map +Notes: + - As creating a map from scratch with the Carla tools causes a crash with UE4.17.2 (Issue [#99](https://github.com/carla-simulator/carla/issues/99)), +this guide will suggest dupplicating an existing level instead of creating one from scratch. + +### Requirements + + - Checkout and build carla from source on [Linux](how_to_build_on_linux.md) or [Windows](how_to_build_on_windows.md) + +### Creating +1. Duplicate an existing map +2. Remove everything you don't need from the map + - Keep the folder "Lighting", "AtmosphericFog", "PostProcessVol" and "CarlaMapGenerator". + - It might be interesting to keep the empty level as a template and dupplicate it before starting to populate it. +3. In the CarlaMapGenerator, there is a field "seed". You can change the map by altering that seed and clicking "Trigger Road Map Generation". "Save Road Map To Disk" should also be checked. +4. You can change the seed until you have a map you are satisfied with. +5. After that you can place new PlayerStarts at the places you want the cars to be spawned. +6. The AI already works, but the cars don't act randomly. + - They will prefer to go forward at crossings. + - If that fails they try to go left. + - Going right is the final thing to try. +7. To get a random behavior, you have to place IntersectionEntrances. +(See the two example towns how it exactly works). + - Basically an entrance has a set of actors that will be the waypoints to guide the car through the intersection. + - For each intersection path, there is a different list of waypoints. +8. To change the speed of the car, use the SpeedLimiters. They are straightforward to use. (Make sure you limit the speed for the corners, otherwise the cars will try and fail to take them at full speed) +9. Traffic lights need to be scripted to avoid traffic accidents. +Every street at a crossing should have its own turn at green without the other streets having green. +10. Then you can populate the world with landscape and buildings. + + ## MultipleFloorBuilding: The purpose of this blueprint is to make repeating and varying tall buildings a bit easier. Provided a Base, a MiddleFloor and a roof; this blueprint repeats the middle floor to the desired number of stores and tops it whith the last floor given some conditions: @@ -90,4 +121,4 @@ This is the actor in charge of modifying all the lighting, environmental actors - CameraPostProcessParameters.AutoExposureBias: Darkens or brightens the final image towards a defined bias. -You can have as many different configurations saved in the proyect as you want and choose the configuration to aply while on the build, through the [settings file](carla_settings.md); or in the editor while building the level or testing. \ No newline at end of file +You can have as many different configurations saved in the proyect as you want and choose the configuration to aply while on the build, through the [settings file](carla_settings.md); or in the editor while building the level or testing. From d662fe3c91d7a268e943a8c0482291fe01e77075 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Tue, 23 Jan 2018 17:01:22 +0100 Subject: [PATCH 097/121] Increase version number --- Unreal/CarlaUE4/Config/DefaultGame.ini | 2 +- Unreal/CarlaUE4/Plugins/Carla/Carla.uplugin | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Unreal/CarlaUE4/Config/DefaultGame.ini b/Unreal/CarlaUE4/Config/DefaultGame.ini index 8a71b87ee..4c9370430 100644 --- a/Unreal/CarlaUE4/Config/DefaultGame.ini +++ b/Unreal/CarlaUE4/Config/DefaultGame.ini @@ -3,7 +3,7 @@ ProjectID=675BF8694238308FA9368292CC440350 ProjectName=CARLA UE4 CompanyName=CVC CopyrightNotice="Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma de Barcelona (UAB). This work is licensed under the terms of the MIT license. For a copy, see ." -ProjectVersion=0.7.0 +ProjectVersion=0.7.1 [/Script/UnrealEd.ProjectPackagingSettings] BuildConfiguration=PPBC_Development diff --git a/Unreal/CarlaUE4/Plugins/Carla/Carla.uplugin b/Unreal/CarlaUE4/Plugins/Carla/Carla.uplugin index 4bef00a01..678cec47d 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Carla.uplugin +++ b/Unreal/CarlaUE4/Plugins/Carla/Carla.uplugin @@ -1,7 +1,7 @@ { "FileVersion": 3, "Version": 1, - "VersionName": "0.7.0", + "VersionName": "0.7.1", "FriendlyName": "CARLA", "Description": "", "Category": "Science", From 8cb0f038054e3b8e3d75996611c233e538ff928d Mon Sep 17 00:00:00 2001 From: felipecode Date: Tue, 23 Jan 2018 17:02:00 +0100 Subject: [PATCH 098/121] Some bug on map for manual control example --- PythonClient/carla/planner/converter.py | 5 ++++- PythonClient/carla/planner/map.py | 6 +++--- PythonClient/manual_control.py | 15 +++++++++------ 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/PythonClient/carla/planner/converter.py b/PythonClient/carla/planner/converter.py index f417f7610..00bf8a26e 100644 --- a/PythonClient/carla/planner/converter.py +++ b/PythonClient/carla/planner/converter.py @@ -12,7 +12,7 @@ NODE = 2 class Converter(object): - def __init__(self, city_file, node_density, pixel_density): + def __init__(self, city_file, pixel_density, node_density): self._node_density = node_density self._pixel_density = pixel_density @@ -60,6 +60,7 @@ class Converter(object): """ input_type = self._check_input_type(input_data) + if input_type == NODE: return self._node_to_pixel(input_data) elif input_type == WORLD: @@ -136,6 +137,8 @@ class Converter(object): rotation[1] + self._worldoffset[1] - self._mapoffset[1], rotation[2] + self._worldoffset[2] - self._mapoffset[2]] + + pixel = [math.floor(relative_location[0] / float(self._pixel_density)), math.floor(relative_location[1] / float(self._pixel_density))] diff --git a/PythonClient/carla/planner/map.py b/PythonClient/carla/planner/map.py index f402b2650..7818f8e37 100644 --- a/PythonClient/carla/planner/map.py +++ b/PythonClient/carla/planner/map.py @@ -26,7 +26,7 @@ from carla.planner.converter import Converter def color_to_angle(color): - return ((float(color) / 255.0)) * 2 * math.pi + return (float(color) / 255.0) * 2 * math.pi class CarlaMap(object): @@ -105,7 +105,7 @@ class CarlaMap(object): def convert_to_pixel(self, input_data): """ - Receives a data type (Can Be Pixel or World ) + Receives a data type (Can Be Node or World ) :param input_data: position in some coordinate :return: A node object """ @@ -113,7 +113,7 @@ class CarlaMap(object): def convert_to_world(self, input_data): """ - Receives a data type (Can Be Pixel or World ) + Receives a data type (Can Be Pixel or Node ) :param input_data: position in some coordinate :return: A node object """ diff --git a/PythonClient/manual_control.py b/PythonClient/manual_control.py index 9e3d9d69b..d366fa1cf 100755 --- a/PythonClient/manual_control.py +++ b/PythonClient/manual_control.py @@ -182,7 +182,7 @@ class CarlaGame(object): if self._timer.elapsed_seconds_since_lap() > 1.0: if self._city_name is not None: # Function to get car position on map. - map_position = self._map.get_position_on_map([ + map_position = self._map.convert_to_pixel([ measurements.player_measurements.transform.location.x, measurements.player_measurements.transform.location.y, measurements.player_measurements.transform.location.z]) @@ -206,7 +206,7 @@ class CarlaGame(object): control = self._get_keyboard_control(pygame.key.get_pressed()) # Set the player position if self._city_name is not None: - self._position = self._map.get_position_on_map([ + self._position = self._map.convert_to_pixel([ measurements.player_measurements.transform.location.x, measurements.player_measurements.transform.location.y, measurements.player_measurements.transform.location.z]) @@ -298,22 +298,25 @@ class CarlaGame(object): if self._map_view is not None: array = self._map_view array = array[:, :, :3] + new_window_width =(float(WINDOW_HEIGHT)/float(self._map_shape[0]))*float(self._map_shape[1]) surface = pygame.surfarray.make_surface(array.swapaxes(0, 1)) w_pos = int(self._position[0]*(float(WINDOW_HEIGHT)/float(self._map_shape[0]))) - h_pos =int(self._position[1] *(new_window_width/float(self._map_shape[1]))) + h_pos = int(self._position[1] *(new_window_width/float(self._map_shape[1]))) pygame.draw.circle(surface, [255, 0, 0, 255], (w_pos,h_pos), 6, 0) for agent in self._agent_positions: if agent.HasField('vehicle'): - agent_position = self._map.get_position_on_map([ + agent_position = self._map.convert_to_pixel([ agent.vehicle.transform.location.x, agent.vehicle.transform.location.y, agent.vehicle.transform.location.z]) + w_pos = int(agent_position[0]*(float(WINDOW_HEIGHT)/float(self._map_shape[0]))) - h_pos =int(agent_position[1] *(new_window_width/float(self._map_shape[1]))) - pygame.draw.circle(surface, [255, 0, 255, 255], (w_pos,h_pos), 4, 0) + h_pos = int(agent_position[1] *(new_window_width/float(self._map_shape[1]))) + + pygame.draw.circle(surface, [255, 0, 255, 255], (w_pos ,h_pos), 4, 0) self._display.blit(surface, (WINDOW_WIDTH, 0)) From 7c073f029751281ce9f29701fc2676a1e4b720ff Mon Sep 17 00:00:00 2001 From: FPerez Date: Tue, 23 Jan 2018 17:45:39 +0100 Subject: [PATCH 099/121] Added Image for documentation --- Docs/img/Road_Instructions_Example.png | Bin 0 -> 1544698 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Docs/img/Road_Instructions_Example.png diff --git a/Docs/img/Road_Instructions_Example.png b/Docs/img/Road_Instructions_Example.png new file mode 100644 index 0000000000000000000000000000000000000000..55fdf891fd8f89d0f10155d993a4ecbc656eb7aa GIT binary patch literal 1544698 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 z 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 g};Vagc*Y`#7sqi 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 SiJ>n?i6Q>nVlpY3L!+UI|+9hPB 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

YHSC)aq$j$l4 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

B1j=_f2_$0pP}sYya2({Z|)56Eqol7I68w48K_| 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 z zERu3M+|^Zyma0ZSe0TKVJ<^WVa;aEc>vA@T9z?d!x0udQE5;9EeDdqDCYhtI&Ml|} zNp}^LloUhi!ZO!xLeGCY-kdcI-ix`jF>NOPomvPKqOLLIIYPwE_3Ed;-(Ov-FDWpn z>Q_|x#G|s=z~|&%v}zL7D`Ao!|M!E|yHf!vc?OV6aezd{(9{;)=5AFRtqsWV{M{*n z2ysA9H6A<7lg(5b0-&axs{ujJJmPF1>Tq(tMu6GY5VTm9m?Y=m35tedeb5L%qees> zy6)=Q9Rh)%b;)b41O$4Y)p9{dtqtK|nx%)YN4#lTUAMoX5|X0OB|1msz}?h1Yxz4wQE zsa;kr$we;JD7!6XdPq)Cf=__#OeMjeb0OH4A`0Oka)RXE9Nj;+Mv$~ud(?8b#0rN8 zM-mdG7f-X76ooKWs7t;HQ8xj##+n}#_ei{$R(R}Qa}(1T{DWz zbxEAX@Rt?uMTHwBW)C;xU9NTtjmFYnmV>B(l$r(13((_)qLmX?&Z7@?%UwE3#E2tO zqwcV1coL~N4~9N>5D;<*iRYb#r86U_4_tdGZRF+^Kk?i_5s=P(niL7=1VRY`OPipT zTJ66DX6W3zbj=3JFi;5J$`A5*4q2rGf?8jkW91u0j%q;wwug&;x$`sybwSsVLTnZg znV7kEqK0Je!qP1)(is?<+G?1)zlL(1*gYj>78P||*|nX>W)$Fg&Sn)OX1k+Jg_vTE zlqjrpFGT4UMV8$T#*y6kt2-JZwR1UJEk05|lsCis<`2|+sttp+Rf<3d29=vTcO{O9 zcU$X*3T$Qo(3-X51ejbO>&jkiCWa0ov$k@3m@;(-wJ3FO#bx0>&j{EWAd>V+D;gR# z6$gV$2Cokb$rT1%+B0T4V0q)#%nldQ6Et zF#y9bvP|YfB!VOq`2iAj9@f$iFH+fm_IjDM>`O&DGSe<(muTz(0^N(=1n)OBckWu% zX+Kg29&7imxeDTaY(x#3fT?|=rK=c)>mXviN!Ge8jO;LV$jK_!d zQ%mW|VK$1cCy-P?W<`0%@I$id3L`OHR3=yIJlAg}3&9=IFUPsk35wPGybL@*2e+q>FXn#XISxPF(ZrAVxXjPfe7&3*zdmC{^??P`pbQSwh>&vJMOb0 z+>&SLryC|}2}qXo12XXKAz#0|`_K0$C+`o4h-SF==}?~{-4=$~n+LF#0fUFfM3|_} z(68=K)A9B{emgz-I0#DXa&S59H6COwqn_j?v>^p;A|UQ)K7Y17Bzf`Q4{%}tY#oPf zQyzgmXoD$c-IajKfeM2UH$d2J;PT1c^XvBb_Y)1SwGP374!vj5zvf7B60$iUp$J?b zO`l#|{ptPD>AMYqcSrON%7rB)9gJIj520W^iy|Tmg1|h$`Sb1Nz1tsO-8;NmE5eTu zK`1C!nqjY5(jY`c5JLcYz_V|zWHW#Nug61I@g5|5mr0zqq^T1k9gtcZrkc0)5wKgq z`|rOzx;}XD_7K@)RuKd+h#-3M!Y+h?S{ugRXGT?dqzmtk)MCWv1P}XgSQV2#cW2e50Zk1Nn`wOd z{sA#+-M8Dq!7-LY_FdZ!y!7wn<|PL>f8a4IzIe-bo_bUIHxN`HlhF-I^{th$Xdki92rCqZXKV$Jv}%d znsQshAu~?$Ar)Oqv~7hYqsNi+(qVY+!Su88#P^-#A-M!| zBt5Vavr$<-!hIj6W0gj;WyxZm6Mrnu6-H|YWhSF&Y|x*f8jUBBf{<#0*=w{8(z2Qc61Ofp|-Rjng*#a|&Vx8@hqCATN3dSH@hU?Atm;T#Z z(-?~?56r!_HtRvc59dQ05K(#u0iuRPg3Qc{dU9huDkr|r`gbvz2juZH(1?d3m6j*} zQgcm>hBizF+BMqpxx<2je#{&i!P}smPKWop$#Cg-fX7bBqFm+x{uVw zYe01_F2PI~Wo|UI!4f&DHw}%bHEP2!%=4^nDQX0S(7Pa+xZyH{;~b+=UB-6s0rwZan;BKk&^dvTb5dCMl{?*tEG}9()wOqWpi(0WCcGXP z^j(w~NZBq+;tsrEp6nQ@;|G6~2dBSi?rg+UZPYQ78k%<%unHU{_Fg!qP%GatQqgvr z4Y4)*s#&ibiKUg$0W@~{jiz}*>?~m5MYODg*99a75W^=G-;S6+7So~6!X|IAj|qH- zPpCb@{=EX!oKC2F(aU6rOjAF57lAhTQb^ocn;Uz_Dzd1TFz(jS1XDNZY_a1MJ4H|k zQMzq@EGG^qqPAs5by;bhE>scCHsKJ=8X^&z=Q-HR{&T=h=oCFs+?2($OSmfl1AVT3Uz2W+XrRPdaOt-|JM3goM&IEx5m2A{xn zc#&M`lLrCh&e*UXixCI6l$U9KS-QoSh3>~s{Z73LJ|bh%8l?41&^h1c$>I(annq`b zw&_g)NrV)@VbJzNKPjshwTG<1UAM>fy^uN>xX;t1ao6mi44)<%)yv^AT`y1WvxdAE zMU%|)JQnE{N(5O{;Fiuvr9#(Diu26#Z1(QXnjvY8bWO07dIx4<7HW;CF$JxcwBpC;~%mD(0qgMJ&qfaziZ4 zNUgLlvDh;X^O5Ak2vfX$InVvAxhl9s^NSYd2|sm|5076T<{QggfIs!vb3KS6Jd<3W zPWLwRv$sd9ixG*28IHe<=&1~yHN|w)=V9V1sBLywWE$n}+1;ZKPhXuvXFzH@877Jn z$m(bFQq0W8S4`5~8n^dve>xve-XAL6VNl|ZS{Ai%ODIboA%T(9n&G_|JK*&(-=5z5 z*B^%`A2;^&>HyXsBst|;LjDzfq0Qy$ZJ$?g{%kuR-~IgC>E?Q^p0z;}H!K=XqtH_U znOQe~kw(;2gF$vH`tDqo)7Jb!z5biT%*J$Xzc9(owj3I_7| zzaG3bP&5zp<=IZw(>MRP-*$_e1sK4f9*Ktw$2c17Blt2n4{-71=43mZzTPwz|1=yS zSGO`hl6_`4p58i#8KAX<7P50wdi>(yI_iw5((Zr-<*6I4lc$D z$hW#f=J3d5V!#!D-!3>QYCsy{<=^kOZls}L8zl0@C$7OIM*)Qp%{hFB#`xg;;N<;= z3Oi61IaDB^bhbwQmK~++%akswEj@XAe0;VJh$1@PxTcnDqsE|hv)UZYwwWW9>mGbM zJpH&HOaL*h!SfO9iU}65AVy+0G#aZO>+tNuLlW%VrE~100UT+nAv+g?xC4?=8ib{h z?eG8qcJuN3H4w`}gA1RbiMeh`Xr2`^H`dUQg}HZNSY1QAU5(=^7;S?zo7anovOcHI z!q)XBFi(>nL@i5!*szVzp8j#Kr7-PRfzH%5-D6jdb>$FJ=dOBv0~0w3aKP2QPYp94 zkD*_fbqipgc6Ov~HmL@HMgwTl%GL{L3`b{UR7AmIDCO_bGAuZZE9*VBF@_M4AtwO@ zWSA|}LqdSk)7Nd#3eAt0o?_ej0EJp8$8Jnz&^WLaxK;qi^F?z^`nYOd>5JJ&#Uh9; zpyb~1iiqw$^t6yQj2x^kbQ-JW~yw%n((nU>KV ztP$M`rKx;97QzMV<~H$NCwn3E*w`5i8JnRw<%<&8yjOY2h(HwgZ@e`!Q5*|K3Osym z@dWN1YexZt`tw_|rg-_rMLn&(&t}nzsBIJ)v1sVBHSG^VAIU%l$!zXg?fO7YxsI2h zmya@xnK_4vnja96&K-N_4h+`RF5axDeq%#81ajYI+)6)j#Yo{Mca0RarU@w=hQa6e zVMrA(JcO9O1`G=XxX;sW*BYtFrSHap(8A2qG->;7GpHGhNbh~t*r13xe3^wi0Cw$- za=#uC;V?||B+&8YmW?wh<<0g-JP~#86k+J_gObB z%vPW#8W|C=_?SLv{1ax4JgLr*(^66q-MHrLwx-S+U1=?+cj?otY8MnhnA1+noDUVF zGbfSPY%m5N%$qunmv($5UD!f{D<&kV#doIP@qRU4X@Up$^&nuq4<&$V+cp+iO7^S-LCtw!iWt($ zH8!$@S9R%*NL`BR-({|mbdCX|x2B?3m_wOf_~}6yxIpWiX^6#mMUk4cY?p+Gq(C#n zCLbjaFwgl6jZj&ppv3*gB}=XvUhj$10m(Lc*L{!_ek=21$DjA}VpkOn!RJGG|Rj7SP)l63%+& zt~UQ5S2~p0K3>&5b424?6=IBjJpTwdIg^NGIIGMF?j0n=-^H4u{xzygj3G0@dklR` zpKjQa$umJe`&8BZfpKG!2}FWL~@ zLnzB1!zK)pJ-LVg(Ejw7|DnZavWGcI+%KpHb!O`c0DA0Oa@96MsP0(~ehs6Vr zxG+;>1*L^gTBuGWaIjq+pKscfy^FzRES-uT?(sdk>nRvk{04Y0(xsBTay$-{xo}d(M zVAk&XG~TzKaU3L?(=iK#Vn^gYAX{q4@YfN(qh= z2V+OutaMDp9X81b1Uqc**5!Wjx1jCxK;A=aTacj*!?>c>Ldzz^HjK9Z^sr2}!k(}d zP~$c+QdqCn>(wR`afn217>3pcqBhcKIu!biZ~nlvsMya$iO>p^KF`@|h5aHUdDOySFlX zX+UdQ=o5}dvjea?4ULu>EwZh(aac8vM#i(Sb9aMb#8=6deXDT_hn8qz@Hmb`8*Nq( zhzR4j!raq&Aqztbc$>M{sNmO;s10ohy#oMRYkHVBw2jpZy2mixg66>Tmxo!4=^j8r z(koMSp)7Cm?~yrp(iF=Sd2?0lx{?kae0TjToU5F(K#kMjG7XlfaIGxB zYG-Tg(-?wJ@AX}aZCT6=&cP>6qf={H=~evdi=Hwhq888=sbDhSBWILP#|A9iJLEtU z5TMUpQ$;aK5p!E;L?_z|$mz&jk*kUk^p(?CTJEf7Ghd@`Re?EUlKOuZfA$5_`a#7x z`F`!$kPNeDT9{Q|@H-mQAp%C~v3-}Ctzt+EphdLdawOl$&Xb~iMb|(ll%k}{2Z+es zjvr8_^ZHMkFX`NSNx^y_F@P4;d)q9ga{-B3GcyZPYXo(Eu7lZOFu@w2_Z}xojstCk zx%5nE9btvk>tk~P7>2>8vt0GuGEuhgSaH>HL)qRV@KvSODN=C-D`D>xt+uS!vjoTc zi9YoOlL9Mz)+}0!bcRShnWV}kbz*PUl32{WxG)Y16$T#MgUH&%*-D(R8=$W2p9+BL zvW~fyrIvCKTzEqv7pFMIrGD)Iviia-P9e24xKt9`6gfe_M1H*`_%C(KJQ4XhF!^`> zhx}d!Pqs+~uVQ5E0)2*x?^p;iT$n&EQ;QXe7GK*EZepuwIj_pHBqplDQh@VXc4z7O zFN^j9Z}_k@6T6s%nMJZhQYKM++Q6c^eY#sAM<1A)S)Px@{X|grnfBHbdjQpkQUE3? z10W>_R{UTRs)}vMLwPR`y_jibQ)HnX#RX_Oh!jtH{w{yFHe#?rgB|j{M95~1k%sYT zyW9G#fYO!}KbJYB*A&(Qva_6WSbhw-I1GNgK_XmC_OP;(AxNeG(EDt|b(d!C1f_ei zmKMMI8Aa;Isp*-fi(Ao7ux%JtWTdwC4dXBj`Uf1n<2hJ6mFk;l)h~e+ z->pD2SLfr34_+9xMwEILET*!Nt58fI+8W}5nnb%w-boZ`;%q|H_AiRd3u+ff9$HIg zoXp3%oP`uFs@Y<)!7s<3Wo!HOGt}lH3q5-OcSNi{)sUR4R0k9sIV)p3-5h`6MLNq(%pp;sbZCS^U^pDCABePHIOA}dXIrNN-%8h z= zFIOX5XdhS->z_fBco`Hnjrf#GO`D9@qsAUowIMX0yu}2qSj6&B8v9pNgnHxM#(*@- z>Tc9G46(@uid#6o0Gs?+*OCcm(d$HjGy`_yfBPO9v-%2M1v4!V;;SKCJlF`Zv5~(~ z@>mjrm!ER6?CHn>q7=W{0K=x$+5&>vJ{o!}h4U!St5Dy9Y3F3=MV}}59@^@DgSEgTzKoNAR!83QX0MN9ZZy1He zj%_KTxkbW`G0H$O`-baQ7#&07IF93rRM7_nfYoZ%Xz+PvY`{W-@yCE8OZ42{+OQf| z!#GBhh{bc-Fb*q1>b>`QRy8DWr11smqfuoSO@(MMN*|Vy9unsG@O9*lacyG?0s8J5 z;y8}+ngLJ=@pGT!SDVUXd{$N@r>M)?wx+B)sh>-i_-g-B6eti$c)vkxT#zrtiGG_S>NOuD6HDuJJ&d8m%m+2lq$`GHgSb@Mi}M=&i;HVa;-u|jfmwu{ zrq}yy!lH{f;r=kJ7?JNKAe#h3ET3fF^_z;E)x&0~eY zQqyyYA@ez>rsy@{-nWFT3(dY1XYEcx=oIWLtBq$|MrJqS_ z%`^ys)|!+z;wV`Pzn+eb_0eyejZ%20arM~7plev<&mi=@xu(bLWxJrFc@r~}D{rnG z@lz`VEBz|n)++UKQZRfws2_FjUF9Wx^SyVkB9X-at}JvhwoQkwVPvFtV}K&UG|l2Q z@_|zc|CfuB`D6ji<1w=+jx)G1`fwz_Qi>$Ru0H3^838mFz`n)Lt6bvmvUlDmk363g z3wuP+Y(oWt(!zu>O|rM(hl0JbRu|n0AqW<|>U-6$Y*|cMXx6E?Rqt8>KKO!W4-J8Z zGEk}1wUSHnAXI-BVs=eM(}kana1o-ZXKu`}f8Lm}NrT!Ai;Aj@eQ&T`$|Adf$*QhV z2a5iP=X!?*Y^K)#)O=1c&WLVv;;OLCE>ajXV_PVZ`6^TCa#|CtO=tCyzSO+J8pYP} zC0`49RkicZI0@a~f1``?CL7D5G_&UF1AbQic}X3nCL5}2o+ZOK6sRN)AD@+b>SzIS zi=H1)=~>HFBNm(}WQc(I;_&Ts%rviI2xCcC$56BjzY|=|aS=0JR!J%-d%`4@q^-@a zOY(oY<+B8zWVL`8-7bD8gM~2dTQXDb zD0YkxU(c-kG)8&3Fd?;5`EB)6QA+zr^4jMI2U4en|RLI*}#W>9IfG1#b z3k})jUGXtBFev6ItA=FXQBY;Y7ZOD=C_~*NMxvU_2b)@IP_35_I)NI!-1}EN`HO_05Xd&O&*`c>a9xW)?PXF#X6{zPJgFcLPfP1pDohEbyqSi(z2w z2wNLN>?EOa8ls>F%f17n-!7=1daVnnl|!o}LiKEj1f;5jt6l74iL(C={|LG-0};V5 zdTq%;YC`)DW?8a}Aw(_GaOs5BluvjA*?u9vJ^iD@5F?5iBpQx*T=0%9mrKV!SXN3OS$Ppvq1cNCYk zNZ2qfWMgA+uH|urHe+{%B7i#%Xf0a`uOZf^VcFg7gc&V#L#DfRjkmDUyINBtciI68 zm9G(b<#UO#r&-4NH4br%rw?l$Q+ja-`{P{I9Bo^-2S#U2lXZJ-dID6aFB$8axo~Pg zcrmmI@0()Dd~K|GoP}54>XwTZpijZrMQM1~`4J`mVZI3}qbc1<>sDB@!Y>uKsI~)K zau40}Yv=r&NcSFo3UaqsNI!1lGCxl4)-f|^6n>aEe_D{mJTJcXLS0pS5e|c}S8Wu> zajv}*Y#mHwTX<@gbk5RE1fdh@JVzt6$bk$lsmCzw{?pqT)N+vXfRrLip3w(M;_@-XV^`Ji zs>4F+hzn1g(=H^-g?+y0%bf%jNC09~?;1;DFSGa;u#8W`OdZb-Jv%MTHwlPDs~gi% zXVCOQzkvL}fJM0Xd7kz#9N8V3s*tVoF&+qqf-R43AJM+-h|%f>SPuXZoYeI}jT_}$ z&AHb34Q2TSchWg`!aqa+J69CI2-=EmYi~p_b1l^_of4m7*R#q~TfCmqyDyk$#as(7 zTu2CM_b{3j6w#{8L~}uMb#ei;N*!P!G~}xkC~0DM(t*3cLcs~iuLvmWnT_0AwGC!T zItDc?vt~us@YD>)44^7a%d>_A%hhEdj}+#U`{A6Q$nDiy~VD zgXo9qu8%o%_*z~zDM!)bBX!6fMB9lsLDX;Dua_(vh~))}qLSxMN1#dWYs=^Dx^Y?Qa5+Vg zbN~TBKCkl;QLJY%;4gJ{NDG;4+27$KA*|h+ZtSJf$h}}z@42@UYEOrA&?gG#6$}ttbo~XowX1QFRCa zmUx{K-)wxHFeWG&LkQ6)pNq67{mVc!h>QQot5PuFmAr%Fp2wF$o zG7E`lH3)lyg>>;`W3;J4vCl(lr~w_)VKRUaG+d1SB%Qp=fl~7uhTIeqVpGsPu>x|I zEuqx}SJ$&T=l2m<919~2C-wfp5F&|WaU{d~pz^`Z(iT_tW_1?iKHjo-l;xSQzz76t zTSQKF^7&L+Zwq-PjJx@$@cl@X3x~0{$Uu~DkZs`>XPFn|DCF9g*1Y<1VX2drM{1-6 zgPxw9CQ>YlPRhu4ErDjxQ-l|lE|a8^(W;mp2JAECey@sJ%qYvqVsX{_EKU)F}{%GMKGmj5Ku{ z$nxrH749tRZv zE5$Zkq9PcOe#>sFx5Y~#08DErP6XAVVl>1HSF*2Io@0{ev9g>dz}^!}?bgC(xz`KX zX1@UYi$htZD&{;K!7c}IvMt?H=Izv6HsTRHaU-;E+VXm1_Srt?pD7;9`o~~#Hqe`* zFAJE1lvjn1GGdNnr)xHbYc1!P$a^~JW3kPk(A)hsNjEZ4&iZmb4fUv|k)_<)_>r>i zvFau`LEY&HsI_SMfs~r+w3J7PpdOXOXcNpqm0Du&Res>Y`@4u}`5qv9lmJA)uV)PH zV{e}pl38)~l+J2zcZ%t5T+!Vnm@)*--A5%~ltW++UE|NQyN#sQY^e)4nty!ZjvLQ^ zb3u4`7l;4+T>9+L;=~3nGE;~!Xe&dWjJ)*~0@oF@TUVOAtA@EeRN2oY9uQ`!D}b0g z3_{L}t({2KH5UIQ)w=S)X=CW`t3ql0tD0G0(Bi#A zLS_o@nJOP+siKxuX^%G)0jq^|AVdmlibPN6q<=w*!^#=PSW8oCbGKxF5%|EB>H#!0 zK(`-*>>sKk5^G+3iDOGnGeqi2j1?TRcc(jfT{6N}x3KJo0kB~V7u~RGPDEKc?D7Ie zznR-@qSYZ!dgbB?1BDb_SjsYpF|&!{k!2Po3oav{wcwm&9+DSYUR=oqttfT}Im%6g z3q=kHdu*8A79Y;?5Enbrxa{-qs!CN$-m#43DBhzuxCY!>h80B}_3jWgodWxh`@-9z zsTME29mC$rnzCHlma7b zT#R56eFh8vU3hHtkup%1EGsl=KXgWvM+TBT0eP$pVi8)3hA;JNiM2HGc_o2DuNL=s-f%phD3!IUxh@I5wq`1N z&;ot-=(cu6NjIP;G$n$v5->8qfD^l9Z*zAq4hR)EIpm1Q9E<0Nogc)hk=0{Kbuwj(~U|x~5&i3pvD$pND1s znVt?T;R>li+6q0;OPX_gUG5p#pOM-Rql{rLSUfcdTb(9V>kW@&E`d_Ee+ZC#qMXPT z$3RI@`9liJM^+uBwj^0a4#&eK+Err01J2s7Jx?i;5yiGQo{VJ-n;S#LI_ROrT~y-r z!IG)#GPhrJ33)A}FTP=q%F(xKXS&uaFj^nl;(A$eWn^eUWc2Ga?Ni)A9CmAP zSwvE!>2uG7j%_ZXpmy?FDpreLAhlApglv6^_*aQyku!YaDq`j$Vbm;1Ht9rp*8Y?S zQJ59_P)sgd037;&jZfRKqLsS0cnjHQ!f_Fklm3?`Au$OIVcAx(zYy(hwhC-TYPPA$ zJxj9#c(=3^IRKXXY^eiSeHmQfO1YzU_^9t$G3_f0%R;fl+q2jpZ~>QrB1kMP;8@Se z3v7jB7X5h-UjuP;8WsC`-C$MDmn_a0u;+d7`2k>Yg@`Q7FJ5RRSkobpklZ|PBnnrm z0#TkVfO{3g$cc1zV?23Mv8i^(ktk$sA?NU`bFrTjstA#Ff)A^F~(MG}HuXD3zEs;vRa zlhq|CTMVm}s6H>^#y3+EnmKdFYk(Xf#hJbDyt2~356~b?-hKt%MkNZO9bXG*-!jNUoxbl?9aG#I3 zvG5cq^MeT)sck;`jmKd|+=^A9r!`dr)5>=`PG`)F*C7gop-jY3e&7BERR0{I-+$o%&05)cpn{d|EG1H2j*+qW1=2eo1x6To^GWAOP6=Z0$3#k`Q{YHb;rca-L)Vo#(kcuu$bWrJfu3BMwWR zBlCGLyPKn^fXOb$Jv1^V#udwJk?PJ!38oy&Rfe;9PIz32WZ~vh@))ZKQ6S20+$%$1 zNYBNdjoGiOs)#MmpV`|Yu;;cYXG<{G2|{%fR3HrEzFJhvUa0tL0T#u)fh=7f`}0|z zsqM6lCTe<**IAS)0e3=W^p&c=QfeRQA}doe4(Q;yxP8(t4vXH48s~{9T)ZjQNnuHT zSWN1wt(6G5bkPOGwKEr&4olKZMoZD{V)U|}pOtos|Nmc!^x8X5e^>xJDz zKW!JhIBqB@5^6clc}HjXeWH-pO(wx$#vH6l5IPi$ptxwg1@z1lr2i5nz&*0~o+E6T z7K9-7I`7CI1kuRFQj>J5&_y+bl$)zO(*-LfI+K%-dqoH@Se^Pnoj|)6zRY#Zb3}1R zEJ0l^ns{cXD8lxgG3WBQ&;OEo(#PeZfz^<>7#VVzW`wcut4~{x&;ABo#rLBYRb?7s zZ(o|L^I}EvBaUm7ISvcS$yY4zTP(->J=MEns7s$zPCu5`OXua`a=Mzwv!s1_U6&&( z_SNu3oG1fr{y*V)S^lv)>7pR0xVfqHbX6MIOHH#mz@3VpOOm!6=Z~23R@GSQmqU~SbD46gQ1S* z>UaPFSOoTAfo}}kpY6Vc#b*j+!-ksiN{DEhH**W^rs*_74#O}Eh}N3t3@j`enheV4 zJ!7|kq+H`_lzD{ED7R+e$A-Y@wSC-euO5F=og6Hzjnyuuu%i{J4y!WiD~a1*npxQA z1c->kFtlN4tsz91K%Y?7yDf#Ruju`_p+MOAKZKxVM_$|F4BR}RN#N;`V3w=2;~J+idUl_lAK%T<1=QB}-7Wyo1ko{aXI2(Th=oL9xA`UbI>Wuj6_ zmPx$`-d4rXgf`dTxik|+1kY3Md$V~T+lpA(Q}P^~kLGWboq$suKp4qxNVP`tFM2K) zVKLihVF++|!PhOEM`=G!aV*b@mVj7DD!5>U))KK2h1_>8#Jk`Gsg_n&mnx*9CZKc& z`zSz`!?waBEAZMv09_Q~z+zOlf0_!c@3OF5_LUBhy>}O;;_}7I-T?LM`fKjzG25LU4r&8!^_5#Fie@}0)cdY zp&`nMs>z}iJ)TVN=+@@ru&3pwQvbpbv&ZyTM}nz#mP3u#m8~KnAT?^kXv3=_^eke> z!STg{mJd*oU*R_8vm^1|Cz-{=+8>m_!({_4mclqs%rPW{xNdPn!D(0!oU#BrX5FFZ zww8Ti@b8G2i*g*Nkl^B8UOYDIJyOiUdGQ!V)aLmi{ZxNh@xNeBF-4Hj6D3dr#WDXQ zT)GiGGi69IiqM~=G`a7IC?Zs$b>zOkVtN)8@;ObXK-+lYHIr+)0@Zh&0wOJB9RX-| zJj<-j@-;8678T1titRUVf1qLo4Us4&&~@Fw05F$_ng8}G0%F+^m!hMzF)!H0+SSE+ zvlM@{pV~MI+59(#KM1Hu33h)`*y?ThT*d?S(Z!b3D@F@yRC#$6rFxn{mT3DnT{zH+ zktPZ$KZUdSeqHuxLyI9dE;3&jj*A4C6l+^Go8+;rXbLXA+XG#StB49tMPuyCJ4=?s z8?5bqma(;!Egu9}Q$nd{l}CFJ%^cTdW#ohvDP8IU3WGuRQ7Wm&`6*~Ah%8niSPo?B zu`Mq0yigHg-?_FJ3#vyWr1DrON?r<xovNRiP4hEh~-%qLoWRxTTE>@aq zqpo|6JzuJkF=A=zeeUy|7AI4JYN?~$)|5sX$X3I0%vWcYD3p;|5wTvh;?7X+G2e}P zoG3%^I9)ICWb63z9vFzzPS)~-Teh&X^`*BqD4SR(&`DYh8yZW!4*d2k9SONT&hqwQ z99wH3%)KWGx%9KC!8wAf@f`D-OG-8vc~rl%)n8UFkyRCGsZ>C>fTjEN#RFuGsEAfr zf-ywYhQaXD+6P@G);8*9rSHy*6HqCW&fIqCG|1gTN-Of&eLJ1_SL2`{#BMY;ob&@Dp< zEJZF_yw1`QQ2rBCB4MP6F;?(WBU0TK742(_bSdou$aZJ>N|o@v4uW3luJ?&!4xv2Z z{$03FxDHOEYpDKu3mx4vgpL7F_{LvS<8A}50TsiJU@71c3h zO24Ob3tYnXlGr$ka|D)z!h#3Cc>2Ou{Vy4NUUunbrWh8A7J{E16GB{l_zOsAGN|jm ztva6EjwCfPR#m6+_5spOgG-ObB7C?|yW^y;VFW3IWCZQMcoY}K%2!dsnCrp0}v#JI2 zVJWIFR&U%J1B6hr;5QdZYZ-jY6Tcli7_u$5(H^@6`1Dit6# zDgoYl+{H!4TuQfE*51aV7gQHarb)tm^33lC23m{~G4zWR^Ic4bh%f~&3HR9%2^Orn zmAkQ)v6wPD*%OfizZI3rQGO8y#!S3QeY7Q(D*~AM_!x(kH&;}VH{TXBWCQ{KKg7u-eC|})A zqc7B|vLKS-gm^iSUd#!Tb>K&X*wa#hm7yypHLScm+y&vG)MYLfqOYc}UvbJJyQdeE zLP*(-x-mpiDni-hN;-)0_T*?}3R%jS4^FI$*F}v0(FS{ayErd=#xj;$Mzx!T&X!03 zQWieDPx&qc$ zB2Y{ywX7_L0r8CR9Z@&T78(+p!Z%t+-WFPI<|4F5BrIb(ED$zTE~CW7>9KMxwWeT^ z{?U)gll!ilC?P9j_}*d}!^nme#=7jVB*NZjw&rcyxdq-QhX)RT_5~QR+8m@FaKtBZ zoQXe7&5y>DK+J)sGT5VJJ*cl+vFpR^{yq}lBlP+ZdQLz|aloxx9HVos~ zyvjaozj3)*>z6vn%)-`8u99@OXqTuC032Bmg-&Tj&qdj!J}%d;sX)yVe9O>-NZG?@ zqa&2aju8i|`y-k84T&)8EC{nwq)hQ$KMn?5h)uAN!Xu4KizQK(T+6+d-Yi+FkObM^ z0Qge_76=!wk@L$YXUuy_SI%kD^HFp?kv)hQVhCQcAV6h(1ISm=1CK z4!ANL0fXWB?x);)n58XY2`gThM0olvw4~Yh{9it-)|RDAJ?J5c>P}JrIuRu^a)Fcd zu5rxZ^1mxUUEmNT=17ZaVTncJ;Ffc8JXr+Soba^@4u&312Vl{+4sJZM_fdzJ@ zB4?O+U)tVVZI++>9+POX))z=+g5+WGe`wEg-1GaS#il0w0pS1NIwpByS+4Nan}D*U zyjPyrQa3ES-Tey;mp;dZt7}iasvndo+$B|qNRi;HnYgrFXL#KT)Ei|n9F>DkosjJX z9{pRB&~Z$@anru)q<(c*YPij`!%teX#-Z02#V}J#MPq^bi4pDbTO|lD)SAw6xpU2F zsqQR`lI`>t8^O0Yn%gjr!ytOB;l6b52J+dZJ^y|bYf?h6_R%TEi;|VzwH`4(w)s%<==3)_}&rDGk)gG=*WDhA6yuqoVrDnv(`ameKn% zgp(MVY1&<+x~`<|h~jYP7T(E5oTX@$y#q&oKZ~$=9*)Q%9nZuGhmBEe|Wl0T(AzmMv2VYb_;~P zK2MUAvjB4ml&MJ={L7mwBWD|-a$2{f5|XkG@ERt}LT1iF9TENxRr3z?X z<`kBeXUeBJS;SA@Ox-vpwkzqcWa6)Mue6dXZtmYWrDhEF_rV1Vtu3=@ zBwP*|ipo^6Jf+W6ie)594?N_C#RO9h^--k~3FjDSRmn;UK11@9P2e?AuvapId)wej zI5E~lvZA)bv(Fc}xFOr7CaEET#Vi_llf?Dq2Vr81WP1+kO#QDu`Z!Z$6=3LA@9L4!Pq=7nvO>P#} z%W9D%fkIml=eU;(y{^ds%hLM2(>OxyHbh@R_U%E5hg=38jFNzP{q7;C3L{|89UzsM zo>uL}%pbpcitBTn3LX_p&urx$1Pz`R{z|A__q-R&!rV?_ZiQoiP+Sl3tX-xeijW4C ztdYkla*;XRuol8E&W#8>E^F7zrm%(MFVp+7@HeL~qdewYqrH4qq=#zKAkgo{Eu0@( zVryW*V@Q{{ML4-u35f_{l&mQ+A$a8C@j9XmX1W7B_#?iSa@;JLHUl%tL9OI87+*XK znET!++#veQUxi-dbEZAkcz{IxPOLUjH#D?QrvU62&$hhBd&nU zM{{Dx(*wIqd1zgFnP9g@F^gh?%A=YLoL7hHV5$a5p7k0hf_Et^B)YOj!@c&RxF zZ7mAgiU}*jt>K0I8hNgtMr&jP^YW^&Ui6lp(M`DJjEXB$1t9QbbWi^j;n0SXfra85 zs&J}+)@#hrmXm3kLN!6uC`Z|&YyYp?J|xRGO>UEzRQY?+x2X}GB30OFRs}De2gGHz zfa{n1r28a>0^70+*brUCg-1v=?rkRw^?Ak2giV)>_YWn7~e<*Igufw{1I+@6|*%iW=9 zBHkW46f@2^6R7KFukRpEy{c#mckbzW5=3y9pVfGet6^w9royBp_MXFbigdPZV-%gC zi99H{Fzax0@v9Ak^G(DTD-NF^bJzdDxls;_lN|l3i?+7V4CA^rf;^0;IjA5$jOu_3 zt9l)gOWkyt7%U8>1XB@W<(2|*v51I7x+Er`MtsbLqt6*cq+xI-+F~LQ7&oFJ!lyM~ zSL>McV+x}awP6^B))0LH-P$m&HmmgtLHayNt#Yq5t9~$UZD?(11C^d!mtk8|&Kmbw z*KD#*#zM$#n7fGVE(n#0)4k#CqSTt|>mE(;zVLA&^x_`&L)^AmBP`&XJ#=@Ze)4Sr z=tjcjg#o!kl|`k~V!w?5gf~xbk;m3?Aw453hKK3MlLZ0{iot~N=GnFIdYB<#ItbW) z{Q1ACLn^+SIAt#T_$0OJnp8~8YTXa(=5lWWpWx?$$*h1UsUK9`>G?NpI)aq8*doBy z$RXgeF2*NuQ2NE=6XV)Qu(U9T6B?Jve)Pkkft*wh;IKaw9{E?t!WOc7JQ38wnjEtF zVB0G-S!|~)+a=2>ROtz>qhX+=o_QuBmwfy>R}vftFPI1Us%SV4TOgGl8Ocg-)eJ~& z)N4Zh<1vDEw?g_*P!g&I2ur6?#K(%9R6ZjU!6Ow_ObxKtV7SN3On7TCb9nPniaHVH zdiy+X!VZL3h7)g5Uep|71LiOfI(k@A!)xQ@iwl`&=wnS$)2ivnUAjg^G8Sz@v0 z$xR4(?{CbAf&>7?)~EA!%0kj&sT0o>)Uu*b!vpj{h~qf6Hb_Z5{2RVmITe@vX!%@n zE3Xr*!4D5gpj>!~>bL_Jx`y3hgHcX#uhcKO{yGW}F72c(~dqAP)Srrb{eI z?@p3xPFYZmMHNHs)(CV<0;Eiv_J?P5%(1dgmSA`<)y?52ma^?VD@Vn(>~+B`^qu8N zskA5%=Z>3JbAMsBONa}?_^)?>-C@wOZSD^9Jret1t%>%9jJ zK=E|Tm4B~=02jfoq8e1}x(XB-FtNh}cI|B_%!Qn0_@mGLR>7JfByhdy>(=dbHZ8nS zh=5i>s9%tX^v>Sdlq+!2*D%7`dwSnq1z{T+H46<ABhVMI(y=UU0gLnzCz`e9= zkx%j`!$Msu?()4m8Z&>CDq(6ikaA>lOH)!@a{3mhl7wTbHQ2y;OZ-HY(Yf?LNMZLF zNw%IULp#u?MzOXg8G6x?=d6ZUV?#fxhMlEA19h`h2j-H6f$;BZ8xf=wtQSOm%yJVd zqq%RSh@Iv+N{Z8Suk|vm00^Bs;^M>fmis_Mh{w3YpXN~T+GAUcR03R+<6N4u>%nGd zgPy+^Ry1pI?R(cG>%=r|7K^iti~dx=1y1sECaAAqoI%k%-NdG=5`H0Eu5tP$F9Wd~ z&@5VcJZ5Vrqqu}|;oyS3!4s6iiZG;Cj~FBY#EOXu4BpU%fh^nu#%O5K8uyCg<&R)8 zTd0|{vLeI2yHKtZpQoeTf!y9@cGuQg8`kT!g;+gY8FUf58pH02IILE!5t0{Mg3YWG#2lmO4e4Ba;#gjG$>#IdVa zRTqnzEd5&yG969Sn*(GhPJflzW@X@gP8XohjI)cD;O_7adyAzqagfTw?!9L7sF9&~ zp>*8n({zN}`?ol+n%EFA{C%os_CD)DZyd))1i-z|rNE{reS_TGzlLcbmJ)OBS=6}S zq$DDydxl+6gO+D6&%PYbtGo3G%@K3idzK6qB7>3%P#dURZ2F}D$l15&XAkDpcGWu6 zagJZ)EQ=X~W=M0h=?kie$mNTx&yViL+ttWRQ%(YxQ$NJ)5QvyV*goLq(cSs|-Ecb& zJ+M+z(kh|;{aXkUW~UIr?aA)*qwRRN9(GEFYarZy{L_CzDVwP0=b&8KVpJ})I#_Z% zY9Z9nVh{Y)v7uUb;j8damAe)+g;YcR@-00sVY&%#g0l%0^X(Kz(zcvAV5kGtubtSo zriYUv5@(o>nx!=ovTDNW4hq33{N{CPPu)aRYl%(N&9Z9pe@=}@lcfCK>wH!UZ zzCq5q-HPM{#65T3LLtou73C&4qnS`8t>~4jVv2~A7^%4@tiw;(tI$lXiyrY3>4&|^ zqQ31mv|(I>V%?b`C9SrXU8?1G0cR=0bfr7l7)`f;%-s9Ty$6la3|}k&tcFme#b#YM zX$k|<6JXTPLGczzO%aBF&;LwZY5FdR+R%p9hP^$(GOr}@cA_VtJ|p$%o+r$BRplNG z6rg+GDE6?rwT;7%9@i@Yr$!R$#=9J9imW0WvWkAfg#y#+!L{fV3AC0H)b{g3YVmq! z^gh>p{vN6(6eTIOzJ7Px?kT0Wnt&2nB1fPeOUh9eDtvm`X^TOZs|hr=sF5;pptc7{ zxl z6g!U;Tt%ERJ=|w>@D`h@*w^}*5sP;-D^{b_GUn213L|Qk1+ETM(m8Dm!n6Fy16fjd z93JV{yZ9?WTe!@d+Xqx~aw8QKgX$tXPGziBn9W(mn1iz=^j+^w-Gcicwo2sSf(4pd zS7J}oU>rzWYr{C=(&W47Pxp>%wt^=U#Fqp}Z02h#8PaS`-4iYxH3hC!m1b)4s8^h# zW!dzn8&NEiOWtoN$K`*n05YuKe#wO;@;nxSa9WkvFYEyg=Y33GD8I#V z!nr&Pleph+i zex0Z=4TZx{q*4n=`RxLTCS4IOSvLA#UDYBKVO`G!Sc3LtG084f^ucgdXoQ1|Vh#WV z)Y>qP)J&i;JQ)H|ncRlmUT<3ExaqK7*UUyrYc-TR&*Cf|0TEIc5C`)MFhaF4j`r$6 z>&LRI+EUxit8$0taUfX63(WZo`E_XUAF3&a{oGE3vZ_1}k$CuO&z0XzY_kVe){Kh# z5$F>TY-(}GZ@6dluR}r#>=YiCCCSA%S8ZCiUfxJKNIKcvERd}= zQu@0x*Jy$N`Sip2YIoGS=i`(u<IPuWlY*U!2aH?Pg?j@lr|%5y^e)KEHH#p!CwkCadf9?r3{)Z(7}s zL(g1oc-#_)iXcI;szRQTtYo-Z%?Ed19`06m>#^_WDg?eZk(I3jLC5QvFPHh^^9l9D8+qryxvEBvA=MCqc>I0xji2 z0a;2pAf<52zM!c7R2PhT+r#@)B8On8W}P@y3jyXV&Tk4Y&|xXh=2i+8D&`ClAX3?L zx`VeQSGS)`nYq)sgzftgzpjw;m0F@}tk1pAv)JOJd^%cUGVM|0=PrvOWN%RrOq&OA z6!_KWrE)|_Bx?B>c>4_r3QRe*Pp#0XRN#}o2~Z(XgT3ejVbDiAv#*6xZCV@7Vb;1+9J`smj;4`qfnwJO5evq z2#7MiN|w&yoGvBy@h8?~Sx@GNVP5zc2pz_`m&IHpK8%67sL5R50laT{R`El zQVJDLf+-`}-QWjZDcd1xE!#N};zO&AE4C{LEL2?NCH+lB+OsP`X(L(nUDyDgmCL-d z6qcv~bRB@A%cGQ?ONRScGHwYA1OadgpWZ5W1O99K{&Y}Cea z@N9_eZSBOr1>p#}(9+v0^}h~7>+>wxq$f3*<(AdTHA|nY^Bl?Tdq$#Y)XbGYWfX+* z*5qqUM9D8F&|VqdKqjdK8BGe5vxqX`TU<7d>^UHG{VTl0G;>wfSV+H=3a`_oA*@%N zcOpVs12Kv3=r`;lXzl7ABod|e-iZjHt|U^h;Zkn8G_;BcH39+#hCr6M@wRdyAV)7= zLhThYp)VjI5YFovyKa4fK^A-bx_d7i>OXn&+AY5{^hM^8vnic6I)EJ6;csv22pU zNu3fTLa9$pxhhYxR}Z$Ip4=Q>Zw4+SE{s{1Ywp0QCIqZFVmqL{CzmmW-mS0Dj&5R$hq zz5uq>wv9As!qlZPKaUepQyzs)N?IFQBL<%Pq{jndA{pL4ItQfHcGMe%8kNYhaPMsX zDW|tbFGMbc0yB=&c>eHm8ezR12K39x&4o#-!q|O@+vW5&GpjBNjPvUJ;g{XO?HZ8v zz=F|_hsnto6PLwupr#ayr#%JMx9f{X7q=VUY}buL_2k}r?;Vkban%}$@`F8cYhtL^ zO;Bqfvc6j19o}4>POG~$%^beN;``8(GnL&S0cxC+W1S&^)%9?9e0Onjx4Io$Uv!P@ z)nNHl6xDXKf)Yg3GLEc)rqylR9p9bbyW89y3=D|KtuwI@O9N@bB+{6PnOK?#iIB(u zOe`c!%ni6PAPn0!olKt}-fgye==2?cr)C)A8>1c$$v-?qI$c%77JtnX*mlo$f$tPKwqYo5ZJHMQHarBS-1MKpt~cp?QF;&4_@33 zDff!xgny}^mfD1UY^=k!OHXJ7p>5>OAvpS1MA?N7F%T<^A!WqmVJSSn3vLvq=h+@1 z42+yK)dUa<6s*}oP-9-0@{+}=zhANsK!E*Btg$b0`;~q8><#YAJJbaiq%NE}U+Y*v zS&pb9FN1-dj26y9@T0~pDI$Hy#0{B^^lE+JBKuluT&2-}^W;ijb&g4q~=5T*}{9+ysK&$YqcYY02) zva!xGPy&m?j29xY2#KahFxf-snM_p`!S4zvKo38<_dV2lJ*casE|i1f=+`T;e>-I` zYrPsqNs|I(T;NOP$^tkbK5g^*B#C??DLVoxE6O+QC;_(7a z<(jg$q$_GbP;{TnB}@V3fNg(F_hppb;TU1`@Zn;VnAs*(RZzvME|toxI#nZ;ETLEI z>wwBYd9sD{hJ;~_#DW-V5FovUJLd}xTO#-1DlYnPu!`mZb;O~yX`aLZODrJsEUoRg z)_QP;5INQ?VQ>&9c)*a5S{u}D7@-nj7NWi4nUvTBfb5ZOWAA0#ir@7e;z1)&&3zmX z5NEUMqsBq4QO+fq%+atRut1BS82oYFtXq}4YEQy_p4s}lL(+1L6I`04>OUq#e4C3I0~t?W=<18!ajFeHR!_3C=06H5~~eG;En=Q zXpJJ5LDX<0WL3LRqbU14kqXDa1(YPL`Zl;-15PoN6&4_*AbH8YMkw)U>3Yd{wGIGW zz1VKvj>I5_7=3htEk`;x8tKzX05z>uTiZ~*D-QWCt@%(T1+GJOE&&{$~Z_K(q>+*m zA1q2&Tn#^ceJD?F-u!U(^7WJ9W@hdn*i^F%Kmj_4mYq0>i#>@xe~;g9I?3xleR%fA zgQLrV#N>5bv3nQrgkx*Ktgau4h^6Ft_UL>A4c>lx_T=58)ANBCIKDWSL8D$%FLV|r zA{a!}*YC>F(fQ^n$(yGaLO^G2=)U=nhE8JLW13>y5Cs|g)OY$cXY&s8!NuyCoV8^$99?aGee&gcIDYZ=WIf}}{p*Ro?%r8|P2B|D&B36H zA;Ic)^XC5LcI20D?yv6p`^1}pHW15G=l&z!k5jw zCE48Et>*RJ{hLqs?rtbZM;@~%**z2>@zGGJyg-&uhy7-h+s%AS!{9%q=@1tf9UxjkeM^wWJgmf$x+#3H00T=h&bYluN1yr zm|}E`?*n2%(Q`$Nd?_@ldNO5WBie&}|D#gX+7ui?p#^NrHyKI9ES(K3B8HX4v?P|% zbm}R^J0}2I>lm|-h%Tas^Es_r1-lTk6o@HV$w5n9EQ7mt&<82XiaXf|zH*~Tv5V{z zT6436vahL1MKUo<1p`$Aw{4D-Re=jzTq!s)evMve#tp%Gw$~3&YOH$sGNqhEeBkGs z)@A=dQHraZqxf@D@f0ksuADfD-C1Bo(NN0}(%xeuEEHo$NcErwS{|LBst8H%zzEzp z<%^=ySXLaDeV)Pj`sO*8{gTtx8WQ#1QQ}A}H3Y5iP4$ zbz4Jp{CoTcH8E+pYww#+&ZQJc`Xk6U#Qv~Pf`CeuAx8OTx0gVnyVk3*Ouz9`)}gUk^e1D~ z1txSi2_UxI$f8KaC!gvBSxla=%EuYDM}ag@+dHvAddaFtX^J$5f;5MGch%0&?A|&_ zrXGD{Y>!C2E*rISM63lBNqIf9@kO+fx%y8f(7uH?wlL`6i8 znYsCl83@E2WEQi!tM9t&{{KJGy>4f*$RK0J42RF|W=BQ(K}I!1=L3_B0NiajM~~{3 zy}y0EzdirU{j(pB8r!4Y^lP=12*%@&gam{@58gJ_h+Vz_Gr+I^`RVJwpW>#}CVDxa zi9Z=F4-Q(qs@#b#uG>%l+sCi}?}xN?80*l}?xKIvFe4M9pa=>8vpSDNI`k&(!K?i@FRxyG`{~8cr|q5*v9~!AUc$m;{nUsYdl+|t z={;u6)5ov(HeX-={{5$y|9-G{kAlL)0@BODAqrJQL?&S5Oc?_RFr)Owi@VlOHviXu z`~7c!f4;hgyW_ig@3Y#5Qs!i$9>h|_F)S7Ss6}9pQi)_ zE5wGmbuajK^*GrbL2$L?vzH(KcK_(`X1aZFeYavD#GPwXg&1mryrp@Iy_59#b^sWp zqr6}7yBFvG<7RPuyEuPwezj-Cz|GuMBF$WfY`aHW3mMD@%D@7!ZTxQ8=hgZD_iA-~ z(>}iVbhbBxgS$I$q>WjZ!BQHb*K)V5kIX3V_W0f7tK+M~1B7=k&OR->st~2g6mrkP znI{uVuOJDM;Ea6H@bcvD(Z|CT)9wEDdXc9QD(-J|0D@{&T{XB8ed;Kejr(Hz40!=? zx3{@kx}lOJ-c1qFOXqZGsk8nWO9k6s-d)pH;rNO%=Q+?|t20xvuhJ6Sru-q>)nVT{1pDkrAA&2Y4UTK>)}j50y$mAz|gPX!n5!pJhNw{Wy$S z20$Pn9}-2|WB$+JqKsNf4Bi>aoLKx3Ssf)+ND4a@IySq&#SsDRnCvGvJ6aq$M8Zl2jR@Ni4J}j!97#Nq^vVnk&Wz9b?L39Xb zL4H!&F&~t@9qC5^c0a)E0Ar`6qB)aFQ9x|8brBb=RiUX7NLPD*b{B+wAUi`#7ars&p{!ujG;QZC11rOTh1EV`*JS5fJ8WtQLk&9V zCuVdHA`)s-1JROri32~>br#Y!S+U3!!fd0(l9q=;N|b1uDMa2XVOZT42&6MsukT`b za_N*{xHxn8fj|v=2e%|hf*X8l;Wud_99g&lITj7|94LYULXEId-_H5B1UShK=<}}Z zc8We}_h_lQhd{s+OSg;Lj=^Ff2G^nT2~t`VN-hS0S`*=UuTR&RRF=-VsSTP~`T$@= z-IY!XL|}xwNB66D4NKzNV8AwS7bxg{DJBK|vc$b+vV@B#_s74lJOE+?O7Z*I-v#G0 z5=4Eb_Uu4^mNh(odVBoaO2X(Jxe^!ObrNLjn{8csnK1bmy@zkUxqSBHk$?o}8hw+B z5jihXUHTRgMYt=wis9zL{oB)vFaL2$;Uu-Wt{Ss6U2InOt~M)u?^01UAOhDXcW2M< zzW@0dbns;ar8PnB+}&56G{eqJh`o3BUF&XySo+QB_Vvrlzx@5F>UxoBiez;2eq`M> znnDLmNW#*2juq+p`1aQ?FMs&y(caY(^ATX1Tb4feVt+#f0TL3CdEUBz#Or`iUVm}* z6yfyzhac(b{uhH9dmslR%DL$Ek{zhWPHbsxp3!V<+; zL-mq*ub3DCff_ye?ewR=zGsjJZx4Z!5-pbP(gQG;C$9)fV%K6S1oG&oqo4lrp?@h) ze?LagCabdrfs(x#t`GnL?wkaS*!Dd7F+`ML@Yr>uKlb#u6{Gy}pJ(6v{o!H@K;!wDA0i?hy;;n> z`1LQBU;K1@c)kDz6e?-wP!S-E;kI(xZKy^h6yg2%)5B@?%hy+5A)LJ11BOnF+0Q71 zoc9rM&=|bhz{Cy~ZXF-|v3mX04dLSW-2%Jt1VVO^4(1dQMC^^tTNj`lA|dIG5#ac2 z^~)Dmgze$m{f2b?=%!O9n4$z(#%LotMooWU=iX8FFPFbRy_tA<`p2?~TtB{Jf*k*V z%&lW1B{^i$A6yaxWa+Avw!VDz@TST19i0$-Ztb

GaNY)fXS5V5-7H&l_*ITE)|Lh#L%V`TV)5F&fPB9NS0o2z|nOdV6 z3C!ZHuJAyh%+nUW`nbM6UH1iooW4Cdu{KDF&S-D!Mx>?&k!}?zTM17F!1i#vS#D0= z989-e1diSw9qJ1}qSh9RB_c@g=;USQxp!vau%%OL%hetcogciryPqGuK3#7>nD^fu ztQ}V3$p01)Oc7QSABbmH)hs3q2xrf4Uwk@x_Nm1UNiW3@)<^SvFkc*Rp1wWVzji>Pio=pPc?8YVyR2*(EMJqYB1`Tb z-(N5J;hV$to!z$6PD4%ciAf&k{P65TM)i2*xGsvov#_FMq#*|hES1O8sN`V(fsz#x^}|Og$NSNjtIsM=yQGIJBWDt-mWvigs>F`ZU}8!=qE7IBrJek6FT-Bg&}nk^NVPq>J!6;(TC4i(0(kb z3Wa4O^$wd)>$(OV`TEJ-;oH6J!mAY%g+c3ELx$Ze-Wi(A_6n@cRzf3{*Pnnu~7MSEeI6gVJOU+av^)(2mrTh{^LI`p8sRLyj)Sgh3ebI$U%tF} z&dZ|@`%sod{j#|9#tLu>@n-#GaM+Q6bdYyX??n3Xt33&I!-}Xqdn+9~QfmUj(wUiB z^P>)1?5L3-ynlGRZQIAc9swqu$DVO&Cyf!3my?g*DbMp35PI*M6}6&+8nzdwKR(}{i#b~&oH8#onjw5o+8*$pBLBzvD0 zs}ug$4{yHy`vYK%Pt{IT#{ErM*^(^4;$~3+fhG*RI-8F6_Wtp=H-G*6GngH;5pEy~ zlZs8qSr~<&lykd?!TV=>&sO-a?>>I>ujBRQDrf@eX>0C1SZ`L)VSaJ#@`HKi)*2w- z7N5O7{_V?8NU;BYN&3Y}dhp!?$9=mETM$vxB%=uTt))o>#zN3FRnRh^gt(mHoxmL6()8L%UgAH6Rb5ZV~Qg@yoJT03-&0N58HA`0o1E z4;RmVJS4&1IH6iT(~EQ}Pb^M7_X~`*a-J8me=+_0yX%=QUi^4GFMvuE)eXIVeBb}${HypwMUa&YOiXp62gwX>F04Sa0 z-9hjF`SJVzdeF9T`Qmmvv9gD79Ls5LYn~VZd*j{!N*)IQwkYrR`2PFL|M;(y#XY_I z?&5yZUy_UxZo2LW05tb;kF*+Klr75HLhy^5gY&&6^7^~WyD7o7k${t8!%rj`m};yS z^i1-8PvrU4`s}nddGr0n{q$KIbYPemqd3gW3m_z@h_VmIoAZX}N1N042TkDqnD1KJ zJ%c0|ix_6{WCR?Ar3)eh-y&S@Z%*0@X1O`o+&9yMbig+8)I>T-+Gbq_>aKaSJ&Jfn z1e%BtnL5ebC{79vSa7<$;BsEJTOvlbaF$rc1?6BdU+r}i0zlm2(Z_?1X}q;6o>?(4 z1Yk_mQv2>k^et}=w)En9b-N^>qj!hvbB0FJdF-f>kq4p=S;cth%R>PS zv<)1;ISfjOHya{|&@`b2EyHaFz`beu6^Z8ccD-#c-#r-rz`U9DKS_o!(Hq{U*n zm>ME(x1@!Nh)BJOFraL=_njvZzIu3dv)I0T{dj#3NVwRxB{WM{Xjcp~P{x>;DT?RpaI3cPFbY0!X_9k|=rfT$Hlr1*qA?KVr#te>DP>v!|EqyQ3#(hkGJG zI?b{qmSsmg-a%@hWd_z`5uvo`A)Qy7vnLnF7pEuJ6RDqxJv%KxAc!3irFTK+(y$oO}XYKDq9j)sy%8tBu6)%4ep8M9ec;K-JH& z6pTMAJOMd>c7r$T2OpNx#vB{bVlK=G1PPP07oZce8ky0{`TWt%-udD2)zsqQqE4|e zvPgKRvc8m7ScwZf~zV#C5NA@ z>`h2$k8~_Fr6_C2RJx8SA%`%`0@#b-mL0MRKG!$QeNIL@5lG)73X_G-rb>1*y-Dy{J7P?D z{6k|)7@^tSvbiZS4a1o`l&*+lCO#>A1c*cRoIup`QNin0YnHvLnivtltg5j))w|}4 zQ7a`tDS5uEFxzQEGtN!X1!&9jxgW%%rO6tO7~2h+|;~ z0N9&0aJzT6hSWndnN=|0Lwb}H1S`^cX6}Hpo#gem@1I>hI=I*elpw^|;a?SmFgMva zn0!>;!*U`3_t@Wk`SIz+$@uQu)BZ--T6b;m*2?CpLjU59S;b+QHv zd_2Ct-rqd^_hIVj5l)de);=fufO|0AJ{!b zC1NL~UBkph4x!uiN77^m-NDJ5y`O)${$Xyb%cV}>eOs5k5CtJ*=e6|yAnH&Hw(`aQ zI{NiLF1~8h{<|e4{8$Rg%C2`7rjTkw2=Oy2ZsqyE_ka1}0*OxEOl;k?^^TA8M*YOu zL&0g(fLXr$=kZVfaSn9-_?LsM%FO1el9%y~x&9FYtHs#{@QZ&R{qpVEtG`^n_}57R zC4k!E^qSXZRRAEG;tA_rFFwO!dG^b}FMmD%<1ZI4|8=5tUOzq>!UObPL`nRzGEf>= zK1o0bV8JJEm%r}c{_8*9egBWAdY+#b9Tm)EEF=U#M*Gl3xRasf5rA0~1WTmB#Y#pSKzYu_!wS9NOhlvuFE@+-`u5}hcKvYgW_kN?GcUNtXPAW-s;UbMHzcAq zwPq|cf40uOGs@X&{_y>$|KonKf4jPTa<^H`T+FQE&oTt;()&UPk(A&? zfBv-k^glkf)&2D0o9nyv9F_`QA$bx8i5f6;j71kt?E_`o_~V*CtgrUpuhv(Kx8Ge} z?{B-VFP;tvl2$457O2qzhaY}e_sub%zFtqa?alXBcYB;U{BRoK_ z;9}y7$D1d=NxP%l{rP^$e*bqUB~DH)koqOY5}^|IJ;|%%`Pq{9Zt!-$Z&s!?`w^&5 zolwGyhINmRNZp=d$S5CYz}*v>m*^$zyj zXU50^m%*V?#)R+o@2|hPdGvn2&Cr;h{&LFN4pEH#AxO0?X$1xnvLqQ@`-@H<-2eRL z^}{!7>cR{Uem#mnas29>VSA|p`Qw$XKduAfr)O6WR@0N;4%!SL`0(dL9_OI?CbU$M zdyl$y6`c(M!5u)}eRKKrcK^l42Me58=F?Y4J8GVI*2mNc$0ISLKT{iv$Rw}6yLs|) z|KMyQ214AwSQ?Kkx@(xVil9d{*v>vw znjP57lq64SgbnA;0C0c2y*}K0@$1RnjQ|79u-K|s*OQF4E6Aqf66?WM>>*drZg2Mb zSHC{mySLpFbt%uS+?47@m3-R|-E>f73A@3nD^$_Uz{CW z9v@w`ChBNL~+dE)Emd*b5{e$b{*Qfip>fnIZ8md1H z1d$pwY)wSEbR_7VTbm4)3TamWfxFY&tNs4y?W6sBb8V>`9vFZCsgWL4+M>%WqhC** zgFv>2yLxyfeedyyqrEwXPeZAli(me*urwsav-M5@`Be8Iwx6{q?A)nCoGzCaI=SF6@4mz!MbpkZfqFE-O*om#L_g`Kev<(wZ z0F1@hZ!^-M5rOC+OXrs?z4mz^%i+7jLjml5aIqabM@68%7a{2E2~rkw!51S43Ld`S zr|mS&g4qo$0nLqaZ7;v#F{+nHHDEY-dj$8;I;S%eLh1?w3Ra&qmUMk)_GfzZ`!UQ& z9mtNxGF7%}t(vMyig*C3#86rjhv0_qzBrT+k2zr7B8*HEpYqxqRcT6+koL3`#cUsN zM1b3BfH#~oGeSdKK;-3#<1nc4+f!K6i18W9Rp4ou<#$VG_Smv2OtXgzM)LjjpXH;9RRYA=92J6h={Gr z$?KD!zIy+1K3SiyE!AHN)g)|*-bfV<(1m0uL^wfv^!CxezIpZHe)ZsTA;Miivp;^L zc^`RPv}#;Kjd?IjH_O;8$G`0V{YAmycGl@ida1l;y$m9xmRNOp^3&n# z?=Rkbd-3$AV+4x+gt1;gyj2a0A}ShyH37QwkA=<+hESzF+;%A1?mJM+awng3za~8M+-WuC8zM)P47BUIP}!3Fp=s49R0Be4L*K(LzvZBE?9{|4d#Ua3r`}G>j)mjWsx^W z_cQVF*>eBgO4j)EU(cHPeU%V|Oxkc1;BwUQj5#e` z$2V$o?YWiLU87wDJ+e7aL=Z$q`LI9V5j=Zzee`Da{;Qi$C%0bKmmj`;dO}o)t>!La z0u~@-;5Wyc8`Qh2#v>^m|@Y`Xa-+VV^s{c;Su^;N7_gSAEcL(Db%>o_k;qZ zLD*R~>&?e!H!t6v9$qa;5I~w@dE5mYr;3ELoAce`)d58m(5R>F}B z&7OO16w-MfBOqf301M#iMan>c^VHwJxIX!Cba*+D#5`I+)I}-TD~!7Rh@(K-GRz#a zpQKl_LQtr;x5XX0#JKVzB{ z_pU9v&GO4YBC^=59-JTVT^uZCv6D#l z!X@fdxX)r%T#@c1Dij9)0CBZhKYe%Ft`@{T+BB#cvT3c1*z^VTJ_|=DPEuaAm$%r5p9teO%jMmhZo1|&e$1U$tOz;6L-$`T|#Vx0K&6= zH8f3bX7p!w=c9K=VYA0lf3j)DLIVsGadmWD<%fVl3E zm3$AFSaL5b8G?IOi=3|t5rN~pfjQO&Eg2z*3IO}4!s~=#z5oPXU|(&gOLZZFjzo%p ziIRH+0WCmDmQDK31fj2_ukO~DYeDpwspzH|3hp{P4Kee5#!&RO-TMRC>|gD_S|Jgj zs7+m|E3p^XZF<2~ahxFo;mIg>2XcRMb@JOGi-KPk>P-~^!Xd|AJKEg@rOdE$_>Nx%xL#jK|V6^|$^eZsS+ce1~E{NoAM;Go|Ufn~{uLwx(? z3@sot$@%Hs{e!y~e?K)LW8~UHCH}huIav0k@eml`;%M{X`Q=wzT3k&oPDz|wF_S7q zPze1QM9gS|0I(r`^X2VR;e&HRtMv>PvM*6S1rCHcswn1IH7m)T`Te8&#oe^`VcDk1 z$5WEaj;Up7A;g?Oh}eA%t;_M7!`I(`nqFKV{c&K9TF=IZ^HJ2_5jRt|J6jE-2;AVJ;33eKZg@ znQSbUrfxxf4-vN9f4{n2_CLOP`{L&(B+V`%R{AMI@%N>(u z^6xLszWw(L)QUCM#z*r}(lqhBl?psJWjT)`>R#Bphtp4|KYjV(hxy6!X5};~U#W~$ zi2^e7OrX~7tRzx#6bOM}>iqEC!SCN(E??~(oDni_r`egL_DL~|T}3W|GnxL#lRBHM zHSXb?{oh|+Oxt$+?f@Hh>Q13`yd&w7E+Wt;`+PLZsjFy5mIW}#!R6|wmzT@U&4X8m z-07 z6u=-b!LP^j;xCua{&^%5p1rs!_DmaPNl48E^TfRgHyN_W2!gO_^6Fq-|8V*ApGSQO zufMwx-y*8xrZf-|m_lrw5J>m&*6S&V1WmVD(+whGyVlvcA#OYqG1L9xUr(-j7Y3obe)@J_4^+{; zfE)GSn?1yy`9!TX0h#+OB5g(>*nfKa+r!)S^;$rVf8XDGx15?WBDgEm-@d6vEsUU; zlS=8D02N+-b$_|PJvdtn$ivr1hac9=j3$?9<-B?H+BPVb&NKnRMoMCuTkqdoOn11r zA^@NbzWC`Rz2gx8K(a)D3SNz@8l5l}*n7CU{9*g_X1#y51Vp@+CqEuh)2cz6I!b!^0WayjkZ;|2I&-<;TfGjqoTR%f*sHv*7%EGvJG_D;8 zBfa_d>dE`Pr@yY7LRETr6o`A2?Vw=<{GmhSPaG9i0s0}o`Tq9V>-B>-OVWF(3lVV# zcX%5j)1MC%qd{XWxfOYHI=_E%|K+bId-tTLAktcqjFTAe)oK_ta%Q1RYxvPM=%K=EzD~$)z_ZZAH;mGTpJ!hi~qVKO8=Mznpq9 z^eu~!VG#@;mSX1sSrChpS`c6{uU`KCVE=m2oM?vrjhh%~gG2ol>=kxm3%qe3%mWWfT+nX1hMZf@%Vs%6Hkv{A1|&Jt=qq`lAl3Tv0_|(+=pMo zdVM^}F>Tw6Umh;*r&6^mQ3ioX1~fG9Cla+RvC(syxQTa`XFolhN=Dt;n3zh3uDKc^ zBbR6q8%=6s6c#2yz|;4~4ZAQHEeF81!RA3ReOU_(h=}JcQA2A8(ys`)&meU2@gR!U zEQr98y~@fM=}e7W#**!J0|3*s5bhQ@L4*zm=WB&Ixp6f489`C@PpNm?n~^s+kP85a zj7H33!HK46i6DKRyFoV8Zi5+|V%8vvV{@%3SOY28Spe1W*ro|fS6)Pg8ckDMfH3!& zuo+{38VEpV6(w}Jm=+5Fp0``;Z!~iUwZ)C*N=a79B4cz^zgXnYCuury& zMMh4K!4#%ey~dC^GY$H}aug>OIgYVXmD<5-l*&7@u%tK?+rp}iS~i08Qc#TA-7JPF z8D;iZh#Db@9)sDo%#+kE5{3NKfD)o0+#Sk%bba{yz8%q73=m(r#h!69ZvwL(pQDAKg6q*NJF{u2nX09#UjD zt9$)#sT~0TfEnT9(%L3#J!_SvnhuMSyw?pxMQSRC}J0FH~q=E!<0qHU#b z``KY{&u@<28~{@1*)Auu-h{y^Q|@)DoFt&Ftllr*f4!lvE+4&ql!g}@PjRRcrLs+o zmxB_5DIj3)`yW;x5BTHPm#06k5n3Qu%+^VbXQ8R{yVX{ zMQ;joX^nw}49mF`Jbi!g$BTx`uPZ^cJ=Tk zC^G@KLd4E&Mqg^+vdcg)BSfK}kMHs8_b+~XDu@@yw+wymGx>yIp1M0Ez1LZQsC8jP zAfl-?L}HK``frCb{_yJSA76BYPmiuTcEerSV<~$v1z~QT8*q~W2@8OT+X>$-WdDm# zU;p!IU*PXwyb~M>Jv*uUzZAtFh(JRM)H)H($hXKJSF-o){QI-jb`O60@=Vb_3_0b{ z0cRBAkc!q2U#gBs9Zad?t`*VNYaO39tI&2)knkq{;N|J~xtt5f~3=iW^*piCiZ9!J6xT3l#CfL~o*AN40cAL;Jl`Hx4QQi%|{F9<$f zuBE*eumxtEH^?M(c($ig!RP-z0;7mnE0)##6_O^A4TNn|F%dKO)<1oF``6cpNALC& z=<(#Yqt$YSi1R$_bV|zbII^o02_3Qk;LU2jd~x^Re>pw)v_u4CJU-ittIjlBwrVh~ zQIR_O{a&wi6@WPJZc8XY_0)uu}5@h?WNZHMt+U zFbIGA^8S9c{oCIk<5m!mI;`df(m+pcx^mh_t+DH9c}AUS=tdn;-hOon2w(hm+>9|m z*rg#kMcps>gf@Vl%@Ck94UuWbEr0mx>g0Ow@oxuB36ezAnE;Wf^K3~$$k{#tQU?;@ z*}i5iE}8c>e|&ZR#k=E^_siyp!U>3>S<29Nx1Bl0pMcQfqDA1|L3ndGzy0F+n_o{4 z&Zm}K3-3O+>YH>C`bkNTp{)P2wMIZ6A76YrzW?UmkK5hs@oYw|xC+EQkkZDKFFLh0 z_gTe|#5f3CzPP_y%UAz=u-L@*qQo7g(8(wOyFM(yO-}+mdX>ydw#b84%W2>n~p6 z;h9@GIPz;j5l6R|+YVA=FPZn&X*S{Er~ShZ2koBYFf55+!5q>1tk2zqI*1l$YXY!5 z{QdX@xNQVnp0nTH#ZOz|PPQ@`9};k|?R3F^_{XuZP*2IH7*TMjkB_Cv)GPKDNb`a| z{{3We+Zrd&-y7sG^84;Gmg>u6E^#9f5oot?aJ?WbWCDd&W8_K%v&9<;8WD2uEJDo$ zdH|3P%Nw0uAw&0HNn#C$Fu*O{Oh$-Wh(QW&QDBSE>AOQL&1>NFPla>*TVWd zcOjV;3sqZ4=;-~PI>eYemR|Tk2Ag|a+dq)Rd9sx4(Heu2gUdZzD7c%QT`hBz4d3DF z1OFVo;!m&<05&2KS>H8djD`e2zRhzBwqE>1)M#Spx(H*Gxp%uerdb43c2TK_lk6&h zgsm-F%-pC+zZVuDJNGQ6rD-F576?HRtvTIGP65ew8u|lUL$qoJY7LkXVOs1F;&yw_ z%q+;(o~EBIg}XgEwe-6as{{ZL>GO;V#Nz1l!GDI zBg!)o+c<%crq)o@BAApk|7oI6#YU4}GrDb1XNLKF**dh$>Z>v;AON;$vIS1K_b#m8 z(NJ$->}-HWZMob7nWfLde(wwFUa7UI5wQr*v!4-JZEYZoG=VSz^m+D^qDSE}wq)4? zYEvUZLf&$$8=9N8c?%Lt4?~}!mSe^DSV)479U!F7wch7q({Kd}bJ-Vgvs2boMG(iI z3tr(D(Y6SupowLo2!G#HVzKfiMJ8lNsGVlzS?QtzX8CAQt}U|735iz=ZM5zc&m+h2 z&Y|_86ADyPM~QnNv%Ei=>Dlf6+jZJ!ycGgUk&P3DY+hmeEF`^4u)}oS-X9Bmd42N7 zp*l8&?fXX}H7jMESAJvUc?mB7*!eaE^-iIyV$ za2eL0@NT(x_RZb1ANQf8JHgWjUi4g^2Nhyi^m@i z-#-1coEPi!HHLs!sT6^4*H6WhM?fXkOVs*&_-^&bSC^Aq9=_Tal-?LoG#RbVAc$mZ z=0-J;MS^0!Vvr{N@ZIvw%PaW$_Q7w53?h?6loB#-q@o7P0!l%Pmo1X;Bm&Yl^xNa! zzPUR6X@72V_i(F+eE%jn4p-paF%(u<$V8KfFu_m9z5Vs#`M)1B;nm5lAXgv}=PRjf zILVH2J-s8`E%@~s4!*tl@*nFy;l-01$8}50$MP{lxShB+W-4EYiu4GZ3EmtqeSNe4 zzYb@@*I%AX56aY-@9$`FmWP`A`P|(@ApJrUj1;k+AQVGx7UhIu;~HDzB6hz zQX#O+jz{h8kU#Fp-s8>58@S)&SKnTWhhHnbQ2!q>5@<+XwG!*p({h}9;on>`W1 z8IC_3Ft7;g)Q$jYTN8|;x1QD-TMrizA@PoI^}mnZ)|sOj=}WY$AYgyIeC0D?q9@c!k^i<`x>e;YIxnUaueizE-*P(J%Y9sn>E_h}0RW{O}BO;pKz~Fw~a2x0VT#$hpAmQt8t~&K^{(0KWy~bFJ)8q3c&$Bai{Z){OCHApv zuaFMho1HV!xmOoY?>{}5fB5I4>0S^h%=r}mJ@=F$FBp-S5W8<_5b*YNbFuC}{P<+* z5)iYXtp(muG@c2`U=G{A`AryFn;I{kygI_Jo?mR#7#V$0iLK|@J0X4UP_|A0c+ihd zFXspE*JNH%=(C0wdm;OI{SC7XK@~_3M1;L}y_fg5`;Xtt@u!tIIxwwkBJp8|+{us) z>wX+yVgkem=O_Cg*L2&(HUnU%cXz?H*i8zAjNYi}W76bx5db{=xL$wUn>M928CB`gJyW8i(L7$5bP*#>dVfV+Z0VJ9A7;FHT3n`_7Mpz)GOc3oCeR7Og%He1j0DJVuHr$^T<%NUPislvXf}ZZ0q;`0N)F_#{jR9bF4~HN2 z-#)qe;*QqW2gPz_LZH>gkssaNG{YeJOkiX^9ZfUte^~zh<#prhqqj$l!qe1hVLRc^$1{EX@yX8*`l4MO-`YkJtv!35 zdX`tFg-;|RFfKgZtmxMRUVd@@{GX5dk}ejt0JvcQY)-z~Qj{qfb6mh!{~ zU1S8kRd8KM%m6d+eS^ytFL8Tjpk>KT&X@A(Xmf&V zZghFvy?job!-93I0Z{ytSO8%Fx0BqG+${wVxZ%}Fx2Tx!i>H}N8Z>WMTQLJAPjEl= zEeR7Mp+=(E(og1)WWtb&Nnmw1wT{RHxluJN@$H^`T5pd&t#L*KK6$^kroY~!T!4D` zRP*_0`?l~g!E|wWyM2E1=;J}-wz`9tzdTT6tnr53n;D62>qcwREZ-qOpTPSB@ei3alvyUk=yOr1PiGPZV`i4l_Oe@p z+T&>t26eY(N)8ZulXow!U$)g3zdaEU-0<^XkGUJaV<-X-dSX!dMUZfsrfIQYk$al| zczO2K?dscKUvQs^8vZ#VzJ!Y+h^wc`@6YsLrpWEs&K{AZkPSj$>p~nj~~4{ zWbP<*_-UclHLbO{7>Sx#$U&2vo~%M0WKBSLwSRZ^^yY{64<5fiY7GJKVBQmv?RJCE zY_+tJjA+HA#W0cLOVN&i?a}trlk0DPKRkZ7(g?}wwkeIy9=CS%v)rErB?!gOr>f>N z!TIys?Rx(19}n8rMApWJjy6MIR!JCD&7aZM!xFCL_s_0w_wT>|$0OR>FkuoZ2^tIC z5K}(9#6lviHSA#37!$t#>SFJHdiaY*giO59`?M)m+@|i1n{(s5;#80jfkc=meD#;B z^~Ln~m;L5=W!1_ENwfUgn@0KMwxfcQKDA;`KsM|C`!|=*-yNU4U8<&IVHUIhq8$mm zcG%=&+uw^074_75e=xuL>h|k@9UOczhb%@JhchnhgziZk-&>G)m$R;b*AMP5PqyFv zuZN4ReGSEMK2GPreUhabEZo}MSsGsN^>6?Fpv@j?(9nVRXp$bcBq~v`{^Z^bo**pL zrh}XPhrg|t5S8|bfLbE1)5`&gs)RrS1nA6-nr#QWEN_>OKO8-Lw{9@Z5`qI!dt=qt zkgf|4z-!&%VzYey@xkfkTBNgq$c)yUg}^LW{Me4&B&4P$FO97po$v2o>@T9&M#Fx)9x`hsgPK5bni-Tgq9wtC1+CYPh;R+m;g}ZV?74mOQOwr4WQ;D^m9Q zlw8cnKC3{%f-ucO>S%{0B=rDOK&-#$Wy=!_gE)iCaSREMt0@Vzgp_T8U9t{R7Ep;U zx*b5*JZm?@YS%3D?$>Hd@$ zMG+`R*p@g@GLKKcY!;x*az9BU($pppp0``J%o>>7!ETZ8TU}WCyfvSLsMV3&GS;Cr zZRJ#UN6=G1fO}U8lgmlbg_404hyM~G5@_pSw+|3C=u90L0DGT3A=H4o*IPs`+fqsx z1?Y2Eb2OywrT`ZFX-gp3CiUtD<0|$-!qWS!0~#AB8oUMV`*j~~qe;PI0=&K7n0AH) z?Da!>WKd<<`0=jwu&{KO&%oq*hX^yW;(tY0I(L!QCR?Uh&=_Hc`SZP~IdA6eR=+#& zzGTwdjhVZa<|NtHfbM3U_xA2cNU>FumjM72sp z4a+q(asz(S#oPq~N#q^5q`{?jwP%GK_#;gU)(fiY1~AqRx>E-{)tN_UtxQj#`|f8_ z=|7NeszOP@5rGdnCpF=Sy=2`aa-KfDytl0Y;XFxiB4lAkb|k7GoKNuSK$c(Jy!>&! zS<(Avmq1WDsi1=}nfc4}S-xER>tlqOAdgkrbu@JsE$!XaN3GQSW50bNdV)8uB=A0TkUn**Np zgj7bciEy892Kq!Pa`^=Nqhlzj)&1KtxSzzPk2yRpa*b;Ze8fbeS zVy7q%GbKxX3JO`>yCGsiE;ejbLJKd}aDkSrvjduG(ecI4N6Om}4xpNr25Q(7vlG*ZMNOZAGxm$)xjiv=$?67Q{_DW9 z@cvvvZ7vZ3=7|?(@$-Ka#>j1x_fK#7qCa_afP#w+Jp0MGs=4h8%CbmWGUE~A|6n`G zhcE8FzgWEd@dN~?4Ltk#P^T<@GIceW0%e-1EeFX75^Ywpd2#*S#o~*9Jro9-`O$A{ zeW=)~Y;{}3GoPC}pHYAa%Dlvj)5{;;9z6JCpP5l)|7@~5o5_!j{jojtw2I=%b$--qj~NxzrYbtN_qoL<#2c2mHLzHPRV z7^vEH{`6Ybn{R)4P8%^rNkOm@R1E}XBJ2(pw@0`U_7S@vawmTG;%q|s>YtBMX8lMT z147f|V`FIS$?$Yg`ANXs{z8rB30{Bw>ELGd;PpOqnOL{N)_F*+dt8zRoLlGpTV zQK=CT;AVOM#}^-;d^mXW;b=jVp0_)5pSS4V&*;R|*(MQr`23~h) z>xa-uZuhre|KmZs=d9kwz<~{d`95D zm>HviyH4+;+E#zdhQIs!qiJiQLff5l=9P3iuIqynbHpXIY)=Cb+4g6zjtGGW``n|- z8UcN1Z1J2zfi>O5=HA!@grUQhpS(LFf&g0gxx3rN%s4ivj5XXdiQH{wV5O4x+mjD_ zgfKH3vBLNd$ie3I>(f!bYK??u`A`(KeQmIzn3`#*TJy3fy#f(in;3P|%ak8}s_AO1 zZXKu#S&1X5d6wf%DTxTJ9n31-4U2};G_}@PjI0O(leLUADCDWuCTdMOZ)NMxR!wWR z#k8;^kXljZbVyB%G)*Ftfb{K5gxrOI)XJe4nXa`YpW9E4q z{$D>Hc&Ne0=1v|#z~(M}5dmcA=Cu*S53#Tor=w@J%6F%EJqGQI^kb(QqMZgskzY=D zr2vvW0SThX#8Jy4Wi;>TS}@?FW^*$1QQ{#L3~y=K1UVV|(y1dj@J>Ue+C_-@y<31R z&gw)UHy-NUD&gLOuyO0b+s&7?8a_`U@o1D%$Xz-DV-$&b-5`d1mcA=7>Q&0|nP5dX z#-@ts79YgHPw9k2#7Yrr3Le_d zTLZMmX(JL9ETWh{Jz(2aVf)w|YU!me98N|fbqI)b@+4Y8FBBpNBtX-EO3CLJ1f1o$ae|U7UQ70F1K>J>cZ8z_0*D;LC&~G3AUSKNu|CK5yc`7xQWO#UvxfnRRh; zd5QOGsNS6QUdYmCE>o)jEX9#zR-=SsY@wnWFTZSemz^uC+8%3AHBNwO2J2 z7B_Td6QD?ZiGb!ONb{=*_nx+05$zuFuyc>)u+$`3rGo^b9P5G}>9zqM5{p+oa^|p~ z#q9_g*~WS@EyAZnghyDSM9o){NYG_0AYKMo9yMZlIcY%8MMBh+V+a)Sc(p6sINV%+ zO?jgPWyy}?`7}4%k(1!wJ>d)_1VaT2Fbb`CyPA(K_E2cr;_0XToQ8VDj=E#aV!8rQ zU1JC+f}f5zAD-MjI9pS1>s$Epm!m*bX2pBWpe1M^fsP7!`E9M+-92_OE#o}{ixbEQSN5|n3wqBx1nA-+y^|bia7;`T)7MN{BI)^nx$CiG?q`up^%O_iKLr#rd=M2Pg0M zCm}B@QOmIp2W+0kx?M1XL9_)M)u`RAzv$NmcWtyhb%fsXMYuR>X zVWOY3I|oLrC@d)vQtTD=+_kuy9=<;~eZLRLDqq>tRANb^V5tOFF`3mY)PN8L+j4`? zULCK`CM>m|g*%JcoG4~CVHbETk{|$x4Pkw`{OZTky&F=!#sdrZS#LzP>w13$hwI2v z9vgW6kCWCj?vS1fEO~((7nollw`TsoaE8Y}A2v;vM;j4K0mqg+aIyIe4^Lw~!s+jO z7{V3~@T=-z#h7Hei#t&^8XMWl@!J&$1G)N;;zeAQsg)E0SjM>QG}3W>VN6;N!%#U_ zI{Vqi7@FVo`F0Q!^w8J^dwyT!7O+tCtSbj>iFWLQE%WN}32OLqlN~Zp1WF{u%e3vh z^+7c1bfdMVKVfRxqAe^PL}=CtcEiakZnA$&VaYyd(cM>T%?voGhe}cad|NC~_kUBH zH2%}=pjZv|?v29I-3lVsysmmNi?o@UfP38LmZv6hs2_=R^Jjt^^h9gIS*5GQU}v9{ z`{3-C3M=RY0eY9b06YPllTtuHj&FykF*}ghr|951qpD?O(sxte7WWP;j^)#Bq20y0 zZ9$@GnikVy3!8aP)1MyF)QzRPbEV{hh;-IkId{_l0Px%$S`1~R4NOQq@rP3Getp%VWb6WZF!D=#Ec?c=DN_K#6ibF445ttL-#^A`cJ}A(8UD_ zVwc?);RhrM;X48y5*89)C8B^FgG=m=1}PCgM~+G|sU`&2?1(U z@~W60g$O{EX~2K1R11)ZSJp^L4@kCTxnIHu;mjZ;P|s5gj-#rFH_SQ+HyIJ7e>ABV z5;S#Ji@MpZ{ivwJ-T1O%b=JfD*88CHhPR_W`-y;~VASmxREMGW(M0l2ZYDQ*xbV(g@7<`H+}ZHL2K`=E_3fm0ES|cQ9aoK>!u%L=U^GA zuX$jwh9Xl%GoR>GAb=Lg)@GnA5aY6@yYIwg79!FsC*eA!7BK-Ef;5%3wESai&Js<@ z00&U0=)o}RXo0#4Us`-YSVt@6O5155j6A!Fl?))7{oJVvE)6nJ*Xm*4VA+uXY9W%M z(}uPzKVVG{|5zgcHGObGtZv~pVwCIszIk->{oB>yn>_$&9S+W?fXw+%ZDEv*;^6ByY_HgsnFZ;_Y8z?oV*rK^N0i!A_XhC7JR)J}| zz)w$ZXt{az@6$Gm!GgQW{HB-)P<*^rh=3SADoy5!z;+Kmd~vx#c>M1Z(#S3VG6O@C za$O6NP-8&C&hBGy|A=l*?$_}C%j@H->Ga*cQb~aIDv2LN#e9K<6c!^vMxc&-cf@DU zufF(jc>I2?6d4aPm{Zcc(=yy6x|cF2iEr%g59HH}+ox~$_dl#KQ1xM`jQ+}$0B9h) znZqBM@a|xHd%S)5%hBG&gz;s0m{E4*Ur9MUX~}**ewLeUfPW6;iBYYOoQC zNk@+P7fSYWxt$)r-#>b{hawC;iUOck!(yFTX~m-_xI=gsSkH^+Zy)TP(eT}6$eYS% ztH?-g977G=`%NSSba1`=>gR`x8}txrp|(( zSqd;+)GVEa6o9n{gn$rnwQXPh@l-b5>>@;lOGIaNlM(b0P{UK)d(0pF7z5OZIzD`V zEPZA`q^978IGDK;o6)`S%3pBM0XZ5En579mcz1vdg2K?LO~BfO4}+-p7_vwu z6n}O5&9MJr!k8qeyF=nP+Ic5bLOb~Z=M>aq9TP*lo?vv@43wWZ>4n4E`OooZBK85> z1dik;8q+1DTLDjZ*d1qI1gaa+77%T$*CGP-?vT}E5eC#Bu}iRra;6y)t*(kqtY3n_ zr(tD!0mJ)*$^_M0(UNldzk*|DFPq#QW6b+FmZtI|fK5|=u9C4?1pTc+>8F!C&89|Y z^&+7g2K7vTAeB05y?;};^=O;5Qz0=kVH1@2)~pt`uHhUwQizn2L9VF$-B(WZR+{rhJtW$w5yb}kcHCFci7F?|eLJfV=6Y+K zDiWhhM3E^$FcTSD7C#b^03t-qOiutJpr2Bo=k0d3ok_(Aav-(^0j2ZI8}2eM8wFbIL27{ zI+JNS$Sj(!wUY_z@umT4K>^oIb#I05| zI2$u;Ebp5_3{I(5WRf{>;wwudF7O-mkw=X{<=}x9dLS;vx(gfRp{)A z#qe(opu=Q}k+0`USz$(MX#|k)tOY+a9u=ulM9EZ8fwL(^vceT)mz9w&uncTE%-F9| zPYFm73%J_RY&M`8BE=ptKA}>=;{TVJ5dnR0+j=>;s93s?Bhn;OZ~8rulp=}Jwe23< z(!Z^WKx<@-c0_APXQ>jFs#F3ww{{*AhxVFRuQ^R-fTlv3er&zZ_0*ck$3$vcU`$|# z&Qh#h;-u7a239bWzM|Lw__05BCFYH-U`$SUe9X}DNag#y*owPOFjb`UfP3P$b7=(zFWbdM|7DW>HAF!*{m09UNzHxZGm$^5G4%sQ2 z2sz46Ev;++nYUL>e(A+;>m6Y=%Aob+VvxRM@BzgK)268jfpmZI_Mis;5H0dz`*$)4 zxJTVf@&AGAaF8Hofl^$Dgvg%AA#lPHcax<2z%)eM;>CLE+&>v}VOtVFpO^vqsGb1b zr4?ac(=CjeF}7V0%V%tsA{`smOMh(Y(NfS{Qf>+?L><2kLvkv1*F;elAlCpx)FGe0 zo^;JavMUQ6Ad35-#0sJ}(B7JJZrynlBz-J$rw!|7p)#ja?Emr{zE^sM!DDOd%jQygZ$^hj-6^J6>H+ zHU;(lP>sJv5f#7yM6fqV1R$F=-Je`P{pD0CHqm5O{9L4_6+$FzJIo3yMaMi*oBG4I zCv96E=9Z4pg;gpyHgJ8FabwqUYefCz-N7Wf8L?-r&Vg%57RJjEs6sUnX*85@S}~q{ z*hdbeOQe#>syVBpFDDxqO~CqZ8?^oV#liU=jmY8pl@*I$e)xWh%OTNX+YZl{tDC7A zEds-Q5ua}aj%xdIf}i}^*=9Jn*qgRvHIGxLMaHmg96bbf@V$sQbv(FQx2@$-t@eq? z;tz3Vk-E3W@t@jt(-`;eR(9U@*h2F%6exD$@~WURUjmKM820W~BsSxR!S*kua1FEI zH2bi`C1@3FV6mBW5g;wHVFPytBGmIUO>NRYFtw?*34%=Fp}c|-!BTVr$+nEs zr0y6xR~W6^fGwC$UYZ&CL{dRRbc@V@MltZumOSznONv~Nb5dgDRb^2m9?kRY{& zQ6dBJ8uWtHHg0=R>FcpNZ5^U;u~oC3q6w`l5RqD&Q2e453|6k0=EFK0(BHgIsUU15 z3%uCvGhUzNVM)XU8tV5!wh)E)Iy1l!SmMW|117$)^dF@Yh;G3Rsc73`o5rb4jmR0VtXHq;4iFfc@`3xfE{fcJ z*Hu6mrO-g%2o*e;7u6GbEG2gxc9KUOkR5TT>&gjVpwmhz zVkm$EtrK&sQ$6owfu{5&VR5NJaoOsR@xL-W1Qi?aUG0*Rjnp@&PZQ{L~^pllJ4ye5lff9~uS4vB#{`FF(B*SN`35(XyPTtx)2);rV3ztSxW z&wl}wj)OK(rOMgRbqb1zxArpz`72q3CTFx}KTV3a0SBaFtPz#GisAc6k-^q3sirH* ztbe|=VOyAKQ*S4&H{`C^G_2?4XkBez)ks)^TvaH~wZ3j9^NUO1Pbw|3_*1E;kgzof z0JiV``ro77xp+9!%ZW^TT@K&vk=P^`axiO@rt#}6!#dwz>K#r@dt2K7v?M*ci{P*w zr#L`h5b1E}_zDGe+R(xEw7y(Y0oP&KV3=n=@{IYtU>*zrP+)oA4lnkmjb7t4yd+3h zT_M&7T~0Q7Mlshr8?)EmS+k$g+%;KBSyts35;j;p(x<{!xwLdM11_n8nXSrMT z(6OVwZy>~`cZ_+Pp-yleIO4tM=y0f_zPWg+%#rfFbBaDg_b&T?`mUwi-Qs5(&te+D z-V55pemoi+iq2jK;NwT+DxUA>@)?>^UH+HY%||u6Kz-xk@rhe^m_zJTswHuja+C_O z8QNKq0&|&Yx||w|p^vWujD> z7#;ADz$O1)?Em6?We>&P=lG~CNg+7~r|?eu8Nyq|*<*cdH7TYT?l>^?V{Bf^?9KET zyL{J2QpYKWf3h6{JMbQd`~_;aS0b(k$=Kk_P)pUT^~9b9yGOP9ovPR$ZYI0mBNtv{ zQp50^GQ&7}w1bXhp*eKNP>?3ij-Df0@f3t&V&+eHk=hqf=||}GiK_&pnoQ= zz5Mh`f(UaF2x9<55m0@>L$7h^J@ij1nSgP0^o5#-tz&UgBh&)Zkh)a*HWiOFp%y$D zLce4nNLW~ID54g^SzO@*s~Yo4C{q&*iY~gFLpN-mz6eJ-`kgBv659$JN(66|QYB6d zGGbo*I;}Trb&7U*vM?~88-AkbU=*xF=Bsm~DpQ3!(jm{3_a>Gt77-OuX*8yUzs9#Q zz7GI8ox zR2`QQ@6Byg?xHzf)qs0f-gy|QDBnd{4t;kDfG+BlV0gKP4bDV4X$c_@s}%`ji7rEn zG(|$$cj7?!02wtz$ZKZUggFGj{#N_$um9-;92hsdo~)i_c{7nvyjuw+*UtbcX;l6$ zB)ZVZrX8mH$)em6!&?H+-^GL5&s|h<8BnA?p$>~}BeUcd3xmU_{U#zDbrULHWK&oH zslzZGmg<)wOq8sd0ORY82S(J9lN#`CWF7Z)MGxeas(Gu>w(DGOY7?Oz1w4>%qfUxF zf=Hzt}02?>P-Mbu9b#G;*4jz%!zS{vF}SctGrz&x~)XD|!~YItYJ z4IsG<@q581?ZqhrrEY9z5=azugE;9`IVQ`V{M=Y**%c_~5)#?-33GUoj;(Q8;>HRA zbME_B3>B#s%|m4S z2cpHan5ISV-1{tAol}H{bUX`?dFgqc=eWSM;k!yF5`GLZuU33?YFMy;&#}+IJbj=! z+7u(Cf7VZB&1ZdNWz6GHwMxcu0>Ob2hu&60klIeAX4!Baa0daT{lk!7I(xrqYASNJ5lX3k5Vmca0^BvDT#qB0G+iR5Z za07=yIoXj7CxV`nS*9@4g$Oim>WWDP{K_n+S-X8~prD@&_Z}4!RXXrp{eYomMPjQ} zr1x@pClA1N0rB5%caXUH(Je~F^7z?0nCHF%e7T8b#!fO1)I=$nx>P^IY z7|_;^U4CzYegHsgG?e}MJ*d<(90(y^PE$+XbAyg`r5zN?&+ZpQ92aDpq?YN(keQXD z^;e-M*1Ecnjhhiec#?s^AZ3=mvqVYipfK!3G0Hir1s!piTo$Jg8pW?TBH}zFnE4NV zg=NP@EuK5^hK3+^eZc7Tk60{wHI`UF6Ls<`!(j}{S-{gqvg5%>w?oV|u}(xn#?m=N zJQRvpTsC;Au9Wq2blwGXAjb?v@{(fIgLKf8r>Py1G4}wmHu}>)eQ$B5jX&JXUF&nZ zGM=H?)0vViE+=$0LPViFL+S zQ?giamXXG#MsWkip@~|H4#?6d5gP2yG$T8#ocd3>MW^(H=c^jdnHAqrTsD5X3rEwA z-!a;3l<=b~Up(5xhr29_$k3f_Q~NEpron>N8d9kyL!{QoY5Wlz3LU&0K-la2Qen$t z++y1+VtF_Zu!78E--1;sjCr1+rAe5Xb)PKJ_{ky(yi3!iJF{?@G1$q1h`C4IXXNsv zykncawpMUn!91xW4XGokxG*dq>QV?%i^r2VEh1*aVNifFx0ZN%jr+7>uJlh56YS+- zOc(yL>o7b*yt9B5kZ zCS~Z9yhdzrF^4?Xyjm7AbRtTixm?aP_XlC2HIe@iEVFL=V{U=*$O#s?A(F8^S1F{l zL^h&Ab6WHe=!{V{EJz@lZ^6U9=HKE(t+fdZ6jf2q=IP8;l_T10u%tBg`QAUE*P}Vh z?qEI7=sq~+^CbZ201l863(#eQ>Q4@fpS=w4Nd?mdsAyF%6sp)%D+cKh5db&V8P^g^ zd=(*`fa%bzg{y_x>%??FH`ZrFnrqT2Mi~aQi`;JSwruJ=hjA?n3?5%_$Lo^s=B^dmeqAmGUGdo*jvmQYqpR57^_pX;IQJeeR zd)F`yc`hbpFOPXL_j#UEdL!F*i}qf*&0dWK3DFl(QkA<4~RWt&;l-71zzNKsWI zsK;hPY)u!I+E!MZ$)NOGdlU`xdzgDSjmhZGEY12!cXk%q2NCeDk4JSU5c49 zZ4@sh0l$S00bAYVO9Vn9rMxZhp7>7nB73X4iC zNs0r50{)0DIK=8EgaE$8Fd#L5riljrNanEYlY}UtLpN}^Q!?31BA-b@I~(zE z5n%w^LG;0qd!abo|H)@AHeYkoO0?mEJXZEZI%gD^%w zeDP04Y!>F(!#P+vK@`ugEqq>{4o=O^TdD(8=rAC`Knl8(E25EkG?jt!h`Hx;az%L% z#%&WRCybe{H?o$Zm<&ErsU4*7Z-yS^9B%XI$tVJr;9+>dDk6rQDU3Vrs%#y>(GXXE zi1>0X!HyVe2S*qy#`!MCx#rCBWR3*;Ki_t-p+Wey!mK5cD0Xsbpic9_X1&G;M9mOL zCVvqb4G`loZ4E-hX>DYkkGj(E#wc~ykt$Oduu`}7AQ7IjppO{=}V#bN>6dvJe? zLKB1SFg5$#(^_lOV&QL}0jNzA5sFT=-PH*tcSG*dweF@!r0#6*T~Bwatl_RQ=2vQk zb#m-I8^aF2(g(+#$j)$eyvFKgIAaaEs&E{scK58gY@@_*5qAcz;(Kk$6&NXXC`|gb z6wdn&VN-U5_*}bktZvs^ZpM8_Qo6?Tpom^JWSCzF7dnYB0SRR1AC#`f62tL=#kA=< zhqH|De1S{)?D*a!eYQ|fAKpoe!xbvIwUu0bMk1;DFKRF?4k1>*iDrqEq1mcz2h8E- zUNCChyAC>cGI0_ZOIsOHn7Pl%L@>?H!5;wOe~iPMjnpMjC+x_I)R?lNuecCny$Ew@ zPJm^Y!wx|VuMY7FFoF2VrD7Y)Zp#*KgMb)iM{2|jQMyz|gx^rP(ad11XU6qJfiiM? z^S%NRAce+CI!=6GRTB#3W{VzZ97u2u9YxNWZ3x`{5H|Nu5K!$k6A%i*P7NFmY@M=w zk*MXW@@4Fq{0VKHA%5@b7+oB_ltU3S{Rq^8pc1seEaMFInQZgRk`7aLSf6+Qjcqd) zF!LT?aR&#)-ohTTwG=>&IdO=pwqol6Bns;WgzOXxy2S2}v zUyL%+vKAeNHqz)K+&dZaz`)pEt&P&Glb(w+sJMa|rPa1_5c>&4UR!2~|L)nG&gqSZ z`tk^=b00w>SU{#)Cxm*=*OwR%NOPguARb{%*y(-Qdk>&XF#}@B3S~k*B$E{GYwcjM zG!r6F1JR=+r=Ml0H;uQq)hYXKGADm@C;z{3~E7&6k<)NCRyA6!*zXc21YYXGr?glT3_cWY|dO z?907lIkc+QxvJY4XsfuLGI@*^zLY&NbB;#}!+@qJIEtdQehwR#*>Slrm{e`gzb`}6(HHHhxsLl>CF8z3W z?}a~&L)8p|h#}rbpbN+QibR-)V)A~m1&zXy?N4p8IR=a15SxIgjBH{HRLys&@1af9 z=kD-?1apdLAW=MT5?sVwVB?khZjvB;o$lh4;vSF7Wn}SUbXgeMRL2_v)lF`mYoY>` zmT0HinRV-sDjtqHdD2n`9s|X@B5>JZ5UDLUx5^;~1g52IUJC5MMO+Trvb@-3YP5oLClgq4z5wPt|B_26bq z1LU&8R5Srf9MJqq?sIoVui!O2L#k#i1`AshWkb30T!y1$Wf9CcnAUfIFdF9)Rg3&W zwitdKPcXxYIvXHBn5HEWinqb4P6r^Jd+A0*8Ag5N6}JUS9Y|lKhLh)rTV;~?k3z%_ z!%otIia`vId_|hSqAcn2hY7-IVpn-J`^JX2O@IkZ0}4}=@7dyN9H;M?`2@Gtw>Igk zHmbT5GzYpb!!~MCmn>%PeYQdz7U$XP!Hfs1e*$Yo(kmC#0d_uDb=?JA_D}MFJGe>( zIqN2gtLaxN-X)CCEsXev*3(@@tsyT_2q`g4vDf2Mc|y%v#x%k$OBsT&EK;L-dxhFE zoVFA08>d$fobIM+R7poSGT0Wg^c+cwV)n;~s%43A*YX7^&j!gNryYedQvoqUC};w2WLT$7-C|?|QuB zdX5QGOi#pZ_9aO};kMXet>n{3xI8DN&e{Wq6d0H4<&hG+wM$V7mt-J4yQUD|Kyjbd z^*&f{u>!lehBa*HUmqaiVzEfGn8ea;A7pD&R1uWFMI&{~mbk#JlmW41!Ze;pSrMf% z04Uv6RE&GJt*2HO(rf~)ejh1=oRGkXu)1ti=BRQ~e0SthOPTA)=!k^E=qa6ekvu}D z(jfc^;urM*kRY?@uuA}QzQG+Dju)9FQV=5b=~DzLp_P2g9t#x!P-0`Vn+{C$$5>UY zX(S4~b}Ct%3x+Aw3Y566xpTe4!Zgjg_p?NK5!_u_F05a72CFK~iL`f13-ib^sma!K zo62b0Dzom&501Gq4(z;uwNVKvN)}8@840k<89|BiraTUtq>Rs`@t&3Be`nAVrRI!w z9%)!g7hG@2H8&r2Sa8i)o&xzqC<7eIYs)_Wx*^3{uUXVRNvg|d*{dkXhT_i?foe84 z1qx~>a#o3bcAyAKH%i@aAx?|sVzC(PQRYbC(1v{W)#Hd~PLpXW+#eyDh#E_eb6HTT zaNwv}q*o=2aLPn84>{?b&C}2Tu;V zpD1=~0^^;|Wm6y{QNb=Yg;kmUBvPWd88T#p{Y$ET^*x7PcFolTys;Yi_Kx%56O)^?*2-XyA)ijg?q zB~`+#iL#`g{fi^S?rx@m`B^L`)LMZ55mC5zwNiN&Dhr@SGJ0Jxh#Hg*Ss0qKBcPZC zBjp@3G+p|gJK!3H`#f(o;a|VFIF66~BdgR2X-hl!3g*~53xg%h3vB&Rh|LHkC<0UjAGCN zELGK!>;s}WtOjGH91M05EjT{cD;On?#U&zywP3+zqunQTz_~|LF4qenHiF_U#RA2+ zSWyqf*ES3o;>;4R8O-BCDUsd*{(0;wb9P~~FTl;36i91_nSgK*)~KpxxoDQTRy7Z1 zOG24;`c%?-cA>^s;(SXxcH*7SB=M+YA_G42Nbd}wuxzU+sS{X^3+^3?gqKtJGwW+4#&1FPq)cR12rvO$rqVTzDX2sRuouwBiTx zq_g$PBTbWQdG^pqX<$4JmtX>VrPZhrm+|jsa8L}|G?nHN*a5PXKNde=4Ctk^8a=tt zrp1mc9*0m{tLuN<5xy&-AuTw%s6L}3jT{X`ccDoTvb-4w3lRo)m>{uL7=b29{;F`0 zKYt}Lz{gUqU60*S^0M3LGTxryI~W7=SmD!IoaaB#B{>;g?2&ANV(GI{O`hO~_1}#} z5UNwD2SYb*!0_bXdDwl1+JPMsLLG1He7SB43o|l~QO80K#xnhrs)vS)=QBYk_ZwyE zNY&j_;#S0Ih?d<7p55RG7T-sLB;vvmfzinr8Fk|w=DDG?&N;9G$M_+ZgZ<#&)woUX zeei@A)_ZFPUSwu1l+eGjt1Vk+pY0lj84YS4?9PC@)#3sOXJXZt{U2Hai(+aLC^yO& zR~3m$*N~T>tB}u;=uCmKtWHo4do{CJYC{owXMob?k)9ny=i>ylduWA^`a7G+Lv=<} zt6(+#wUkGP%J#}GRbhqQ<>x1^s=6YZB8>W^^O#tuRCaU^v%=2R3%i{XWwT24{;ife zi!Y_i6$Vl~4&wwvZW-l@DtjyF`vZk^TmZRu4gsS(-?s*Sl;Ut$v##WF664R;H*hOX!(zaKKm2uTZq zf-oxsa~SS%^2w`2CY`<*oeb33mztBo_JlzeI&9Tj;= zji$wNYR!rQSUUGw)#X@~(z}$GO-oC@>97$b8SOPrxK`2tQNv+0o?b`<)XMertBSC2 z?_K|TnNUhP;C#zN#@MFhmKtc(H$vuigRwNoTrb|cH9SjfpJ1YP@|9}NJlvjXwi>c* znFJ}Jq(Bx(MSs+JvzMyH!G{23)D@_Xc3@}Zj{|eHNWAbTliI@Il;Vob$z+-B_z z8dM&w5w2mUt065Qv)zLM-j7Seg%ago9z9 zXGa~KTz0>`d06-}X)i-#`1mbI6&DabL!Z!~Vz_-Ni({e%#?V)>IuCUu;10Mb;Rg7B zbB1BXA;o6~$x>~Vu8mOlT6y@^4QbiZWp4@9R#OeqXJjBL(jjaQFqB#mO_XbNITj8o zxQvt&_w}bi+U5)cRxiqNLUJli=aie&tSQf1+_?{bisdeEge-m=ruC>b!NGEBPm6eF zL`_gl7F2oVPY>#~SG#r?>5mHBQixD`{m8Jg!#KSGLYk&UmXy0++8%PK*?x-4rf4r= z00Rj+Z?;l;P9eKRN`6OGT8DniXLX_#iXv%mN!g{gaLTR-|0gX{wXeDkcBIgzCBbAR zZ@x=CFX_laXegB~wS62af~1t|)srFQ#4yB(&oS~IkFBEfK-(FyIyhc4;N5V+uPGSj z`V6WJY$*2&)-$4aZ0EKtY$n4nXAtP28n~(u8DFlS#)pJm$~5JaC|(!%XVN@W1+6|q zOQoj37;zmeT7(`$l8hA>A%3TYzy%S@t^>L^ip>iz-BLPFs7{P zGI6l2gA*UB+nQeyu&%~ZodhK{f~vP$RRgIp;WFS%R91vpY9W-9*U<69t#kL03}n5! zH=mj)ChYdtxICb?YQ$2YIk*5VF>}4am&?_1xiqJ(En-lK=l)*wSr3(~)uySnDSb~! z)LQ&WSDc|PQPx`9JM#bp4z_blXVZGdr9f)AjlqdC4qw^GM#UZG2k|(UVrcO_>u?B?tZU2~I5%FhaM?L0 zBEUg=5L68so&_aYI8tPWq3sxV*a>7fO03?tgWJuWgI;?lBO4-A)Tnbv^Hlc>8;AXk z=l!dJ1Hr70?#&SnFkiuImugY+S4OQhsB*T|Jxk3tJK14p7f0Um!4YV)XmE8lxR{jqoe!kVOQ)G3}2cjzab4N?H z&vA_sasYV8wR*|# zeVXJMg=!O`j*xAVr2c)yLAI$iib4{tc(#rdFsH3Ob_tOq4F~3Vsh30`lYF1a_AA^O z%G}*)SOB6Lq#M9kuFUG#iRwyJYSS_HpSTlwkhtu{ciYT<(@AvwmAP-#EXDM3tPWbv z*nZjI)(~Mi*~z%;s{~#Nr*`d7Bsaj;*4q47$5VW56aF*DlEk%C2Ji?VpOY(bXBeUk zFDawmRN9aP7{@miEK+qa!5IC`=W+B=j+Tn#h<)Z(@Dj@M{t@lID%GJo*`6|TtZ@md zVqBhUD|OAYRYm)gF#HihZ0z*)a@H_-he#Q)#Nj8`>zdYu@W*5&vV;;*Z(4^bmW`B0 z$p(2XuZFa)jP?Zm>k6s|yAOHC=i=w~=)fjO`@Mrj23KU!Eq4g(EaNyQ%!<32JsWRZ zq<^@XFz5D+Lq)07L2!*BmfAwBC5%dKPur@I4tTU2rCN_W@+C|B`bam#{XZ!3SgrLm zB3-3^7zhA-K!d-y^EK_{7I$t-9d-#2$_!4(iZgf$Ony`4M~_fK1Zb^iuv1eRp`0CS zwt#sS(01Ki{2D21nvtp|rATQ}!&+G?`ofa4%Qb@`<;oJ&YGYIpB28&Z54{{n%HrsF z0^Y%*)Q48+1iSYs41_(sY6ASp+1p?$T@{nUmPneWTc0>SfNH#D z?g+LCcGIgiaE5+YQZ}DS#?e?ep3;Ux-%dLiRTn0Pz zMvG5?nhs8>wZ?XMi204SgkUjRVlCrRdzVD@Pr$;WILGzAD30*2I5SGxzZxpikk17u ziiwnGl{p9XXs;XW7~>?Bz7#bU_qT+06ELZf{iIHv9`afAQCd!#1(D-Wt~u%$4C`** zKM)mqSRsQM3JH%%x_uD|po0lvNDgO#&%LgGE9tX>ro}>+oPeZopTnF5Spw~fj0SBu ztf>W9mPM}QVSLl73+4%T_Np~Frg^j&PGbslSdn=!6vJnku^H=B+$md~vhqbyE3gQa zfu>$aL763@K68DgkV1de^Ra+*b2?bU#a;GlWw;u(WLDM*m4M+}R1h(SXrJZ@M*%+Ew3U>nIhsE}jXEhz@*foJH< z1)#yo7&CNHy?jd4(_cm}<`~e1XdJR8mdx``B|7IoWy>NvM-PC)Q8nNa{R2iPgE5kUb{_=wZK8YCnj z2KHwqm4KIkpz2)PdF#6i3tmJUc|o|?_o=cVAu+I1-8ukr=P)XGlMH)- z3jy!yh$d4I5)sdvV3i{bP|;+u3uL_=Qkxdj)P!lf*>GVq#gSR>T27-A3wQnLz0b-g zVUr0PwT2*b@7^Q>)TYLL?(C>4ayCna?G)d%Rpm4g=DF+B0mXVVV-GBY1J&|a%-u%| zRC3Vb-!f}^5OWs`ESqS++>t^PKt~w~i=Y9EO~~-kY4Yq1Q5PdOiNg6}`%1$@sf?~c zdzTS*N+>Yns|=D3m7u3bgJh8Y>U75T>U?L0w6$h#_GlyGO%uwBAtV^Aua}FsTlI;27Dk397G{gM*C5wK#~X zg~7CAwXS$8tp1=vkQtWCN+l>_f%h^N*k?^8rEk1&b`viqgOxfO-@_IW8es)3#myhC z0UVpd2JM#yJd)-S(r7k@k9I5xkkzC$BvmH5`6rTN{aH75U^gJ(L6QuS9V;?qtK(oV z%SdJ@i3r(~;NC;ZM-HUn>+{;9`WtbWH)dvbWYX^hWTk*eG2xdv>vnnK^TInYUYqZG zcGdcv@Dq;CK{PeJeq81JOmQvgQBXtstx*)*kW(ORt*gGEo|Ds2uJ)ZVekc?MJLfDz ziBb!l$mu=Q41I;wM!mzG)qg(Ea|p`J33v#LzP^2PZ?#sulz<85=RcG9%Xc@@k?H_* z#|p&m|N2vVoleG*MN+R5kui=!B{ErHZzD}9&h0yR8q{NR9hU64hd%p(+V1R!VJt5g z>%m)dXT`jxUwY&otE<`0M>?v6K8hdN3c2qo$FmApt~ZyS&ud6cKSO3F!jbj9({KVi^_}SU0o8GK z{$lA!B5x{)Zw;quGU_VCbqk4EDY-LubJ*nEBfV)&i1(<}r>JMLY)A~laoFwYzLttV z&c7pnfHo>QdVq1CQ~B<3b(L5gRN9ojZ2goX)mz3ppY5|CqM+ohwnM1I&Q}AFQP5Eh z#bO39q8LjPFCf6Y-Nq<>2zE)-r)KN`5F=1eruBG(FiWsnG?t;?mwobtQ)^!I5-IFf z%pF4kg-+@H?OU;#SHXyYaOc>u<-}*)?G#WkM#*l_tilmf1|+#bAZm!tTd|cqGNF;I zqN=v*%CGUCV6=ObckrwgKYQKVP+DPHTRv*{}R8xz;3o*5hGvcw6 z1sSOc?GQr3Bon~aC>R-T8Q)JNoppT4BxbFL~*DqH}17PXq1D!qdb5!o2gt+1Z-}GLo6Qbn~3LudN(q&~v6#YD2=DGCt0IC8XAZ-RympRNe>;c9^gW zjXUmmRjN4EIy5WG+*x_B$P@Y@6Gm)SC!fJ5HEvgClcNLEE(I&()S4CD5yk1XzF_n+ z^^j|Q#Wu~QmK~TXkzJ*%_Yu_XYd5gH@SssfIXcJyULvAq$<5d>2U(6xelkNJdttWu zs!cS}rNDO=tu^xHh_JP$ygcQJv5b)yLIh~jln9yf2EEoRhfhHUaPX5Op)gj2P?xZ^ z$-j!uo`p17uvt`}<6_P$!ESJAoSk40^TX6Y%1%He8_LDxT65%qphz1iXHHii>sE`G z1w+_KjE{YT+mo$yLLQnGq7Dym7j>Oh8kDpz69~fQ(Y^FVGxG-QHlEYiN9_Ku%HOkH zAi>SE8{y^Dv3>i)-|7H*q)8*vZkZ>RM)SHKE7HJ_aH*Ke9X+VhqDsgPio#v{=RiZw zf8q|4-DG}v|LRwQ10=ZY`%4GW=##9KfhA~&W0oQ_HBdVnKLd*u(O*i?tn5ol)_bs= zggocQO2C~afimRK8;@K+X6a=BRr}Pa=ycXSeX#sG^R2u?=U#Lsl0(#L1{4mZjU(9+0b*EZ1Nz`$LHI*rJ1LBi2V zgRzLj-}Lj6Dt8P6O0&}Z(CfAZYf#Hq#E{j?3&&ck5!t;$${Pk?6$`bKd>Ej@f!D5o zpx%;WDrSdIrU$|LW}(LZi%n0IaZvZ7knPgk$dCy zL>Tll!OPCfqc1>`0XH(Xn1=-7j@DCCD&ez$QruHQprdClB-T>gzN7d=-CpQ2`Ax|X zX|%Qngke?pV=M;3ZwC{w6Ic&eU^F@-3~lQJyLPuEE4jp_t5F|?UPYe(^_p{!1F#?R zZ6mlN4aY2<0z!x5U`lfAwu6O^r76>zy9^!Pp&1lEDdtvHN~U$BXF@%?dw?R4f0Z_{ zLo*1#V(jKUnxl-BXm)n%0rz^dXD~B_40nhsna0;*)7@3ImA8SjoDg5`vkT z6b*xrAyKfksWcPSfE#4xbcvJ(FRy;BM3@E(eYHYTt-emZHNkF52 z(d4i&mg2gN?Qy27a{ZKOd-xn%zC$U3Dr6BkEf}H(4|bT}z6mJUoqP;pG^Ll~p&b@# zAqJ#btc3fAHMxjmnf|K&^c`Nnkmw4onaF1?^VTvJy+%YhFvtl9+fLG8V8>UL)fw?S z3J0T7IHWoShUGNwHM_@KoAe&x-m7w9x7!X;Gd{f{e@m_^davM+NjCxj7r-Be3nM;8 z^Sb&YOr?$RP$V2~C=T$)t}alJ#(#x~tNh1F&0|k`m8KLd=@WGSQ79)Ry%^?+!KpgF zG*bjH;VolN5=OVh(0r};FiW+|gvMeU&t|c>ZcP zE@tPa-7%1G)`OYl89L1p^@To65LaVJ~jw#^yPIVS&-2$mJ*TPM~hMS{% z?2SBD38kE|_ic<%LQfnA6Q;ybBbw;?Woel!)d zfG-}OW8a&kEDH9Rlip`eubJ$eY6EFtq8Q=%^9$K7rankWy+24yyVaal!U4|dA%%7@H z)>LXadwF$vz{}g#It)9{0U&RTi`1RD9%>xZ|WPVblZ%Qk1h(GUi&ENl!!Ns5xz zJcn?1xOx5TYHxF34zJI;`BK#ieWivVFj&nw@5qRCo|=auyb2Jg!z-x`5#zB%z>6R= zU5jC2zPu4sU}OskQ#FHUcUGSjLjw_%+XFWEsVR4KO`K-Q4& zln;6zGnYW5A0A591~ZR2@{h*Dl|Ey2qc6jzJ4D=^{W`g97uGXyG-?k*Y0u15ug11_ zTL?;a)Qvo0qe%R1%#c^#6MfG$!a zz+y!5_RG=(4GGRH>FIQ?8cmGrNVy_Wd}dq7b*B3B?i*|r5eyfpypgR8)}#`Gg1Z?T zAgb34)fK6t=0lw?Sa&a1Ep1DA=TJNe_%mTzs)3JfmKJ(_8Neh}EEcQ6DpIOfG||B47-IwR*uayawiviZ-I_jt z!82$j81@EYLSG)L$4hk za&0xbB%h5vhQztG!j+54Ej&FBh<+Z3q+6x$4~v%*#4`3+w*WY(gaQ02jnU}8s1EdG zoT?4;As17?J^sD&?<&wF>n8!wvXJ#f4z{TsTZc!1QfjoInaED}Ny2FIn?kC%J%2Uf zP4lts=N)Pk&R{43%sOrffFOt^k#b$4p*FTCM6K%mMnX&yNJTlZ-*iwPzJaA~9=onO z?|?DD9mS+kq4I^h({BPUmR_lV@Or@3e~y_hq$00W)B}E2WQmK#0vwN3wctXPlFzu&i?7cL@9oeKw_t#sG&TLbPI)Ng)>Rn+zQK(!>K;`xer$1iK*E z)Zd$*k$l6p+t}-t-fH64La(VXR&v%Bk)K^YIt|oHs5VM?mkbE!e4M!p4>ovMLCdfH)4 z4&r2-%_`-cJW#ePcrCemh_-*E4jGlihSfqH0=< zLeqf@mr9g7iG41LN!a%i-3tPU^J*q(SW0i|4BT@1l9mCx?9GK# z6s?AL5ANE$K#mHN2JYC^Ucc%(BwwbyI3lW85DBlIT*3X+1X~N|m(`^@fvK1BFUO$} z4kio{Sit$q%XYuSnTPIP$bMj*G;4HGb78%AU*Q9*i}OK$_vOdM{Xv^qT~FcI0xajR zh?cvdugC&^o9^MOuikE_X?fRBDm6QSQ-}zJZtRi(5ZlJS*|`iC^!~-iyCp8~rU{xk zwj6H7AzNonGaF6Vq&@%1AVlr_$@#~_`@Q>h>%toHExXNJ_v}mP22ct}7@@Ib5U!8z zKAqgGHv0=9D+&M+kNdhai^2IFUQs<0mRMT_U-da?2E-_uuzG{Fs+Y9Si0H0 zU8wTqw6!)-L+C6*?;l-AoAx$~1{iG>;6;$GPoY(f-NtXo1@!{lX-c+m}bDw3w$B#{#+)4+T9Uno5jtduQwkb+%50- z79CSnlyKhLjjnrKENvd@bcsjZ;&xgwynA-uzWw2EbphQ0ho{n4hL1QLD`2dy1l%nv zM&>_bfD4SG%|P3YapDfStD1IeYrtUr7cL_g*irwB=MBfqqSS&O`(u@IQURO-i^by$ZjYIfc2AG)Y1blh45=uD+vLl@uD3r;7B(7_+yrD< zB;lW=iL0u})zZGxi-bFM)H-R5DO|y9=C>&o755oZjRx3%pJ!usj!F;IghdLPHf;;K zFt}m8gfd`&2Rr)~Kt_4M^PWEZ*FT{crg`4N_-W|4wd?6_D0xv$N}GmBST_*v183&m z<20mh_IM<<*5c4xqq^0BJWw?5bpHM;tqv91_3*lTs@PgCbC-%A<@m`8mWa&px@G1Q3c9Nq>z4M@eD^Pl() zVKiaG=T!c164?oaGFcrg|A5CkXhvLX01;`e#c9)`h%KRe>1Qbte?3@IBjFN$w2y+* z1Ye$FiLo2{8OK%)|3&OiZM!wb@(OoPXhPB+d@4QpE)yVqd{Q#~6>$-aIZJ({nZt^f z>he{$X*Qe}Cp_f}Hn?4O+vyN#nkF@6c;d3u;7~^FafsL1lCFmzXA2?`wl*0UhRoho zp=miwFR<&+Lacy@(_*1pOm|;^ZFLfN?U^Re9Y6tKwboSKU|aNDlJn)!Zh2pOG=sw& zXdCbXc+U7RX4_hjE^Ehv?Mrbe+719|bTy6E)LMzy<2fChON&GxWP%dXksXKF>_pBx ztSs7t)dk|Mhdl;|mtEKj82vWM+Jd2ayEd*<)(-4~44^h0dF>LW5)`F#mLIP`h7c*l zP)Lm6b`XI;2w@~I7!WAWKmYB5q4yT0H8*(;1li?XOf#y~ zemB_}Dp=zX1V%AlNf6BZZjR13({m@M$)*PmAR`;C2> z8lKut6~LjBr5+6;_<4V_`QzKO_4UEj3ms{+)%`UX4cZfE`IEo9f0G~g)xj4OF z->zE6gvpTJ2GZx5L3ZidAroV?kBBheoNUe>-R#}0+ngXjinAW8Mx-+aX71eC-E%7L z020wO?X@)`zIyx?x64&uA_z^>G);@eB4#VCwXi055n9~^u?PSGups06hvx#cxO2CW zJy6is-!HU7kl>yD`|)zeO4@~6vtdt zDg=tqk6;nd!RdBd2)%oDLA+ev6ArL8sZlL!NEiq_W};^90!(+bcfUA)c)4BR>V7dn z^R+ibQWlJGoATN??Zz>nC8U`b_wD1;>+3b|-7co?(l(Y@tKPvAa}#JF4PXK$77}R! z6F`Gb3@D4+c6+ipJK3)9_NJ`>f=nV4FtYx6m{3ThflPoCbm-DVnn(jCmPw=uHvyEz z?Ig?j&C~0>yY*rNNI0*y^NRa|WeL2JdCl`)?|U$>`gS$n?{78-e80cFU(fgZ+s%63 z?Dx%n-|o+yss-9`>|zaz(*%0SsDd5-ww32w0N^k<2f6yn!27GOAga7`T5fj=VVL4ot@iwE-FI z^osIzPk*Ur&RK4Bl$N%E;<-a8Ux+VUy?dWafCgbF2V8B_*`W|kh` zH3gE;k6yXA(|5*WDV_rhp@daA3HTm|_FXU*e!dc@)Z{O~(z_I3Ky2jm1FVm!<_s6C z!`q568A=0)8o*3SUKiE^lzMhjmBiHHV5Tz9rgBbWoDW>fr7Eiz0|oSXW=Y^hPKG(Z zFmm!y&1j2RotTict}wf1^=OO;!upbgxy;;mK-ymZm9Rf#w-z&q^d1DZouHqdslp{U z98;k@+PmGW22p~Vxd|Hj;4eeO)<{1ayIPVopDFB$BpY~3EWt@~=vxGrY+aR((LYh= z6H#FAeWmDSxERSzB_9jRr|L%>-|B&p^EQ!fv% zrAyG>y&#cgAVRNtlW3QNB9BL_w-Sh}5)`J1{Q5$1q^1|0chzUhum~Fx7$OI1(FX7S z;_;)iovQ?Q8B4_hl-eguL#sH|C?b@`rw=NskA+xx_)-YR9B$Vgzy5s?#nz@pD-w&< zd8fZ%?p?u8+RoEG3KxSeRcDCE9;EIo4cexkz%iX;0DylIU~A^W1FVdTH`LW znX{s02dPyN8H6>sO%0hvJ(z*gx0V=HrWk+#wHK!%CJ?!E#7hlpt~3)6^}Z1_YJ`Y$ zpLH4GsZ%G#8w&#aoW{qw1p*X9IASZdvRDmUDtL*YbZ-iCN;oKuK4acVU9d8*XJ51) zYY>4Kf^)*2yr;&V=b|5hzC-AK#pfmML^J^aUJ1+qT|a8O6sei}Rao@6jsv))7%qYo zLjVnc0lIC+^wFeCVO}^uKEgpFD<$|GSPm<^Ilf=Mof<~Piqy?xQp+n!sz+FXZG8~g z9`vgRcPFn7i7lUnfY{Vf!R(N!08RkthBCXJ;$i*qo6F5Yp8Rywy3H?Hy8Us7*B0M5 zyA#ASbgrBN;??7u^N07({(XuYKmzBgXS`jXj~Q{uC|1#hg@xem`2LSC&!7H&dU&}) zL9+ayaA8MQc9=jwnxR;w1QD>who{&3Yd(FmZuZb%y(2(KZ@SK%dsi(z64n8Dh*5#e zd~tk#yWl6kA44}^BBD{Il_Bh1J??VdZX)%D1P#c4Dk4qqzdV2R+tIWEZ!0E3f@wm4 zdES~KfXF}%7euhyz5Ms%)m?m^0s*3GXhp#T)zWDU)^~1$RtPhBl7$thtQ+%xW#FQFwpAn45;`NAf z^4mUtdHwpUv!}nE?%mn%O&G3TIlVL@*gRfiph!ArAp++8v*m+%|MiOx^5MzR`C_3T zZX*#Z4Im;mW>`8Cg#F$ZvPPeo_dYG3%JJLB=e_ZR_xp=k1OXeW_#43{K$NDFUQiT) zRt+o7qfOKslEA}PCx3kL>CH2G{Q6)yBMNX6bKwyJu#g}UG>=IUip+iP`XuYfh``7M za(Z^UdGP-2^G{D+pDyo2Cg4@q+83gR%LPs{)2s(?7T&;pSG0&<_K_&0?P7Cq`+t7( z>;L}yH-|TJyMKE-&Dxi&1AEQx5H;No^*;9)zzD}qh9};VYzY7BtMmVaho=|Q?eXp1 zQZv#ZgQ8zNn~*KW=-ybxd!6s`zYfp;$GmuaIo%##T&}nG)O8QRpAjbtte{4T5dpTu zuh(*ac)Pk^K6<~ne{gele1G4tbd{qpcY@E;{*fhD140Km-|P1z%kAB>*L&OJn~x7R zx8%TmcRHobCp()`Gt#%sAQ!8C+xX~cySG{19p8LB+1!zKOCbrMq zEyR!e^W=|#fO4=OP@`Jab9S|mKH}vg0@;riQ2U#_0LafaQ2UW>t5*^sCQ=~`xtKca z4u32re+wfl9(wqIYQoXnJb;AFXlqPREnFxgceVta&Xe*sL#Rwr{f%UwjYe?wW-xkA z2k6#->0@Ct{4>W4HSA(o+L6Wi)+s&;SM*E-q%mV<7}AXzO1%yoBejH;*ND+RgKj#& zKvVi{$XS>e^g2uQd%KDr?suU2BA`z`!R#CKh7O}VBw0jiQSsmok?auh7)sI4FcqW0 z1D}PNV&9u3;TcP{U!sE3T7t!VSI`(GlNpCdT_Q{LWGHGI%9Rq1lk_o&&GSfmOW!Yg z?QTZ2hRwkc6GN25PG?C6)X8KhYusZ85d`rZOvgu8?uQXnk<`px407JE1(V^Lc$+5X zu8H*&7l1-iP3Aqb`$q_IVdMx2#RREM+}iNgr?phdNwu~NthATUqD2iyW-ZNGn9o}1uy)Jk%!*Z;OQG-klG?6 zMVB1uTedq2x4ej*owzXMhY{2Gu&fg`Cq_4x9+dZ(DuW%%r4pmDCQmE%+U!m^1|UNM zklOt^)C7uUD@^Rs^(O+1ujfqMoV@r$tuEES7f4Ov$YZ{Iz;{p#-z+olZbd=WFL z&Jr|?*-s6%dDb2`$Zx*5ImPAC+r5U(j`C$3h^p&hIkF)#u*>FZy6gx@_xS0-X1ln0 z{M!Nbj9G|F;%=#954lLCj|+>S9x~zRxBWLiT)h77{Mk>(ZB}7XywA(bFKQ0-50GO; z3WAJ)0Kxvpy}Ld6sdv|d4_QNB4C8=)>KLH#n0nGRMUUA?Iz2;5A3)1XfPh|9aZ&FW^;0Kpta$%2sDoonsz zx{fgj5CGr?WQ(|M+=cfp4|u*?$q**d!!AY=slM%ZB&Gn}k8KRv&t-augWaqsc< zva2q^$tA@ez0PCt556a7yEgvF1$c%7VlQ0Vebpm+>L}sk8lD+x0-{kLKezntU*FV>{3Ji zxvl@REJzN?)6rLaEZ)~@JKprYl3Pgvz~$w~*-lW?Fyhh3Ud9h04St?j$v0@9gb5Re9&QL?i)#eNCQZ(2x?~D0WH_= z>H*ZM>%&O&-$DGS1JfpvsSuJT3!r?DagdBWQ{Fpn8j4++YZ|o&V z;_cB8ZejNbWW+A}cx<+u<-?F(Ka)BCv>8IeZKY3z=o9t|C6Hd;c;W30#(4R<*10f-&k?Aa+p>Nj_6C}X8X8sP*4tYsz$ zwH8E8QH@d{j&nOuvut3Dc1ucFOsm2QZ#CP|G)>M)nH^QmnKUd|Few!|;Mq{NZW)ex zQ)=Yp@}5~1lFpG(&iIT50a6eQ&;?Ly%)*BMEEqiCI_Pl!sQ?j!K=0ZFOx^*fftT18 zQzN~+ERyWsb?-geqQW2K!n7-Wo~x1)EfxbeGR8<>C0eZ+LAjIL=cl?Ah_aN^W+8nr0=VH6;C?G7|Vx?wICWw(k zoW$~6mMfi)T48P0a7ZX`?h1!1#t@&l|{&>Pp3OZhD~D z6^z2%wKK^z0FXVp+1u>BYp95>5U})iut~Di-bv;z+%xZn4o_IqhbI>gf7#deC|{i@ zDIO{+Gxxp~-7=cf#KIKBq}}AQfHz-%diJj)Rn_VLq3b`JI5@d8c0{=QTF)wseDNeg zB4VjDamn^(`7ZAE?q7d@^~3*u2s*|A1e~ZL_YQ=*?Vy(&;u0-!*JFJ{*9Y_8|8n;I zuSZ9p_k5{i^;^XVh=mD|*=Qk=6xJ% z7BP1gE2D3B`kNmwpa1eeSCQoPOH;s_YTuZ<8FPeNYbaFWlXQh4&C{>{{_*+WPhgX6 zXaIM@IkcUd;07Cn;$R#_{;gT zpN>fo0eQ}OS*i;&pu5P`6|8>$f*8Iad&R{>Mw69?o+nSkc#k}0{qhEL4e0vM69lgT_#LQIk zHzbJZBmGQoZ#DG@*7EGX4_^P}LcWnlza6yMP6r(Zo6Cu-mZ}Ku5ol_{EGR@YF+Toz z@68W4Z@<5M^3&mxQBX>tjp^!aYtl!(uwBj^Ugq2pW(AdJ9(~+F1fICJ-oYSHF>+|jMPJO(aPNyg zbC2r~GYiV%rv2;dbD-(r``spVb9%!Knb{g5QVRz}O~XJkXsP!&Sy)J>`}X>)TM>Hl z+y2z?;;Wmvr5+zrjBl-Ww!oImX;DQ#fXo2z57+&h&o6&Hoi=ds5&hNgvxSnkC86}WDlZND5YpBH2UBD^Z3j@Pky7r$S2VOUqck(4$LSUlvx@|1A*y&wd%5*AsddYLT^$o zJ{wNAf<0jx&P5{^!G;^UR7fxFiyG`+1F~;c72kFlHA0@WJK#z0Go7 zG^FEC4|j1rv*1V<&rv!ea}N??^rQ9TuAY28Tgc9OIRPGhI5}$0q!VauL6lAu70dOx zi;GHv;>5zxpgrfuvRGXK&kP$md3$^$(V2nJ;#ItOWm(R(uMv@plgrbb*Q(_d& z#hT|_1+PL$%-a_4=Doy~f13 zd)u=%klbV9QEnMXpSr3_k%!SUruP-{5HuwoC zj*S^v8^^J|BB5;-m|lP~lyf9MrYwR*q;F~!t`_OwtqQ0bnV?`wl6$Q}Wp^b94m#|o zlJX&85oE20v4o+ZDMWmQ5#cmVs-x_^W8xP4>P$e`n0ZJG)oV{l!}Q%i7}#3_p7#{l zwboBIwNwb})ZQO2nhGBXaGt9>&z)jmtPM5urW~&T)-Cy41f{zrLxw~sH+z`~y%*|%${QBVR!N=AW> z%3hk@=hW6D>m%MQ*1PW(h*KQf6#`OcJX!4LK+V2QCVc%L=Q~$;`tzQYAL1=DcaGb_ z=kOrMf|sZv3Eq8kDHA{X?>(>WFqE^9jhm8yX2%Dm0@aP%7pFJxzq>i&T$f!~z=Qo8uf9@R|SBHdD5oQF?`P0c-Kpy_O zUyuX6QS(zw$pk^PRP7u47K)qA+QcmPd^62&emwvBU#H-lzDBg!Y}6^N#l_T`c7J;B zsue;ZA@@cR0MPPgad@%!kN@k#kN@idFbYWL8B(psh{V3RS`;I9F=Jy4s02`!x6|{t zNB{Wl{D1Ibbv9`-EQri~W_4Q@WFn{q36jN*F+fBlpznWv`rqIE(WO6pcNF6;^I*AYQ04GdwBM$M;h-1{6}Z$JiPsFH$; z<}N3%b~ayce*L#k-~9c7%wqzqk8qf~zcB9CsCrOq+4rOO3vP!$ee>zZ-yR&??2Gfr zw4y-!5)$Zv_7H|M%gq|Nlpe4ctDwpO>uUK646$ zd!S%tV`!u`c1Sterv3eg%fH)(X&0xbuUNv*`~2$Y zW^pqezgy7+XJ1`)g1(SWBGV`~_L4wy8!Jsagx5#wJCxna<;nXU*~Qo2f8I2|?19DY zg({sXxNiuU4snHMbnD2KdKHHyLi^tJKjD1;9ZH1 zNHeYb_ZK_YJB_i;?dj{sOv0KnG?G7D`b`Cyl#*~Dm}#^A{`0}rUfYOtdHDP31GNN; z3#s(JUNOYo4l-x^v32z5{_ZcE!^@M^EeiADyMua|sghKATP2a%yD$PYHA3t>3-jIb z?rQJ;>x;vkTSUNv&j$x)gXlvxbe_?e!NkhTZ~8>$`_=u`UVCu%V0ACt`_9E`r5fC_ z?M9&o(o_av4FA@6-UuQ~7l6Cn+uPOp>o=#XI{<;@?NkizlvS|5#%+qc9Toulau5*d z=IHizcm2()N4vMZ69DrQ5G%1oIMYwu+bvyMJZyxWj2|ya7DwC}$ z;!b*t5CJun3R7nQG_-;9fCTXJ_~LpwKYo3@yf=9{2_h#>gM?yF0-!K0fjZ^^2pV%| zXcvzzZWjFLkHgj4TAK|>*k_MGmc-(g1#88aSX(O$(cpvgCzrThJ^8S^y7#iVGmO_; zne7fqXzpOYdSFRohO4iyVZD3$ak*HR%)<;)E7JEc?uEw4u0~BaxAUi0u-QBLw3yb` zL#AY{W~7@Jk(i*eNLN+?O@s5NS9HC1c;2QNwwWXO(?T_EZ)POm2?~L!u&Gav-yKdv zRaER_zA?F2)#f3XPpI%>3(7Gs{a6b&sZ~LSAwwpNfGe{G#Pe1XG8gd*md-_Rb{yE5 zziXx0;TV7wHVi3RkHV7oQ9B3=l!T*7NGYW7_yP%~bV#70=t^gDER75_Zg~n0Ap?*G@od#e4ab(U#_}5>V`O;Z;SjM9DFVe3EKzIeC#pG`0pyDXFPKbC zDNbNhc|>~7mjBSYpVd=9!?4i{Fo|hpMrd0elcY>gYNnjZm?T;cCGa>Bo&D$Vkd1AO z3`2y-0%hhvxt9!BVCe)+N~ETs_fM!qBZUmGsbnW4ToCygnStUEUjt72T4G`Dg-)s% z1o!j1q~Cu`LzK$o5;I{Xh=FIf>+%BU{rh%10kU9H_9C>xrFCv)GB5QiNDfPqoqe(L8hK0o^Dr1Ol$o@%v_{|_w~ zsD&{~S5SoYilE%@@rM`ZU;q6yte}2xWQIs=1fV#E$~;u1WQ2kuEb~JC`0ncIoBh2{ zt778{qdEouIFxoNYn8}J6%k;RH(y_$9IhYyc8E0R#6_upSW_~#y?1yE`WCfc)tn5C>s$=Dq~xpWxmrv3ImKR^F}j**cK3?yiKreeP- z1B}c0UnB{n0v5T)-@d>4T6T{Iv(|;YCt`Q~jzqm6E`NKBBjx||@t|7Mm?zRoo7V8;_2Ez7o&Dvv z#lfc?8{Wj!At{H%!rW(V5reXxG)|-uA+^?|%Zp!*e){(Fw4viSdjP`Slx4|5XPu%G z0dzH}2B3kN2z$3whp+y7|MkCJz5em+*-t0b6cE$JDA6d)(g*+=P1ZeY>Q)q%)Kf36|byAax9qmY?26T$UG;57j!6p-W3t7pr@|Nj2tkN-T~ zy<7nTFJ<0zAr2LA)G(HDfyB~@8X^e_gRK_o^V3%czkPSva5{dshX8%*Lc+|ORqxV` zF6y4rjy&&3Yf~pXS?=2!08|^YceDKI*#&+FPkuQj!JEhTQe@6VZJswQ;>~?<;T|I3 zG%d6Nx|uhEu;}#D(FXqG?8Sc_G4tiucTDLL2$uvqRfhv->i0Jjc@r|>$5oeaKmY9? ztLY9tKfCT^*UoujX~I)<%j_$2nTg*O?PiNJ@~0iSd~x}IeK=jN;mwcNcgxN$bk+ZE z)+o0d5~Bg(&F$fR7$$kQ%N_3?y`Ptt^zJV=H_JKXrwInp=2ybI17(`O8>4*K?e`>) z4|_Yu_upS$?{-0e4)%^%fIT1rGB%;OVzy2y4ABjfK|b%#7bM^AZRmVj+$}F2Ue6Fh zHG|aHBS}*U7kH34b4BFS@%(uKn;noV5aM~l?lDanpC%ZyLookWe6$GjfrHz{`O!xG zJB-o^JHT{1t!C1$P>^#Y^D2;PA^g?b?BaI%U!n`Q`2YSjprZw?k4K!C-avwixIP-*%;7tY7fz(fWJ0&@Ay?SqTMM{oA0jUeLGBYoK& zEd+?+wz2b2b@6(i6+o@GKfS!!zutZDen}e^_1O0S!&&!%7z3&v)^WR%%uLjfu{Zhj z;_B$;==A+^+5iwXK@lCt_`MOEk--!zpW}K&cK;Z&H2(DU)#2sg;b+3mEYkGE%JKqP z1Ts^$3MP%uHBSr^p5K|Hsq82vs&Ro+FV>&YL%%6_0Pd+@}zX6hhei7f)*k&7E7k5rq zQW7Ne?7lnPJo@9|{*~&l(ey+_N6^l5MB4pOIP!aKlHC8h*Je@^Etjh#2KST7%5?Jn15=mcsg z<4~#+msp&ZT^QJGqUXa;2Z!rvT5Au{N2f((;%MDO&A9vq^9cY7!{LVmykATkh9Kca za3W?rmA42(G##FTZ28a~?%%JbF9PFZV8GdL36N0j4VCzqAbTyzeq^zDxDZoyvC`ts<`+J zbJD7Vd#E-bpj`>=iD)5fc%ILc1x2;1|pq`3sATLuh!GeLN8gI;){Gu4J90nCy;sss=`)4 zxWVRdy>q@q!a~^+Qxs#k1rx*&4JsF50U&f?Ucmk7-QI_lK7c}sDZH)_SeJ|>H}1It z4`j2HtLHZle>qCRSkXkp7Gm!(23CLyYTtKp!u3IiHt(MAqOn>${|naX_T%yQ4H zhfK~3eEZGk{i}BTdQT$gEtslB-U#D9<|~847B(;B!;6cl^MhXxm0(`N(t@gkUN@A8 z2`AeU`6vV7>STTM@bc?_K8848K#N8b_$Z~7E#+F#2R#pQ7t;a3X34Lfe}4X^?_KN) zxKC3uy4#FK&WetJzj@ZGdv>`W^$wqo?%E889}Xc~q;{$8+=(Q+q8L`VAk>OOLu6j} z3!LYdA5Z_Wi<&DOpepU$1s)5#fjHH$Q{=??Nt0E!&HTg@wc{U7Jg{__x_xerP8nOYU{V8DS)t_dTdRTMYN5I0wJTZuH%e{=ai@2B0fCGOy- z$5$qHE2(@4sQ+%r(c)n2M&buRnCABLqub?rdiHK5DDR$rwhS@=M(LAA4k5dqtsx4+ z>_ELPY`STH+tyzltq)#aJ^J;aFZ-(>&xhkUWXcXx@aV_9x-=CLqpT4=Ec)SB*WX^R zZg=iqzxdp?rms(_3at!AcGyY?*kq5sX9WMn0Xx7N248(vU6*gxopaoU}3&4z< zj`G!JT3$62pj&wS^AS{-F#-a1?#ZL|i(q8S>a}%l^LmG$eq0`YUZDVP@buTcNMhC3 zKStkOH?Cn&n!{S2`225YKfc*L{Io<7Si|w}dzz3)UI3@1F~p(d5wUKc2avnP-TUWv zKfFFV{J2zy?&@mNA0Av;zTK*e{Y_pbHM`uzC%#hc^(s|gqgaCxV_BAe8B#0{zs#Pb9*hSqyAbicE{ zI$A$}eYA56(mN|D#aw1;dkm`tF{=bABn1@pDmA*>-+Vs3{rdL@2ltHtSh%T5DWp%< zHPsKRu{lUQX2*5`kgF%xXUChDzdqc%2|S9R){J7meG&kj?N<+PE_V6ZZznrz*H^QD3b*+AOxy-t1~v3* z*N_V$*H3S+mh#o>gVkEHt38H`KxyTfyWeA4+!`qabn)m4=bcAy_f~7zqTHqkF2mQP z9M{qQ(&t7Ktd6esSD$v48*TD+69Up&-Xmzu<1O#HEVCf}4SF+B|HH#eG7i1J%^H&4l zJ)L|!nQj(S4^M#B+e&T`>)u8dogExhboxNSzmyF6kn^6@knkoA*>KX!oYDzXa^qregd<0Vi=HUF*PFY^UQ%A z#xeFxH4@;1Ok2n#aPsO9*(Jo9cOPD@SUKD?sw$CUo?+rhpS_Q}zC2vBQ}tY)Tx(kj zM$EdkfJ=lrEU%^nqxkHBSX>I~e>H8~F0+TzQrMYJLSlEe+3JSnv~gZbQQepG;r z2ynvU=EFkgu?&x3BBO-xDN#f~X{odGmy!aW$bDylQ{&#P?Vu|d##pg5F_nnwX{uWc50%d=H=Kh=&~#5rInV}dCoOcEp@S?|%!>E-e7d*En2 z-Lsrtz?t?MJs@-neuOlE0OER=E+2nB{rMnUQhNU`i;IO_)y9lx{QFXY{e>!(e2KQE!A7D}2Ni4DaS`+jD@cqXm@ zN^kh_!TN4*^WfJ5z_2#>@tOp}Y;zEjx@pA8xVCq9xMzI#_P8>=viP6_BSV zz4csoE*97Ot3ST~@YPR`!a%{PO(6_w(bO zyPW}kWNdyFQDTU&5TN(o=S?IiQ)|FHt?|L@!#}<~pJciFY1xGff!gVMCQ@)EsQ_DJ zA|!?ah&0QCpLgGWd&NIqKln(*hEg>?7Vy4 zU;Xv-^S?i^fCaI|!_svID|vc|5a47AVHV&8$F*_q0{1>GfByH&AO5vmUQI~2!H&9J z6V7v&Ni{MQ{9uM~aNBmFe$_VjM{f>(dvVd2_CD+YLT}tbqzNK23L?&}1EmezfYSs# zu{KZuakH2iWO3Ji{ptqs`q9q^-01T0y^XIkUBOy!Qan)M9(BGJ@NY;nEw6p`~P(`F@Ao210=yN6p+otMAREg z1K*jgc;nIr5tMm?x4ZrBo9qAid530t`)^l$l1*buI)ILmYtsY)V5Yn@IHUj~_4ZcDr7CT$rz+HhFKyOvy1eqTQ?s-tW#G`N`g9b+h>6`-_|183h_* z7a_6QgWXSTa(~8&nzn%&lbV`4$mhNF24yCmxOb3?qmAvE9&Kn+6e;Ki=-_Vgps+E@ z+vD|3lX)RX2n*UQEpc1#V8$R55O=NWbehvwjy+`QO)iOHCY3YX18YB0FRzPxTJS`j z7)+g~Q*s^T+F%A1Z6maQ4@dLjZh;6BFCM)<(ux&oX`{yeWnQq$CUrvo!&rGc~nna}YTr+}f@B=_(VO}hZ2v@te=P$3GygNdMHn*q0 zo+`Ky??H1FljbR+f6H#tx^D{r$UM&?e06-kbGZKM^}aUC9{qfvR!|u3m*N9X6$P+m z%1Bkd!{y=4!O{G~uMZc14E*5rzGVS1w>G&rj$%mf;=xeaTjLT5K0mv8c(eG+zaGH4 z_jx{gvlF!exzVZGsiY)6>$F)=bOZVL^#16segCfqQ%3;VxtdfgS|-227NkHoN@^U* zJ|Mv7=XaY0fBWC3Q%3+;ttYRdQG+rUKp~FxI@#!H-Vl%p5CE@UtcmgIuX}9_+ON=u~0|-98xH`Ppeem0Anr(ZfS=>!2;^E5} z<6u*Q+3W|M5dnlBez@Jc+C6={Pyvp|oonmWZ%Lf>ND74ofCX%@A&m0o+lzxw`zP;~ z6JxM*R0Qf345YOVYaOV25FlH zSjz6z!L!Td>JF($zEyAQk$mYJ&1Qts;`F5LX7}4U+x_~}?qUN34UH_o+Oxb@dqRuqP(cY*1-7}nK@P*{(G6w<(-6li; zLe#kXYR(WY5QP0t`+I;mI~3aqB@#qHB<-9Mk?*D)F_+N_(+k(hha;JLhE)l)X<96o zGH>R2PUeaCK*jH)*a(RxHLe1J!10HJm{1_vj0q7%-4^ON)ae^3dZ^o#7NDy|L$4Jx z?w##4!fBe^IBz{l)k?%_Cu*%V1n7NMTPO#a)>?qLd$|gwZLe(6!mH1PGfqzFGg<>AGOX ze$Q5B5doeyVGPON9K~jIkUH`J&USkmqTdqCvzcp}H%kZ%B4GIykoR*y&Q^)ZZ92+H?TB~y*MI^puubEz)fK?_2c9)+)$^DL;KfgXYn|43#02ZPcx}YxlVlfNY z>Ze&uk8GCs`T6zErXRmLL?9RtUr4ys-YaYHl4l@8VZPy5XT%Y zki`a0U+=&D?rQP%&GDN9GfwIn;MxTCNpD#H3_t@c$`gS$)A5_t$Co#szrA|+`w;+X zk`4|ZM$jBp_IAg#icKma0D=trpBI~5eD~ee^Z$JeCeiGOO^tP$NnAzpdQoNRWRZCi zzvt?jPu}mpdU5p}Vef3W*k*M;*^EDp#Cq-U+q~15M9>T)3xSh2yRW}LZ!&%a}-QUn1P7S@+*j1xKHE{`h*`zWMa*_2bSm<3@-hF;L(-1K%9p&QsTRUO?-^J~OqZmYiNlvF??F zc|m{d^!u0Ze^@_QUaoFV?)pNz#yl@L(*RtkD-LnDb5jp=m0gg0IPRA?ADpfCE>?Ys z=T9#hS?OpTcZ5C(0`Mf#fDpUCmV`KaY88vzPI9q#fAa8l|Ksj@r~mQtOc(r2qC+U_ z^o42z%`(XX(!hrpz##VxKJD}ek8d8|9$!4Vd-LcL%)VXjit7Aua5WZKTP$ZL_`Eyc zBJ4iB{`TYQ{;>c4^1L1l;7TpmB?=J=14&AL0H853$V_}ea(OU66k*|u!*xgN3rB-q z%RGn9g+8%E0mg&K+~k_%YDa(o8{HgtCZRQA=B|WR!+L#ejQ!Y5Y)9<~GYU(i-UOi| zaMNrTQKrLmJ0an+FD7YT$#B@^LM|aFv&@&z`vizH0?YpA9cYMmUXbf@F!%+Ad;RKtvmP`qL3JTTm3*)g)PS zk*Y3|x-A_iG`ahppRX53=liW;zweKKJK%298W)(5XZCduW#_n@#QrnW=9j--{q6nn z$@@J<=9wS-zVBlcQ@t(PWCRT;ZeE$H{+^lpV*dH%-G6*IRwy+H>|ZUJnE>Y*)dx)l zVG};n41`3WH3H!M{{8ExXMg$Q^!URZQ_pX|%1||va9xi;H$B;2HUQ{$e<{t(U zx;wmo|LFGnUmh=Rtz2!4HpA1wGiys(644l*NJTm8aogqW<@KkN`|tj7y1ditmCAyo z#f3j27tNW7&J=ct8naeiXU}gw9^ZZYj|a;emL|T14xx;-Q>j;YSDn}&p?mf9SL?H* z`NdBsi**`R)UZAj+eSZf1zDL}J8Bv3AI#S~{QO@htBs`4PzKDC*GSPqZ4v`&zn8yq`aH*hqWx~>HWNSZhqb_~;>Ug?ujbnVTiV~{%m`?L>Kw`#z zVFZ#O;9@;3*OLOmeHkl_zAY9@5uWF@a3y$}tRslBx?+(C?`G-?9RV_X-n!D2Y+C@K zV6!B1CqyP;aBH{NM3BI6_%fK0y`ZX}}_HK^BV)Mj~V;BJLP?&+C`wJQsAOUia9O7`d1rTw$qTMn5F!S8WESw-BG#NtxGrLaV{nTNWg2C~^ z7hM`cBGRA{T7$zM1vw#*A@e6fZGsT~KNdTdR1v23Kq4#M{4n+nIS8&4wVheJ-D;z< zgOnZl)TBg~*^3`W1)gVx@}q0^jXR74q&gIi-9#^Gjhe+Tp-V=S^k>brA@|Q6&sA?P znvvD@StQEOXZg`y$J*pgA84q^BaYKGHMSi92oi^f)NFSc>G3f1vc)>u>7azd04ynI zIq}MmBfWc&afv(Qgmp!WsMk!rp` z<%iT>t^Fuf=q%Q<`n31<>+@%f%kx#{StLI{gdtJ#aLxORX4ABhgZI0izPg&8-X6T$ zPa~IwMlw?2*MOi2eGQ*&ylvf4y6k?QJ}(!azBzyR`vX6ulN)R_Yfn@mLz{DCx)~x@ zL_`)hFrDpwe17%xpQm2blfAnrs=CUhBGMTEV0kYmZ+AaFyIHQ+%g>WHV)gGv zonS1<_*cQRSafKmA7Qz{2XFR2es#Y1`u6b6q0LBygoV;WCxWbA74b2kp}n+Ij;dXe zgHP?#?()MA7mt2A0szpNx<~}8`MeiQXllVdWC$>`KQI6+Z)J6{`}?=o-~Vg1yjud% z1~*n`ipurb>Y0YUbtg$HC8r566EJlmLW0%p&hO7IckWkvms4N1%fn0G1=70_qPAH4 zT4k}D{s2)3V5Xm*+!0)z{C?P%cztpg!Z!iv3(oYi3LuNYly@^3WW9txj(GLm)x)0- z`vR`Ny0>6n2iuX#NeDNsH>BQ}TQz9eWw(ReP4ae+>BZ%@my5n^@4mUvwuROevlcuU zC$}k6lvmO<5`{EW3DzX0}oq(=+^ykwum-3tJ0 z!WJD+^XMb@h8uuuvU}}f-Z?+LFtPVqKc$~fVF-88K5N&)geL&N`*+jr-UfvLQ5wuj zf0d*UqTuRo5|D*V)CrPb& zI7eilFv<1Nrhk32d$~fEgHJo(Tr31w@8z!e69Uw@Jq0a!@{6y36aiqAgNK_x9$h_r zwJ$8otM>dKM~DP2vLkA^ff_HHr)hBC)#*d z&nbbR;Dgt@5;qB-`@{{nHoWv=Z{B$X2Ko4Wv(xGOzaOa}cmLCb9zlu)*i@r!HG|r&*|@i?8kO*&24Eu~G=xOxquACWKdCUoK{N`OhO=ZPNyE zMzP^oj)F@lu;0y*ooWHlJE45|?rQIbp1#_P`QXF|Lcjo>5rq(2YrS{FJ95f=Mce_( z0EBP8zudoFJo$YOLA0h?Ffw4nHqSG%5H$i4VG_VJqfZ*Hs+1yRkk(%P+u708@~c1g zu}jA;ok@IZshhLr=NNL(z;nQ0>K+{;{_w?;bI%`A*5h)#+fKY(v2qLVtoQZ4n4ebJe@apBoqxVOr?^fvk z<)ke8$BA};wG#a5Z_sh|tq{C{jfKi$xJm z$Q^4krhd}HcYC|5(YtKf%1du!(ex!?ufx zGg~XC$I9j`#{H1y9M!ADCNc?w6d4>Mv~b4AR+g}yp_hKHC6S633#! zG>j3n1d&WBh$y{_tG)@zbA+0{jPqur51Ej-*s1{tJpeKiAe;oRD1C{jJl%!3cVU)l z{I@C*Apm$Fgu>hbTPfZnRn?`n64Wj8I}E2osn!;zp)lWwD1$Y$$ zfdHs+5{Md1K-_!ps)a!$2W-KsQ3sEHj}}BB*+BOLS0kW8p$lP4jX9jD zB2r$_ONOSkI{G|AQ^lIw`O&x&h=dvy8bT#00S-eeEe-|4IqM>_+{pgN z)!A3`;_1!)yL}TC`>@5#B>>m}*qafr(e?0wpK z|JBvvj&`p07z8FZ@@~cy=;9EfCMYtQUX!_7E*l~v^8~bMzdgKP$mQ`LM?BHZ;T?mp z!4k=dS|Gs6mW~C-8a3qci-0&c{Ozbu-<>`A?O|Wg?a^)L?)F+iKxIx11ua&aLv}H* zrvBSLX0EeLlE2;l1hhl`sz9$Ndx=LS-=3BiDv+W z1_;>Nrr9KvOw1*AYYn{(f9Kfl8r5U}-WXUqI(M9wR_RNYtfY@2^ky?w_9>(k)5n)ipl7ISS>w zIUyRgHW>;;%2gU9@O&Nl=3w(^cm37J!`0;ykybbG_3x*Ir15R+7cw6>Q7B(RVcK~H z#18%TpkE(dzWDWc_hy9v(>*+XeW*nad(aq}lEI5cNa}n{8yMmC;QsE({lEWqy7PHL zL}EBRTh-hU1qDHAnnYX2i*03C%I)!d{`mI$SBLwbRscXVtTrgpoZ{~GDu@Q&~s`IkJDIyb}J-xj+z5ns2 zqrFc}OOnRcS3^XZ#SB%uS{DIm zKq!_?rm>%(FW}|R$5RJmLga;@8c7qF z=>?wlDbx?pXmut>sk=1^xI&k5$^e*?shCZ<40kWKJrA z-EGhz*`|N93LNL2hm&p?`{%o-Z+FpnC2XP(RVnI4KWaR}90e+phMepqLV{1;9UXpH z5=+nNspR&D3BSO|Dfjz~UKq4f%q$N-93OpLQg{5ZRU*ELa8~$OnWJjaGQp`<#q`yy z)8!3ecWH!u*O=4VqU~?)tk>im5b50AzkthodT_g#5LNu3trj)Nm=mf|qp7tv&zre# zN;@G&d1$C>#?#9KL=ZA~U%BR@LX=u-o^B-Cy$Y75twr@~ zL>Rqx!H^I;EG)HROgYcQaB|qNBaNVxJ??zgzdWr0$xYV2x`}LW5x40=fx2OhkC(Ju zw2tO|VG&mPxMe#NHoZw4qxe#S82$n_&27y;61m#~h1%*_0usWn5fmYh( z7ZeoCSY!-CA%@gWU4cFXb;VrFj}>RGE2_-*O>V~0S~Cd>v+-WcH|O^X0cy>jl!&8c zRIW(kD>&VMHW(Ii=`IFCnVr8Y4kTkcmilIGV{exqm^mvfH~|u}Ar^W9O(8Qgo3qM= zxuC8-EJTKE3iM3I@m&DRVn5Su>R!0%m z^WQo+u2#m(4gltksX7s(=(2$S0yTg|N;GWPU3JI`Vev(lB3_LG-yDU)-t8r$dlx#D z3nD3sKVbo6q&BrCtR?jfZ3=IQ$MzE3@Gvnx0AD>*-mIxuRz)W^QC@GInKwuyOcN2cxop(SUoZj!> zxAVuFj}Pz2wj@kuAL_1J{OA74up*NX1mUX5ypW@Zo8=8$9r3%TmyzHTzXN*lFCfH4 zY#mrl1_Zoma5l;1{{0bfZ|(eG(~&*Au%K*3kh)S@qa_^3aP^>FH@PRcUy6Wq;EUCI zo_djX0SeHJbwCyAZ`tq?5rCOQ2wI<-OhO{mdSmhqnI;eg3zq~}cT4Knq{Vw5qtX@e z^~BSR&~ajT@Zsogb(c|XT3XNgK3Rh=D>TH=P$J{qlG|6ed(f9ROA>tY+kq?!8coG4 z>bx+_znwk~sP_3d;oXwytD8NPoy%RE<>BkSJbkoBssU*7)p?cRe|yR8vz;KA>^bv(l58oUh0?d4HzJQtrA|;_glB6SJB&DF-Pki>x)w7SQlRtLV5WTu1eHXY>!t#BM zDxF{g6lnpF7GNUUtl<3d^|Q~r58v!-p}4%mh*%~cvIibAT4pYBM`M!6-QoQ1 z`PJjMd&i%ac4)Amim_wNhB35eo2lwW)N!_Y1-ajw-@Uwg{AT~~!xFL3ZY0LSYAZ(c zbdd~|Hm(*Sl6NzJxa3o{?S z**$o-w-f>b>3skb7Qvb^U(*(3gfDZBShxT_eswU3%9$uz^ZM#V{)%90(_&f(3-|7Y zoYhjsgl2gBYJVYmeJAa0krwd|S0ERFXlO%eQe>)>mTC`Q?@^@_h-sY~H3JcOOLw5a zm|MS*(j`QM<>c*--ntwqyHKs9K|MzuG=p5BD*zL%g*}S65{UlgaDE%2im}2p= zQH`jq1XO?*AarR>pPtO@=O~L~l?-JPLL;piv^c8xTdSWTx$p6zVCXxWsK-x0Gef9h z$mmOfi^{{-B6Ex?;%<(3-`&9kCIa>7xjf+nVs7aGBA~G6xpKk98ElVXNXy=!rljQL^*2XOXS9bN)8TgodQ&K6dvw$`a@al*Fg@s_?A`y(v zEGx!bjsj_uM3(_-`#a2!2Jm5yRQ7DjqbGkeq-MwMJoZ^T`vxxQc^LZ77quQ8}l`c`V+lSQx_7bW1Kn*B8a8Fsrrz_jRrW5fM-7)G0cO(`cs^*b+PDKNTVGLh=ueLQCU1EZEjGT4%jn#w5fVce z4S{6qB^6D*vY7RER{6^Sg7lfawItMY>E2LDFKtuuAgf0&s=jF4qX+z9s3pS|z!aiV z1rY1c58re-K0V%%S~lSYc=^IvAS^(z8c+EKl{$J0-HC6mrxU79Jh zaLL>CYz%GU-YB3JporLAeJUO;0RnQr;6I+;(~j(a z+(D7O%l7i_2qJ_jzOe9s08np%c2NJZcIVcUynlMVkJE!c4nc5n4^MwT?A-q(&d^d2 zloJ{5m5|8uyhMI-{ryFI{L^vootPiJ-m9V;dp#W8ZC69JX_*tyKHz$i_2Y~0&!?|{ zc|agb!3Xaq5A_6B?~CSNfT@^m^k21t0=%B&{@LxLdwllmDRe==#Vt>_3lmPMc_tjD z2*OlyJiWn02mtFzuAbcN@%;5qCrWBs&IB6=^9i$#QxJ92u5OOb;&fgVksUawS~0s@WmEwgDuim(g>q^>K7tTCZ^g=f#N4sPke z>wR*d*`yuI4$(SEmvy=001GyBRUq6i4^563q<58fV9dLR*e zvhCAO^XFr9LJ=ycQV{0_et35E_|xIZ`+dbFm#;6XA-Mk3Joo zyxnaPr=(cKD3cu1U-@oMjTMuq0HDDB{qExraP(m((Pbe>PA9f+?u34zl2t9X7j^{P zxm`YZcX0TA5u2y-;|w)yn^n;f7kXf_|I~Id?>&Bx2OkzBnCF;O8~}zleh@qtY@`0> zJ6F?-UmomSw>+3?(U^H##n}Nk{GUFKUfxgN{B*j!0D_9VsWyffaR+P-3nE8_a>5{O z!(adNq}_8SnYcqLXatFyWKjX7WRj}H&;~oMu2qwu`z;lv^bj$uZwkhp51rANLvoz1 zw1-c{q#k`7m)`pIzZhW#>yT;q*Wgn+_G8QK5{M9(7%X*eZ0Z&|ZvUC?VZzB-_dZII zLM+u+K(cq}GIcw6A`58h1l?MaDpz#s1Y@Qnf%cWyMZ`pn3{t8oNE(C(3l0yfS8x5^d1Hby&Jk*La1NX*ELk$|xEM+g?am{8tP_V4%wYRpg zNl!*8a-P6lqr1@ofVl3oHun51wuj#bO*_wU{Hw9J|xj>o_ zNhK1@+x6Ov7yBf=Gzg^fQ2mbX41CT{B4XRB8zQpr z6wsOCxw9qRJG5zoAq@-R7mfE{B1EOEH2-w5nR65?m=bHFt9lb~Xf{ERkOIr$7AHtM zdG*MIG|w}U_38*@o5q%P$kM@djFHTye00$uBge6G(vc!TzSKl9h{hPvT5qv61C=m? zr$AU-tP8jTyJLSYTX1=!=6oLK;92Y3s7RsQ0o&hL!S?Qi4cHIFUaDUf$2Z_bfye5R zc4b6_)w^dsV?yW%WD*k?%ts=^b7y4bMkU)Q-$4sh5tl)Ukz1f79cH6Y(}6?K5sZK9 zSV_#wUD%2eF11Yh^7KZrCyYZC?NTH40J$fw9Mkc~fq+P#XZF5KVe5$h8sslqFB`9k zNhR38MK1#-k;%@x=z)7*Ce=<7T{8^HjCG$ukf^oL{Ymd#0%;^{S3<9|&0o)bvr+V< zTYTmX0~r0&jiPq)WN!uSz@rwQS}O9~rAs1$$l~kOPi&6zLN(fH-%DY&l*Ct_H=77} z5CG}jB~D)TvrubD`Zzmcv!|qm9rxa6?%dfTZC#Pc{?)M_zd(tMHz$5)u3aCGZVzvn z*5*W@DOo1G^1qJWp~m8e1y{KD9JzKq{#5pq!vuHWnE=f<&mbr{yV}>R#0s~uA4p!7 ztUD>zTJ&sp$igO6C@g+<_(de^%(S;hM`+-81Gtg{MJE9cRxo6k-y7Lf#!^LGdG!?+ zECEP;W1~S<@`Y1`R!&O#@ZB@+c*2LN*4`2MT=W0B{-?M-(L1a_}s=Vq@!9Lvbv zXVI4InV4p?r)8-*VQG$|&RF7(;X8Ir?0N5<#_VN88@snSUmp2Un8$-J%k9|XDf#+x^1l4KN z0|bD1Ay*IYS5trd&!edm3ljl$Xk5iJ=rw~;Ml@uM43TR~WYgN^qua$|e*E((ZETBe zsk@1gU}3=t8UQiRfY4%N_p8o&A!lFREEfFu=ac3fho*{;C>J{jGe&D5BS}(570V1{IqxY zd51z$TBe~Oap}&Uy>355I9{5uF`RxrIQ+cRLhGy7=z*7E0w)iY^dRa2h9tyAr?1|f z>|8CO_u!c3iyBQpNY-^ED>ZESirfD(Ho8CL5 zdj)XKNAGtjqP36+n@|XXvInP95wwyUdxwB9svxw@aQtxxLTw?1u87$@vf3|DDt?`a zq`pQCXE^?_tC9dsvCqN`iw`Adm^|P}L_lS3AUMm;CFNKq-YW)hb|F&Ql0!sTB}n$Y zi0oVtbC*&XN|u!{RHR0RWi3ASOwEE>kk!;FG7Oc6X(p1R66Q7~=Jv84pi4gO5NPB@h+6YKK*u!jNC4cZiS^_-n?4%E1US2Bg^YWh ztr;yh$dL^asVxPDpyOxmea-B~9GhS_qCN{6c09j3BAn-L9S1KV6q4=%$}WHsY18EO zyaj8K@6ukJP)I*=^64%=dy-u4h;je*c6%7*l^i5N+SO$gU4)QonM?oypnL3cDA^k| z9kyfXr`L_nM+u>bA<;~9X2-Z7`z_pbvTaKLl&&!Z)tDgV2nsl@wV^IS40T=>nK(qH zi+2W5N_@4mnbkXI;T!tc%{Z^-UDNVN?=t`(OvUE`fifup<5EQ#YH_NCx?AZbwqKQ~ zMHo&7ivXjfEv zS21ep?A_1NxtNd;Dr&8Q`D^-o5tx)h+)#9`N-KHpHOwq_d@HS!q^1{L&&%$%l67c9 z&R{M@oU~@!DT}C3COdQ78FdKn5>L!R1g6j7`^_k9dLyh5GjpY!qyI72sBdl z9GWSE%{Px0RV9o#Le8yqxJ51zmJV}jG61YA#KrL8N)`aYjI*)VT#xb~@Jcxh;--a9brf|H^*DaLb0KOg^!!$+*n`{cFWwms{f=z*PV@_rxH_f zOKDED)|P}>(yen?$O_>pYSW^%MuhX`p35d>d|~@-QzoS|T8vT#3#62Y`wZhkaB0_(kLpEh|G!4um!QG zG_PkHc`&;q6~`~al^0%x7ByxvRRYw|4-&9=M~pcGM1n@?U)5KaMaZXvSRC^u&bCI; zLIozK6UB%jI88F?n`v1d2!Oa=;>DwzHf_H9{b+U5Kzyy|D3MBa?Scz7z&@5kWKRYO)Vu(QA-AdB<_XWA+~IQl{HG(DHKQw$ip4dU+i&>E zBd<^YsCfbBkMD8SpZ#(?Y4}l!qOg>W)#?0aXiNn+e0w)wKWdaOy)2%NAoI zuNqPc?7Ye$04&z<)$0=!X>;abhT1vw;V#}`sMi*S%bN88rWqc**%y)4vyE*zuPg<6 zs&)o~A{7b4j(f^v+Q@^qhqfpA=Thr_ivE)t;7$>fgPJ<|Tw4gzj?E}_xZ=_aI5 zcWO?Ydnm|`Jy3YL?QA4O`QC~L$j5+CC-7JXf2Qf>&JHNGet>tGy`BRDbpe1dWg4Q7 zdMuziM)Qa&@nD5#IBEl-7+$gtv5~aKYF0geojcoSk8lJrDGJ3bE66nf+iC7aG3;{v z4ji%1X~r4K55X~t*Z<-1H1WJj^j>5lhq4;ZPa)Pk5+@&myX9~eMt~3)+tnAdT`W1P4kWicl*^(EJuKZ)hm`R#fm4JZ z+lSWzCUH;pfp}bXU`R~wND$u?LhzM{h&$tOON!T7{U8*X&ZcOyTtq=}j5CnOW5?wR z^*R^UMV3x#1I${8Q=n*qav zy6fU5pB@>-#=%KcK{xt$B5gLSCAStj<)DD+b;8uS)P1?q0KBE5jR{S|wB*woplF4k zM9^HRV$55SDwT+($9iq^jvMF9U+4TaC^7TJu}-r>3&172aL^#s=`*Kzb-0k5%AoB1 zuBODu{}t5S?d&Hq2y}LGR%s_<(Vir#6#%%;of!b;dE=fY+u{T{elxo`QT}=!df@6F z$T~Uht`hm-;O;`<;VP9dKZ+tl+uSkeLP`*UH4cPPg2ZA6rhC?!6Dz|es;wMA?y5C) z0A+NK&`EGjoh!`UH@*B;{qmHGl>%NcrEC;8%`uLW-76zvnEB0NSjmYNbY>rv9o=e{ z5UxeqfMjDL3h)BQ7Rdn968>QEMGAK5If2J)=-C~^Az9+xJ?*MQl5L3XQADVDqj}aT3xC#`Rj#gHKcocPw^%HlQW;#W!yvZVf zI09F~sth=ACb6h+4Dja>G$p!Gt5~mh5NhJ*mhh>x?4^WC*|i`t*6c~h*!B~tuMi}f z90|s3Hxby9VV7yML_S`68>pVo?c2ZnHTGf*tsBbfz8!vEE$#@4k)KM+W}OK`y|O`J zdm$p=YSRus?JV!(N0kjlQsW)2kU$m|Z2}@v6I$K2{qxnd!7x+QK~DTy&e*oza2$S~ z-vKDFyI$;_trjz49465)FK24OcOsOqSnEaatwMo6rZI-=@ooO!lHF5hlwaP%O2%vyk z9gU}mfPhoS-HTP*0NJxj$5hFS%{t8nsy?d0&`BW?!|G<)I_MvPg^ZBxn{+1Vl|QAHKM=SE4fXXof1s1}wG>p|JYGE@9$r z3P(@nywqvDt)J%k(BWURJ9$J$*DxCEFb?x)GF&TCSm(fE&Mcce#Y8cRrb>`8EeU{9 zT>wD3h=-WuJ|oKdpOW7S(I!(96$XD)@ti5d^%O7-tJXjz6S72UU9*RKkKiP`$!XAx z*5|(4DIZs3snHW&f{)XvVFu{vp3)rLBaVd%E@6hzV07hNgb>+(L#A?xb&rV!fp1FQ z9nSV8i~?b2NMYpj#6$3}5~JW32xmly9k52#L#p>7aR07&iZ{ibu(=wssPPR0q=)?w zYFfxt+GG3?UL6ceDKclMgcJF%6Ou??@exRqv{>*N)uB>{W_8di;j9{bw(o?-dbBm8ugK5agusqhV`-BYX=H8#Zc_Y3m#&$d=MW z$(MDObE*BXwbsnQNM0g(G=s)adSOgh=sW^m>?QA3|M}wd_pc8#m~UzeH20q*G^O`Q zkBR3jX7K3KH1ys9omBW`0 z;^}SS0ZrCV$r*thk8h>ao0(`3Pk4_vbuOjsFJd(BCEn5TvI1u@F@8XcBzWqFHj5eCzeCEvA}@lZA-*qC9=g7IxfsntwVXegZ!LACCRBZ=C+(b|6KU_rQ6$4;qft{D#c~0Hzn>WR2j{< zrMt|HeB|8v6eHw@H1M8>p+bq%bwlttYsiz{wAI3?KL#wihho3LluOqySl9H>G%ZIY zDgL%xDkdB8dtrl(K!i53*ifn|{kosEffN0rB#YNI+KpCnv(TOP{wdynx7iFz?{LM& z%5qC>PA?Z5$^{{%`xbD5uw5i3h9g1`13M^!_m&D%qI29=!BWzVjqu^w28iL4^`ZFG zT^DclhG!OL(hWnnBmF_eRt41D(FzTTn99;9$7jw(GVLBRRw4IUYi$5bGSrrs23H^o zmtpr3*DQ)?-7c`cZy-#`BWVC6DHtU~#}-`R2^EkODi~Xu80mHn951h?L_aQST7lAS zNfmiiq=5A*Cc$QM!7v+6h9Wys2!@&*9dv49ISgxkq;)2M)__DF6lC%Ni3YwmwL>Wr zOGRp?cmb|E!U-6-5Jn?JHr8$SfI`aRID-<2z=ExLapI5K4EItGKuFI>@o$9+AmX9) zi8Iu^3Q)SF<$A!DAY6Jv^r{}eYQ^K460=8Y818+f#=U2YB#}?1hzZ^i2vf|#oo7KR z$x7k}$3kmUdqkaweSgr&W7b+_*NW}2&poHt8c`&9T6=<@y(3Chum-z- zv!dxZM4-{m-alxK98a4WV8LGq+ILA$=Mp(Q*aoxJ>x$toG*gCa&w-D>Q!G*z6$CNY z7IP158w8C$R#xhad<813)G)~rC70nWX>vE^P9*|h=5Tp^-kpChC5_G+Y@Fto0Izy7 zV4nL1w~ot}dLT@^Dem^ySTqphD_(51lBqa$Rj5v2)t@sQTa3 zci=Vvju3i)lRXh$q_gIM`hfxt%Yn+5Ehk{&buwv1`%@xR5IOFHgRacrXo5ga*Lv@I zEXEn!J7bz9Gox4AOg_p<{#sE~0_5~HO)D3!Cyb>=zEe5fC}hYAU?i2z8~iZXgzz1tU|-?DK$OTWnn z964?e3z_M{%8BB&9(T(HlHPl>?@sjpG@YXNb6Eyul|_j~*@>Y$$Zi)5L4KKV?^w4$ zL*;EPT1d5|@u5h)R#7$J6c7i7jV_jRpkn;S%2CT@qM&&(3Q{V!=gRbfFT7i&rKBVJ zd?it8Mr7g`FmIG4fMc|q7bMouw@59O=5@m8-tkVCZM^xtR}71=5q!!_PS560ds*$4 zksvZmrbRLxs^r_{v*n;gb5v$BGzZIA8Y43XK%}*1l2W4H`zRQTpmI$dmMs!XG8OG>#1z>z zzbYx!@0X|r<3IOXUzxpkeTzNO!kR=_f%K&rvVpHTUtmR6l6yw`yZYwkyFs63BZGUp(20EUDogI3_cuV?(MwD~;>v zGt?k0%$Npm28j!#E%P3XA%$c5vsi3rUWnWTNaa2lUTzkXJeJuepoq-#93{P9m?%dL z0)r9HlSI;FRH+Bv!gWq3afcL@LCBq?Y&2D*AoWDTls^*Ghgq7hMbE0O9AY0kRJa4y z>s%21VN&R)m5%f~ zccW+#LDGm&h-2pJ>I0)QsPKt9M|N-Ms@#Yz;kp|0gHtfl+T>T>E*$Jav2?CdA?N{* z3h7{WbG1KtNf>UqrVmSvL&N-~4tLA)ZNHO@*G9AVMdodxEMv?WVyBDjJ=_1-dLKz) ztn%h9bA8kU$@Z?wgm_oVovnDv^`-L%RVL;l>Kx3zh}8Q}93_JoL0?0QOK-KFi$cmF zE7~VYzE6BcF0`C@rS-3I&ahk;QjE#=K;lcU-kWX!7)kvKN!r*zE5RPVP{b_S0t0<3zrwtkUa$F zg_-j@7dMdMCY~MvLITp;YKdNQOAdSTx3izD4`MQKLS#zjW671uXkg=lh`2N?TJclU z&{yPQfr+i4e7bz|*vzdEbawrYkdQl!=B+9*Z(^TCLS&R^e7C`3X&Wo9*qbt_gqO`` zQ~YJa$ahFP((MS5)hq~5AS@iqKA4$aG@@8udz{+=k(Uw$WM~`h)e@mdL&V-kj!7?v zf7#Z`qYkkEQKJApxJWk5gRU3JD>S*(JwR7sP$o=MyNIwmPG79p~u7BWyW1hPSO ziJMY^lqG#B$YJ5g!9ur)Atgsm!Gf*nx4|r!-K#3c7(^*hGNrOR>@~k{r=X^)p_^0_ zZ;JiVENo%BNkC7a!MU7ewb_IvJ3Meaj9WeC+G~_rdyLU&Zt4N|N|#5QSLp69wFyk4 z_!HQoEY;1>@DFNuSNj{Y3RSYF6UGc>Fj>_GwSQxpdKX%w@r4%TFg8)*;HM=yz z@c*NO7V0^((Rnn4>ZMD^Ok;utoUG@#TMAky00H+Lu;v~}LBtaj6!Q8*B7e7<7DWN< zNRj*G9~2W@)jJy5BMxcEkaR?9O~VB|08g0vW__psGy-C4`tj$@+F%7yp9ew&1k-v| zWBzz7<-{*Dc1z^Walmn;NMTOv5TP|fMDBA>X`zhj!psYVVN>$Qj@-M41ru8T%SP%Q zYLSSgQ5J3xDKm`n^4GkzQvd7aO*G`sdA{y03a*+*t74ehC2EA~?Mr6PR#UZ95S8K= zZ(@GNNT1&-6pEF#bVbbqnNf))PMsrxaOlZNg?&raI>ESY6orMcH_Qt%0`qYYkK%xi z9!ha&-~ISk%pOl<%2qmztA`3;lCY##_|a7YF(@Zg@mqMfP(aMlC0EtHS8Z!BfTuFr z2?`b@d|TPm!P4I^-Osw_P4YuTK<-=5t~)-cRFYgN$ey%a(`p9)Y|a?PgJRGUovl(;yC1q2Nh3&Wky(H}N!5wuxcnWR5iO91UvSpSPl9ypvdPybnxuCU@vop+2hf7rm50p-lHW2dWEJ(?$^;|P7P7`HF zH5`^%c1Y3Vr4qIkDc3nip<)Ccn!*u5lH$Q?o++IGCzq!dtO(qPi;F(JXzu17Q~-f_ zkc?(- z>VwMg6A3jUBGD{lwkt(63ykvX?Wb%ADzDJv6v=rfYzWejlxDje%pqz9T3tY{mH{oQtELvbhl|T3*@M{D|=!2o;DE}@3xLaJ9$;A26rG*6+R*pPuZL*f7La%VtZ4^gF>P6;<2~ZjDO@r1vR+UY1p{1hpei)7ZtXBX;y|C9S7}?@pFTIl5UpT^bAoz zZqB|u+<;kpPsKqw?g_~dp-Oi|H^FD3y#EpbMS?-$jm7+m@TI#kuLSwmFdB$O#Un`~ zcN#hj6aSbh=`##PUQ*RcUa-`|PKIv<$6`#?eSzl(#BmKLkp!yRr1a3WPzsCamS6{~ z7q3X*sFo-GFL?0xS%J(m*7Ho@Y@?#M|ShyM? znY)UG(^?oUDDU1uTQAiJALo}BGBLkN zvxS*;NAF#EF*6V#!JLxj$Bg<59^tkCY@ke3ZW@%zP9g=>pTls(z<9(IFLG)9hxSyU z;&O>>>|g(Ks;bLmR}VxR(!{j1GQ58HYbv+n8>#K;3U1ddtgw?nk|8VqDnlY!!bM^& z7#s6B_s0)cq70ujba&M+B(nxf2d8>f3ls^d5N85E5%oPFZt-qhglJ`AWIIZHrBtK7 z00GFsG*sDD#`X+NM7oNziLMF}LNeSSP(daYHbBTgWI%Op>DU#;?Y|)fL^gC8XctXu zm!$SeJjWT@K@!;tW*nAp1s9Y&oO0ibYm*yA)7N5c2!xv2 zGbW~}_P^ZZIu;GdP`3*dUn2xVvq;!{B7#7aW~6wLBrk|ic!CiMj+GrCpx&kU;i_w^ z%@-`dQ~T@DE+JGj0o!g#h=9{Hm4?@Vb&Go~hNi;kpCGW6n_0r?s3wkw0Pu^pb<*y^ z<#JdO9R z)UAcDKVHjHlMVfNvyzpbg>0?lfXdm^YpvyAKdu%qDEhhb}F7kN@FRU8)kB1h(fu##y;IsGr8l z#HIm%8kq=zNXHufiq+tTUtkClzaQ~o5q}f^Eiiy-WUy1CN7G~3nIqv*95e-0m+zgp zpi@P6EM7K+(%HRVyxud%ECnxV5UOFmCsj%BI+v7ph88kkbweF-=`2)-W=gK0*zW9O zYDNfv7)3zCYuO{cV2dFQIl?NM-n52cA($2rc;Vw(sVT|R_IshE1;!-Jkf1Cm1IJQY zl$%HKE!J@5dMa$iIAljJE3v{uNuO)k-6YGPf{Po(6aZU8_(7Ova4UhWl?Wot1E17$ zfWxksUNXCyV5T~Z1TKVOxLQzd5Mn4dK4eok|H&!_sgsT1xz;3$m_Kuon7L;*a{VH0 zAS~% z#`Kh}Rcd2BeqW#JQDBOziMYVBxU$#>CS-0h{-X>)Q!OZ5dr#wgK}brH&ciGK=SVmx zp56LU5Y7TwhZdY0)RrUaT$c>d0;zc%=HVoPsVV}8d=w>sSgMgVM;(Lwa6Eibwu~*? z-)uJHs}?%j4Srs@60S&Sse&)DBBErF3T(5Gq2#;Q9+pe6tH2t^c33J!^Oo=TqN4fA zZ@g5MTxbh_V)@DRMi(>Myqc2CqX|A(ZbQ`!QbPYQmqE?7EO_W)$cY823AX3EQDDYmv&VkBK; zOVO(@wXTr=S)P!XlZ^OIYc@z7*o0QD>>lWpPY2Su2{>9{Tgt~O!i^bD_z`Le;rF3z zkx-axKs-P#I%VP-6LQmQiRi+biLCaQ$tOdY;MIXRo!X-mEpS>kT$(M;^8!H7dfxxI zZO8~S>zcQ#j(RHsGfFBA7D#H35TPoC{ejSEgtoK9gXS%4ZP?iA2KdE)s6d#-D;61; zNBKsF_W#dX|1#2-s&uprnf&yGA;LFXd_1VbuqZV3DN(ry)+o}N>n)Y5Sgw(F2QE1w z_D48G6$ct~?mSe*>G|Cz^{Hy9L~6^(g%{ha_EvD!^e+iyKT&`eJzO>YH_n7n$%`#%AmM^;i-aJvnWkJKsVqo z7m?UD~=jr!6PI-!X^6d{s`RwVkJq$>!b2-(2;Y+KIoS( zB}6qPs(Kt0acIeGmsmJDCh>&b*h!cp4b&SqrB^eApKKw0;!7FlJ#L$jdS!yDTtpYA zA=UjH3TsSi^g&fYiqyIhw?xII$Sr8vFot@PPZjo71;-b2*($HwR!V*uiCBI}!FR(T z@2bVLM;(viQ~$@>cR&8E*soAVRdB7Y5>NF-qoIy{>P&U?VxqeYpvtY$sR3KQ&Du(+ z!-LqLH7ct@;I^-&b+S}811r^};u0{unM2bIzMPil@oBC=maUeJjFoQU3qpy9TcSbt z_erwG3ORcaPRN#@HtkGUVwj+u>tThf9Gko<%AoD6D%tpH?n0L#Jt82NnjGFp|9=?W z?1XMVQffiQr zTcH%e!d7jjuc|U2ig^;tT`lwpnEue#!knlhwJfbiM11wf>pINiHPp*KCmW940zAs> z*Lqhh+gXgyiYq4{rJ5zTUjJ<;RPmar5(iRgKhQVBc|oHDci0E~A*N+Rz8I~j*M<_R zSSE@X&R_fbYVZ=)_F5HoCm#=oc;CV1=TrJE1ZZUwWU9#*#^-_^fvupfbeH1*dCg9e znavx)s1hk!%_@4!Uqixruk~#V9=>Qal=?(`%9^a)bjaH=MMW)wg&iYRft!SwFBDX+ zl=+h<=|Yb!C*yYT)|M9xiqCrMM{ePDwv?m+%`T8yEO`RiPama%HWDwGuz2aVm21}Z zuoxrulxu2JtCTVSyF??N-CUz)*2u*YT2Dhc@&qHa$U57&hi)cE!vJJ z5s|Kav{u!N^*1LP);xQiVdX%Zti9!FlJOD+sVyQIWylr?EnDrFq{=Ve->T3owTeJJ z35sr@bPVe$Ha_rLCrA;Yq%r}&=*7F7x#VvY9CwUbN(v=LfVdqq~b z<=}J(U0ZSYWZ0H~#~_lVJZCtJ46L4wBx;Q`JEEK<*0Hsu#bQ;lN_cEQXhw&PBoT(F zov^n%sANor9c*I#&xzNKEoPRN6*Jt+jxL$l&vW>M<&Ib;)a*-G#Um zW~DnXnaLO{(A9-QMjODuUdzl1BHao+O*qVA`74dK3CnnGMY>xrFX)tvL9hyCR-J-} zEd8qKU6~%`9M9-7+qdJr^XbBX)~&C>mcl>jVbz`wL~WWD)F_lSF*s4hpd{t5K2oWn zuDaNw?J}T_VbH5FvwnB(*TWjU<*X|<3u=wuiV?22QA@69$e9LIqni+m3K*faNe!nw zxa{rs;Y!>rM%}z7JCd83g*%k#xI}J?X<;N}TsWrcir+a!4?98&lKhhv4>&g#OSMe3 zMWYSG!OvUW>|DZ&MTR*XA=XYsO@0_W7LhRmwQraFgfbt>D0Prh(BZJLjNOZ5BH@s< zo1)aDP-B@Q3`L!6;g2eDfLikaXC1Q> z7J|lrXsr^c+77Ah#!|JxaQhq#5u*YQGoQZb-l3EYK2*tGejPSp2D*rO!~nN>V>r51 z>x$XN?q=JjpyRQs^>A>+Y_&`6=(1$rVeQnyENEPHXribXPH4zGF%Wc1{k8nQ}dupLMUwY zL}Uy^{qjO7#l}$I>n)7N$cwSN9u<<#Af*}$6G`KESUT%HYu4qr9U;kRNHpann2`$Sgg~EEn-WtZ*98;zw}DsHhV~5fV|d? z3bA1bKTHs5jr$c!1 zN|PR(U}n{eri15XOGul@k^(sX0*Dnq%Jc9BM(~zzp_ar2UNH169XgAZW}WA^#mQ|W zIcq&OEHKHz0F22`L&vB5_n*kC^R=RwwSEaH3t5d;Xf@JqD5Nt+xfHHg!=NeT13rJn zFJ$df%Dn7ZXdqf^lQvDpLn_yvlSeRfb$s#6^Zcd#5K`s}MAk8>?w%;~D=nsA-2nin zX>u7X1av>5JoM&UUXgJ82HVc=>s$yRh56Hp(QaF^txXW$HM!UumC+0Nof@^bUYM0g zosE9Pts2c%Xlts#ZCLt@UXA2&Gipq7^9=tQwH7fQRr8fj87Df|8%~ZMEBXph(YzYf zm<{wHgu;3XRTWhW)T*6TeVlReOW(>0A{qJ`QK?3jnY}$S=m(?WwPlzJ0G5oworUe> zMQ?#2Ql`iUFDp-N9=etle3OjE=!mKF2#P);5L7rK#$pVb76`jAKm~qPmrC})DO)JDaI`+KV_RI<^%;zAobRsLi@V+2bPY4k{OQUoaJ~7Xeo_yb&(TG z2JAIf(HTWY-q3F@W-nK^oZ~1(M9P5hiyJtW`j)o{q(j_RvBtYqBA%m>I*QdwQwX5Y z6jLWS3|4W-(t_FolQ6ed4_Jn;sSe2Q9=YsnXzggiyoL{vj%C^gdXLYqfhMEu(ap2^mLt1nRQYuZ1#2TZ6p`_le zj?Yt)7v!c8=am{e5hd}PBN|XXwjInJc;w8e_q8=sGJ>>enih*`u|VN$JVVfIw1d|p zJlrAWRS8h@pi27{s>-DFo$U}Am?y=4pb|M4z$ir28re>ZK4NK+$Li+Ld`eRCTl3OL z&F%o2XX#6+TWn=55v_+#G%4kbr4RSIVfq`l0<-N#qgMa<)+T{1YAsbZQ#P-qq=ZF1 zko+Yd4`79Sh-u6GI4NT#sb&!w>nVzUMO+?5GRv&Sy%!P!Qk)<|ktZY3p&pQbPEOvM2cM_kXnoS)sW_?3=VqC^Fl^>Z`=g z0hO1dnr-KNP7*NY@Y^D^v4+Qb`02YI#!)G0n$-*M94mKsdmKY-Dp8kKB(n@Aa2mnS z@pZ~}>#C~q#?EMXE2_7A>pBJbDYj@wm_e{()J_TDkU@`{e{PvfRsN?70z>+UTVY;< z#=?~~TcXP^p!Kb_N>7WQLuE!hux;f}dqFt(TBS0(M&B-McZ=eV`gkZGyEdW{m^ zt|22D#ZjpxQo&y^E#WGQH%QwhS;ju2CWh1wr<#^=%ZG^DPb5XHFhDngVvxNjGeiV9 zOkixbCb7!}bI}eCTbcGtOL5hj}Mm+@MSQT1pAArD-a2 zzM>AGI$rS~7C){m;Ch#ZqDzvorwoI4wqy#U66m7a~cn&C@D)T8Ns@$CEweHseY-AuL-St zY}QWTsjmjD#{sRTm*O>T`DnKU5sM zlqlgUP>MG`lUZJwba&xgI2s5XPO{jNd<+bEx0;4 z(1sTmy@rgUEeD6;__c0x^tC@5EvJ&4l}5Q@ZI*)nmw_msT>rc>kM=t(^Mx-ba1{Z9 zU$_ULpzCU~K<%pYP`Y?$Dz=%T49Sy<;tEkp91Th?^Jan?q>`A3L9yj6EeaEQm=($t z51cnwK#m0i>w!#EK1-xMqGL=0h@P?{n+4W$q2~EX8nXu=OjJ##I#n7z*T@V7#PEp@dI$;id~17|vS41oeu^EbW4 zQ)#WWHU&5=b(a`D6A_VK_)6taOK)-&jY0`)aCsOTmzPS6xI@2_veU2v@lH(voV$=?o>q@prZ;cx558*Sk$Io8NLQqkHs=WAqa^Q zZz*%8B4YUL#?Geiz%2lHhBMdV$i_LIj@hycMlY}MgDWfo3#5r)^a2IbLWGHH~Wi z|01Wj`;2gWP$Qcouj5-RHhsyrQm)j769NZJ)u@ar!xE=mhWs^Xk*HOoW{57!ME^xcXi=K{lfg_S=CD99Mrd*3AfVQSfOaa|Ukg`Ml?fF8U|y8Li8xiU z9J5Z3hvVS9Vi7>qHcIVwRYIaS=C&G|Hs`4BgB(SELD$;Cybkz9ziURiB^I&<<*6A* zK{{JAU$5+q>>Z!XWC=VFZmall9A-oU#jsk7UTNTp=T#rF8;^C)<;%FL`Xf6@(q&AA z^i-N6vgP*`S#yonqO*r&Cy6LR@?%U*;~6f~~lMepPgg#FR6|r_VNxx(;ydv$*3Auk)!>gFBB%|)3Zckw*jt5CDG?P#L(T*! zjxF30LgounpvBd|h$Fgj44uj#&Mm<;7J6yJH#EMZJ%vHT}>53L9jWwxDx~Rhnx3uI?@Hb`uvs;cuzNCy!dhgz` zf=ZfW5u_IRr%>`zqpMZ?hTh%F;k?A5AW1-zdL_;=fNbM@vnVO5L$i515l>%6<{pUd z${6xCqDTCCg9al^EA^kAA**K%RPn^0Ks=xnt-A6(Dq0{5(qR-=iVJ0ww^8&UF`M-0 z%0$S;4VfqzZ@4w{7y=zrK;ra38Mq>8K#S&WQ#mU!6W)ZkB#EZi{6j9BX!}&ROwC;VxMe$ndFE2SUCHql;z4y{5Wsz}l*|w-VB&Wrzc(9Nv zl&Z9r#?T@nYHiZ9T9~Eb`tTn5L@=OG#N4vFZdhPcS9z=fSZ|#GM2N2*UcqKT-Px>= zP}1Bp%WgcVg9}1PNX}ngz@U*N31#K4=1Qv}*~KmG@7W5OzDskW#~ z-v_pQ!PRjk)mhEaaJiX0kak4oExg3N^$ zr&W~>QG>(-j}X2>{){#xNzo3Q!85TY1AH9D4BD;MUINfCbz8+571Z7c=0x$h(bS9& zrb6o*SJ!@m^RwQ@AvM80GHJ0ZHvX-dj9&nuNcv>N(#209*@V=8+oNCG9m&8gQ%|o=lYu;Qi&2Z|yd7DTDx+;cR920X}3BZ!M;i2*N z0z2F%7OF6$YF0up7KBif0Y=uQX&ODC8Yd(^!xRgxcc8}Tg#>@^YBYjf)ROrfHuBLA zpHo~K_El!Kt^gt+Y{_|WjG)TNeE5ii%jOmP)>ymVbhnsI20inf=DJ5lPjJg6?PfIZ zGXmCBka8(bUxwX>O5Y;2T|PBs7ThX)t-9bmAzW%V{fE8EDo@i?+saXehwIvlC~vtA-e-&^yKNw4 zO~njDUy00q&6dgDh|D;bnHS}Y+G zxv&#HuIiEiZMSTC@$bHA3orPSVN{J{S=^-d3@U7RUyaFLL&3uL&Ru8lT*}_5(TMLF4-d-ZXsMzgq z4e%)#OpYEM07T?Bqoj?Ftu*_WT|bq=ZDz4PQE+&DnvEggaP>_Pm=iP0vZdIyDVGCk zOMMJc6^2be5PaxHp)B%bRm$_l%ZPWw>05Nyj6d+wj@{`XRf)U z>c@|ZL9mK6z)rgrSn|9hNj(Ezyw|2lH?5HdH(S>UQ+Q>u1~6QPDXhu~8jEdeYbKK& z%G!<69*6i|1hL+#kk%0ugPOoUm$FFp4{g(Ae^D58fai-JqtOs?TYg{9S38O%1Z>_c zMyVzbQ?eN6NXoI5L5Ln{txto2LdP=<e^Ci49yhO-(yg4e$2vU~UBdUgWVp4*a4G zfl^^b5gtVooj*8(`w8ddCP?9b7eluMl}V~xoqWj=e0uSj*1K)CKT&72i{+{jig4#H zW#nvUy7svUQ?`Q$D4$+_zF*>W*C;kyvXx-R4Vtx0uX?IVv+_)%bzKf}{?+-}>HT!K zXuUXFTO-nx16N*W-W#X+&zfBJ1>c?Cet2@;?suoz`}{ub;lbqVM<5QWXN5QkcNS*i zk6&MGrnb6Y5X(R*cZ^#Vv%|m!P8tCNGxy8WyNl!X>TWr)o{9}X1Q_ItT2sHnVh{52 z+xq64RX=-tySU$3%tl}>-NV%Qd-a#2j7ST!MaxJ`pC8=JD_q_$h-$!v3>XBfB0Zjih4tmG4Dkkxh5Qnwkx|= zQ41DtUJNsnJ~@Ec2eyCZsn@6{ju0xC_bj*e6;va z?siXfHFeS=$;IU56|2`Qa@%vY(TU%`T@_#Nb_J6xqaH+G=3)R1Vq3yZw&2u|ZEz{! zwM9{wcP7FSsy2L2ZeCt^5~E%l#p@K6b&bzC+Eq^Bc5CkMi?q=2?PQF zw-xeGmF9(_CAre<`T|1U11-7R=)aYfAn;`)8Aez~nIzgbo&)hLu3YYmF50r>9W6CN z!UNm+g;k2`3|18ej zdT>?PdHIAjO9b2p5pu%(AhnRJq`6|x{Ihm{$zV;ZM@fFs?wEhemiC>fHyL`hUr^^< zbTC{P5+L z#KBt5nRR2rx;jvlNN5%(sgGMsC`Q$2>GV!-O}2_d9xdc~f(W_GuV}B(Sl7&z0#_z3 z_Ok2RQ)gm1;e8LuS*C|1rYDQqG+aDJ@hKGb98^|3+^+qlk9!PMYj0Tz%C-=5v?@^sUv@c3}hT6nwGr{7x3XoMdo)kMyoU3`9c zySQ2qmq~nPP2?m1hpHKC1+9zi=HbmBFV9yud(%czFyjA!?)gD<2|}s~$1u#kfP}rx zZ=Zc$uV8sQQE{Yb@5w~B7#=YlR=oBOzp?O>=;oQ~>UdsC? z=hPRg&19Rk{oNihT?0AVhcr58Hx;LJU|8MmTs*$KU&88sLavv@@T!fUrpUch6M^2g`QO3b`kd^^lfpwm=Hfdy#j8_O-m|>2&mq1EP3rf zCWNg}6ohty--kKaW}0G*B6JI<^6KO=pqJ= z#VoCJV`(77Obio3111(?ZX(1o!6YK_UJ7st+se#A86g4Lv5u~R4cQ`k7wV}bgRL~a zN7hze_WENW0|T7_zCehE?mkQ(k#AL6=D3AqlmT}GHIUIm67$lQ?)HJ4QdB{8atl;+ z;^9{`v#xqflxY&E9qA-^Hbq+;}Uc;X(ySx2+}HA_P_Be5$g9MX-1`bO%5p5QcDH+k@qS zDPEB(X7iC0==upHI%KYr`fy*@@|6Whsvm?MVHV#w8%KZ(CBOmdMP(d2lYY@)fo_wC zD7})IT~9H@Vpz;GNl`>fRnNs3Q>5a?i^vTng_%D0Zf){uxmp_ruXH#i8B1!mjk1BT zjn3t$<sPpYxBC=?|mnZ6y;w!xb6YWZ&3DNB7@5XBR@0> z+TwL>*~}Ffa{|DH23TEwFvN^$>$yjm5jb(hPe#2}T2qX}@#jM0FAey{aZl!j;k|0# zhefE`A!AFC3YXD!#R1t&Lx<0Vk&ruAu*DYrs&_`m^w^K`Ge-QJ(!Z7M5-%=fVDEf! zm8jT)K_5zH<>1b2EuY$A3Rj2tGOYG|w2M$=-LUH^xrQF<6G0Cglv0cdaN^z#8r8iJ z3bhE9PDg@uEFW37LFr0Wqr&eF{Z28Bw59<6KrGK zE&Os{A=jY4y!#r?FCez>K4wx z(vwPK!%q`!adK;oh&cKE!$8cGI3i@mQej~vG~01v0Z=LrMjHV>RV1fb*)}{i;a;y> zh**vEgLce2k3Ju;~{319P%I}g^Rcy3A-0a*my~qel289>GNhsgV zWf2uI`Js=96McSpdGu<(aTr2TY`;zAPj%uLW5_+G4D5J8dH2`L$G@Dk`wVQc3!|GZ zT5H~vmjwI|^Bj8}-~DjDI$!R8SRw}(Tu?X_4O;!N6nhSL2GYAC>bHr2@bUTi{Uncm zJ!~`E_ROX3v_F|gfj0YGm3?3#EOPts{{55dumAOEwFViNkyk|eub@hj6hdSdZbV4_ zkMJaK9-r+jc2D2!0o%O2%x}1gj9jZl7D0{(WG}jY)z^#l<%`dcem$HL6>X^NDDl)-*&B2kDS zK?E3i`EhxK{OX(cPu`sFUruNx2zf13y2awc7V$=y-Ke!vAnE+*_Xn@OeJ>~vJ|47< z38$F5T|)D)f)M7!fKgx|9-O{A-aP&M;rYdrx2J7`0afbUEoRs6(PeVx3#4dInEU>_ z6>s?M^UwVL;nDemx)#8_3N{C?OPP!Y_EBH?X@d`5AHIEl#;|w#VSm}pd@2x~Asy}5 z4`V4^b#PRi(jR6y{$ua+*EjEO_G=@3rI^x~4 z)e-d9&pypN505`CCMK8!kfdkQuGV^f@^Y0C%s3+eBLgCIIex$Q`uX{K$&X&|EH=9K zr!ELWc(LrieRuxvzn+|4z~PNX>bW>t5H=Yr08egq8)ECp6oeAZ`v(M)%Pv!+-l3qe9qCdhQg1{h* zGKJ8|&lMT{j|o$c{ThatAAgtX@Iule9@TrQd4tlNbdQ_@gnp?2k3;0dVT^{`p{kibh()#_c8SgQ z-(0)_GVrCv8Q6fTVcFIQ4ZVZy8Ynfntr?ICy-l%FFspr5%i#hudzw?0 zhot1hwd0?}H3SQ+ta3Yhd&h>}?HbeW*+XQ+>Tl2M^y`v_NmHhY>CFrQu{GfCJs|s_ zy?38kXtPLM7N{vXzTtqYLK$?@pXOZVF}%ZC5}N5|B5fAe2-FH(%CacM0En<8B}weI zB)xM&TSal;)o2(woT>nlKyAOXkk-IRH;VLWy>}KSks=O?9#nLztyqggLDwjKQN9$b zh<$h76i6gfH7@u`lPC>)&ufm7@1+hRgv7o@$1R{>xqeuAC6(!`C5qNvGEO9FgoqVR zIUW&-4t+M?N^lM)4cM)yA`DxWoB%R<`DdTL+J$mSA+j*JEi1%K6?TT@t_flG!GfK( zNwQYjV3lv?eCgardKd5sN@1@`F(aG5m_72<4__jX-g}PRDyk765rvQ@^)^k~@d=eT z5pkF578m!9Z3m1-jwc997h%GdOyqhx5V}=470@X$u-s$y9pk7Chr&qKgO!UFT+9h0 z+~+>@alG4ZX2*oFT2NC+oV4Ja=UFvkPQeT7qLf)(B9Sr&+WWi=k+bd>)7F?7h34L) zPIGq;1E5U0GF_~P;?Z(4bPYV_D}O#PfF+=*7L1#qi7lwOu!9I`RTYKv-X~2lrgGyI zBcWCC5z7G5c@7u7!@GnKxd{8U>BCMz1{P>|dw92dv7?#y1VZcw8N#1h;cAf}AcU4q zhz-xbx;cKkuXP-?CMK6-?NuR#+7vwlfB|VdQcd6S{`-puKOay>0Y)SHKFI!? zg}=X)B66}jt&rZqd_?b3ooqBC2=L9S-~4d#^rxe#qf?>_#KMD6q9ZJl2u~QhRm;2O zuYdjY;=fL&HHcmp-ScaIbdg$M6(R(u*bkJ`*GI3u`?#6<@tYm&V5>JRz}Ddc00Qz< zN(8jaeTg!G<2OgIUw-=Io3kgs98NQ($7RUZ4FWO@b_R7?`NVzoX>~&Q+Yj%b{(iiF zwIsVo`N)I|mRTh#oH+C z;nP1JzIpNS?aQ+#znv`RfQgvxx%X}f7;eT#O8!XYl>@@whgC;-{mthmzaJc(??C<& z-1}TXmX6|<;!^jqW$%F4?)b@XM}NFLXW^4KJ5x6;YSIyb&AyEi>@98QsbECyjh#CR zpZ>o4@%i<;7Z*=n9WUqfuV^U{6`uEUtHWT`RN~r(*~I4K6Rm(Q+tn!K$@6F3b8Mg z&m~CI+NA5bZI*vLKEGM<53ir?Y~=RvX5D(9XSQ0Ec@TF~6son3(BHWOuL1t^#fQJi zqoecb>iGQg4rrDoM;-zeOmxr<%zDM*cY_YxrTz2i#b020_+e*#e0zJaxu-r8SL0^< zuwaRB(Fcj^B5xM_Zf7HK`RtE_3HyhyKV2_MP@XTMPMn#JzOdLY**f#vki6gFwOs99 zoKT-XJpX*T!ft~u=WAlByCQ-;E;BAzg--BsCDY>e=;Q8!@%*dni&b&2u^^8IGA3k+ zTTSFV>;HMv;A*k{dWTncuwKmz)~5z_5(LSK!|X&kh@9N3t*6TwUFiA zrj>0=SZU_|bJ7W?M%@T*6_m4s`K|#I0pafD0rmB!jUn&Gk*i4o7{VQ0UBmjD#JJpOBo;*xk1h%obQOJh0%77WEInTM`(yvv8(N9$*HN* zUtTxWrKQa*mTtZ363rV8%{qTGRxVVdSuy~EMHk(bc!(*$9?atd6}Bq5(x7VJqZvq5 ziHhtYl>-te?0B81NqLLPoFa^S9+BfBXDj1U44;EXQ}iVEfQ#@Xj=%sLb4j$r>P17` z21_GsAqs zLLs_}+<8p(mPlcO(4`n-l0xcEh>Qe;z#Nz0K5ghAOz)Yjre)V8^5qn!?+DlI-^lKLjgM@AqrL`h}0wk!Yac&K<-_? z+(;2E&R}iA+Aq)=A*mUyjDkyfRx@^rbx}v!=+Dwxt%Kng3Lwx$NTYN`VF$4Rq~Xd> zaZVTtilH}ZVu-i5SQtZrjs-s$7cva0XpH-dFc3UlDYA&!8Ku_3*ZvwH5+eZVtv{_9 zh{!VoikliFNrrhus*+!d#0e2W7QlC1CmZRWk5LrbJxvPbSz?z8wvjV=+$8&iu2lJWdJGZAI)&&CK~JY zq5|d-K0dp;K3qThKgW$VFWi2GNJtbL^6OWndUdtI(Re4a#6}CVaGvQ`lX6XU`nrq8Q1jc z-#_-;aL#w@(6c@P0MwyIp^6PlTn!E>I@9 zs)Gpt;Plnu>+jCr{&4a5UkB7fnCIIv`akcIqC8tmjE26OyYH8~i_On}`}oa&J($+E z^=Q8{2H5`ZXToxVnZRd+1bolW{&o8MUp_yS-J`cVU~(>w)cL5vwEaq8)>pvPRmDm4 z^ew0dA&;;`2F8Lz4*t2b`SN&=7&2) zf5b(7TOmnK*S+qKem?l)`wKxiezQki+%w?;AOjJ`@z^rVW^Ci#^oPIfz5VX$-M3dy zem$5rXn|ECK6v%bISV{^x7Rvw1DSkq-2{oH0#_S!3bASvU~QTxKx28g_~Y^U+%8`H zb~^ENb9_CM30qu{ZgP7moZ?u_R#4i<#G8fu=Z_cv^PkJ3%jx#y_I`(zXs%byF(h@6 zW*9Xh26PC()6ZXDf7j{s{c0k*d~!WcG`9`_bK_33HJ&e``7-bm0K_%%+x_)ovwHZ) z4o&>-<=O3I1`*77Au|av>4ZmoJCkZ1T9bTOF+RT8yWN?X-@iD!T$t9&;ey^zj6%b2 zCWCZBU?%yn0~hV~^xZx(e|ULuwP54H_$m_-vdY!&lEj3Wv3qYJj|lewpZD%x?#gbb z`_<-RTKCZiB6-v8$*b{>v19E;NUoM}*`QA#0Mqr(-ST=SusKA0Qf(#2Jl=2rqVKh7 z=-_O3bJIvusdjGChNJPIh0177Q`4|)!;~!Bayoo7mM`*1*o^8 zK@|^Bi3dX57n_ql9iBJrf{X`mcMh}L21CZ)AaCswO~MyovX!4 z`#!?iLX~obvpcSL;Pq@m1d)rc?oKcF9-OZhEC8^$ZHqV@Ogj(4R03(yE+z;d4YlDV zH7gi$M!pq-h^BGRN|CGPB_koqbOlD&w*wFARSZ)*v&9Xm9k605gtYWWo{JmGu>SKY zYp;4Ws4QYnT@WGk+74SN07GBrG9@T+Jgi7Jv6Oc|kj0F0!d$01K{m~Xg%obWpx&^Nh>&BPbk8@%29&kEvS|!leSodSc~NRy1CmR zv9(DhVCroND|B!Ol_ifgXtDZPOk!#yfu;;j6~h=YOwi3xl5JucQo3BxRD&R8xC9O} z^DH1?FnYw2uy8slYz2TC@g2lPDP)Q$EEoVL#yLb-=o^v!V+>ZGLn`AswU(NYC?yDG zDR9@3n*S?Mu2zvfDg#LnQ3tBdzXbv5&^HhI>hr?Q1u!r>3%I_re5CehqNk70mwdm! z-u=AHFh@7!>Za%$b>c! z-Tvmgi*Nq^pnM#6oRBw)Jw(;c2MmdswIjN8VeZJk|M21H-D3aKE)W5reQQI6wl~2s z2|MxR*uAI%^7gxPL3#YoeS`*}wg@R8ODL*tDQz7=Xn-*d5COP8y?gid_4ohJL;V!q zGT`7XAYn}3jF3e3_4LlsOK0vd(W_^dPukAu`$L<-pa5Xci9=2(oVlls86F&2x|O?tF%znkwSt;A9w%p!`Y8NpYC6+U_{qr6sw7_ zl9G@MNct&E*z)w%!+-to4nQ8fI`mU7+ZMThTdT-P%;48x&er+i>)qS$1E2nB0;O7}kq zk&u|4|9txU_n+_uJbm*Z+?qB2M1R7(QL`R_Lcy{&HMfC)oV?!Y&*k@j`}F+p$J7Jk z1=$Z0R$Zzh8e$hJ2eRE27kBvhxBb^IFTRq)gAdCsEM_<%%Csz+9Wht4-X_iP_?P`Z zzCC~Q-TBjBj%l-H#_Xp1RNtLXEOcrDBqGumfdqo%H_Le`KmYC1cmH`hZ2%BDb!lW% z9cp%+rWs;e?-+b&LB2jN0Eyn}q zB@4>xcKYqvwIDqE<+ydYI=ztznVG0*ih)4@?OZlhEJc3}{5=8`kh6Wc_`g5??SDO- z?&bFJx|7Tcjv=@^Dmc^1BEBjoL%__8a=ycVyuAFsZ&!O~?fTKpdPkz|0tg$LdxPGD zyu@OkABRcZ#N)v44mUR>JD1Co4=Y*1+waact>(B2q1=O(-cZyB*MNx_X|-9R2+RQ8Zvi!>8z75p*PIB* zhBjxrGt2~lG`9!uPG_$ROT?|+dx=T9_uqqEXtGo3Q^#*F4lY+X3wC<&`t%rNvDiW3 z-sic`G5==n8Fr7s3J9|o^l9er&W|qk7c(}V9{h27+H*0~z^>FF5J6|jhL@%EcIulK zYuxOu?uZbNKOOJR8^s|I+T3N{Y$OadDvanGQAGd z^eps%%ajR`T%11iK!o$JZw{~bAH3gL&IrJ5c6q&(Gdj_gFLDRL+K;;5g8;zg(<{1P zKK{J7x(5+P24Y5RDyu`u^g+!E5;5H+xkx#-{L4qzo$1Njot=A=t`J8kETtGrFiwpS z52(q&whqLrr#IItdGvN~=id7eY!LINJ$fvr2vc3Awkpav0J(j1d$}X0@Ar1s^@a7I zg1poZ#yza+SHP*7d`iX`hR-5)W){JsuKfT0?*X9T$znAJutYd-XRbgF;+<&~qN=St zyDG(!AI$p87>?s$e`~}8{y3*;5pk#9I(B>+~n}WnnQ!o$G$ISL1O9QqqYl5O(p|7 zo(C%RfK)fZR{;!b0tX>Q9_knTGH)Qe^u}vE)~QPYkcRj~ zq%@ArYrmEA$T4`YoN}(|(5C2-?A4`)3%!dPmQm4Zxl^bM>$GrTu`~_4=Lu>TPt4r` zAquv!ye=>ek*^ML>tYYPQq|@8or#Ke7(oc;)l64q+AxIb#o81fI~zDJrg`By6#$t8 z=O9oRpb*q{}Ix3NH))4Ij~FJJ%NB-fQ}dxGx1Pef_~ zO#mb)OWZsC+S+DpzW+BEvu=B$ZWW6PB(zGM5plNr{NZv3*j?RrtsaX6Gb7H~V)p#T-;Q7JXGLbk@F&hG z@iHhLLMKA>V?D~pJ1c&8{rGH(lE&BMN-NQQqy@VY%(KmYdf+kYM}&szm8 z`x%sN#Dq`)z$l%gTG?Vw2*UF5c&2Y}PJcbXu)?|J(5osE)U9v{1{S+Tgxw6<3a9JE z?|=L7^uJC~5V5I}<%{_M9hWHH2C*_kbvLUz)cd{PkAMB{{gc*?KTeRYe*M6eWdm84 zre-v;Y@O{G$C~Eg(fR@Oi&+?>T7IZJCV#26T{PAj(`3BjHY(-YJXZxhzRU{v8bK0 zA`7!V5o#QRT???>^`l=8fB)gr%kR&>{Pmuzc4ZVSaeZpSUHbt?9-Mv;A|NMkmeP)Y z`u5}ZKi}EA+|d*`#-ET)2uV}4vWVn#nUp!*^3&(XzkPj1oep0tNupZPWIGeP2^hK! z*3pJJNZJ0(!qDX2%iZT+ub=<*CvkbAiTc6 z>B>P%!ia=jbU+7skECz7*gC#B+RT6Z^!2~);*3}KZ#xMA2}oZsAT-l|T@?D07IS4; z;)dssdwluz*?(T$U0l=Uqt)$lE)C*3>0v?W3+5)$f^z{t<-&o|L0%uuH^c{*>!UZz z^T#)5M=QHFx6J9(AzWNOR2&KQSwJ=fulD=$oAW3CKEA!Xdh__2a|R-W!L=6H;;L+w zbs%g|-s}lKzW(9Egd(s1dbyr#Ew$x=f#P!H$#G;L6Rbc0r~?3W;2V_JC+mj|8pHZf zRy(W^1RrZl;+nv@m*#(T=ZvpND}o!8&7v?7 z0BeFvLT&&kyVnP+y=!i$fdT?tt`~SM$m#JJnxHxDz+L)swe!pUOGaRjwxK((js(dg z7^b#FYedHMW+QS6`qe;qv%9%{c6o5VM25DS?mxd{*wfY;H4xd%8%~CRN|`OP>jJD) zPzIi-e*4|o{dcOB;Qin4h}WSsrf7uEhrP_!ATcHY1h9bXz16|R@!|#m;q=|f3F17j zxrcv5p@?0wFdeBi{i~8GSK-Fje_21c-aR;9V3*eE^yPu?%W5RVkp)`rH7XxRWghkG z-SwUGos*9{ts`_eeRHJa5aDjzHNRS_u9Ubyi0l^&08@YU?bX9i`^O)ajgb&{uNUEY ziYh}ya?hvg2pAL*TZIrrXa1hAMvSg6AUEe_*-W&mhY^W9!S zW*Aqzk6+!Mp6}m(yFbkU0E-p+j30R|5Oy)|B0M}Qw6U$phky?2K@YlY?@AqjWkU?~7A7>5Jdg93ux zZ>%UJ#KPxaTwX8b;md=aja_gXHs;=0$htfQ1qjGybExuMcP^FPRax-r{^jKk-+8&W zycKL(mWZ7Rtc51ZLTfV`>m5U+xCRhc_gB|@c=z?e&aDSQxc7h zW1Y8mZqE<+?yG~nRnRxewGj%N$n%5A4|kP{xr@MjG+*xV@!NytbvIK<1neN10McNa zx2fv? z$DIffxR*9b*}2$zbb*WRi)T#T+(JNDo46y@$nGK}0GRZ+SzdL4kPKu%cmzNSp=eb> z@-F&RVD3HqNCO>GGLLU&6HM9*C)T?_WCqbX%hW2W0|t^Yn(CODy3$4Gf6=Q^62cM= z06+rl@&C%E*|DQ~oBYKLwOBc#t?^{!6&;gk;AwrmrDz51h;9-n4QRb{MV}|;nb|Kq z^-jqkNJPk5M-o;7&}y4-7ztwMj;KMT5PkDZ;7lTsTJ1-rB_$jjzRJ66AHDcV+^?xq z3xMH$N?&+z9MO9)l6D=PCT2aQ>N3DuFeJ54J*M|Q>j<+qg|ojHwT9{s37>x$87hv~ zsq?@M`oU&#F%2CwUTTm(mR}?Fhvm|S5SPGtf}1-x2XA%^)+k8^ahDaNG#2lJAF}a7 z^$ZBe5@j(@R|_mER`FfY%eRuKT=aZs|lsFPd?OQ44SQ~f8%hFbK@ZsRax98vdkGoL(o|5Hk<(*2e ziv5`yB(v9?<=*q--+uUjh=(tCkeY_sD&-V8+s$oM<}^LAZ&Cj?IQ@0+&3D&tez?5< zul-0md#7Op?^zO{$-%+1D4Q4Q?wl>|zCQT*ujgO?<6!S*7we4|A)4s2j14K!*E%{0 zY87^Q`s3m6e>sS{eYkt(h)IinTUtt_a}WHe z{ddT^Ktb5On*R0WRl`pYe>y^h^9MJPw~gA6zLaTdb2uI%4GoNlUEICZ@a;~gXCMFi zKkpOJ$ER09jtg**sNyLFSPfY_!$JZ=F{8!&5;s`k8<4%CcNQfO606Ox;1aFS6@4Y-E#LI*A zy7i{`PUAr^7x01#%AC1BOkO_9O@kMQn=h9z&2qip*E~>(!hphHDR|ov?-C>&r z08d{WxK#uK+mw1`a_Et$DO6j$Q*XUoogb{fd3(IGnh@~x#i5mK6iYw)wKLo6+#pn3 z>d;&Nc(VHP<^KLzLxJfQ@4Vbcq}C=%OnuLB3v74t+Tskbf!p_wFCTx{KmNE&EQqjs zv1o15*QfW{9o!@kcaX6c1)bfC?ftX!duRK1-|n?8NVvR(MvXhSsab|}j*~Ddq#qHd zY0?E>ps|s%<--q`r|0|k-tIL<5Lm9L#vmxsv`HN;xt7ZPf%jjY?Vs;Hc)izVm~lhg zT5GZqWUpZbA%Q*%U=~snpfGecm5>?%%G<~1`xmlPP93|ho_gY*?IVKf3ebQ7dEu8 zTV}GvM_0O|>43*u**s7VXHPFL_Tb@fhr633c7q_#vrgKgkS!j8K5z7a(I1KsJ2L`a z-oL)ufqQ=(?A+>2UR*h{q-^oIpkNL$bD}J!)vOLzm#v?^KHgbDmyIx^h;&Co^d8wx zM`{RhR=j1I7a%rT@4(5c!`+oO>}m_`#OmPlh#wIoMZH|R3Q4x%L`OGw_CIl3iOMI; ztSRX%i4`_}s3{t4S}vt;Itu_aAm|%)nH=7n?wqgjmJyqwL)?+)BOcXxyKjORP1FoM z6&b+&^TXxYUh9~1N~wVe%XBMKzV}&#xmy{RyT$BR-8tWVa=F)7xk2jca@j=OthOSKyl5p?HIjiq1DL`3h7=cDUtJ8kEee#b z?hIkMbVVq7O=dms_q^wlXDkTaIW-K_^Xv5|nkVSH^Wt(56R^mhMCUG&TCY%`hiROU z*zS{hN#@NGZtq+kyxQ}3n#OWA)8i<=RY3+2)s`zGrUb%v`3@1LFB|KqM;7)u?qWGp%M zIhABpxf(hY2O|Oii(5SSc=Y>spT7L*ba}N9%*Go%5a?ZwsJX(ByN6L}ToJ&H-2L_F z&9@he`R4HLUOb(hJNAtTs0-4Y?4{&z^*o1qQxy4y z7{k}8GnVciHTW_!HKdiCzBzpU_1U*`+qqaqzl3eQfr`R_CsGhhjJKkNVuUcu!(R_y zKf9Q|x;%Y;pv9&+`KkYuFK0M-w+jTlF(M3e5X_R+xF_pq9i0OwECh1r`QpW2Zscz_ z5C3%lK)f)m$Jb$dHjJbm&@Pao0$BPFDwuKmL0Cm;b&mESrO_29V9v$#B<+ zGxNSS*{)boH4S9vcJcGm+k?y9-A_xH=={ModI}z_Qr3b(eX03u8BtszUqUB-emd`b zd-mX;htS~Dm)GWBi`g<5vfb$tASkjB0PKyKM2!{FeD%Y5pQOg8 ztpN~_Cn@+$J5h7A0|3m#Z}%Z~k(5y)y^a(fmOm0x;Q94_(C_F)A||3Zy96nT1rdaL=f%x5bppn`%b>XG)K4ebkW4%g(&_7?>w{I;cvTH= zGiI$Rf)xdLil=vOjc`Ul!AIvW@6OZhgb2qk4))*giAbXc03=O>8?|Y%5RuJhElIr; zv4Nr?m$>)i)7xLZxIFl{0|0v;cAi}C_~KlfZDAo(6#K-H-c8S_qnFE*n@@Y!4__T2 z0|?yz{aCDNv>~Aq(|Yfr2XQhq!RvYqC$~PF&-eS|7YA(x0C4Yx?zYIC(Ow*^yDIl? zqe-mYdjKfwz0IAI&HcCgi`#|((=Fb6aj0i#y#kp<%NlG!{}mQ}%CxBn$b2YoAN9XJ zKiWHQBnTZ2J}gN?onYTov9u5Ojoz{5*4O*}4ULKyjSu||IymLcD=wvHs&8|Sq z)0!Ee5~ zy8r&*^wmP`b0mnJjmX}iv%3+UvFFhWJ4(5!OlYE)UtXS`?cII7Y#l^|Iw1S$UZuTo z`3l5_h!7qScXBs;{oTd!#omM0yHmGOR_lle4Wwy9f+ec4WKD_##EXOkNg`)B9vcK80PgWcW)J66nZS0gbOhMVS;L6~`- zk(xX15D-3nd4;Rx!&e8(b$licI1njkk}TBD;&v}0W*`K(e0V)`yZ`E7xv~0ZmM*<} zIk2eRh82b4I)c5Bb_!Pi3qpf+llw1@c2+PXl8g@A&^shtM$+Dr5x`^PbVOX-e{-~4 zF^+7WSY&L9Hq>)rYt6zjwgQNVEH=yIPlt$G-fA<30CMMt(eeCn5)Y@YtA~BlEP)*9} zd=X||UhjVK#~y9O{!&-X1#3~B9@te)tF2^Nq+*a6c=Y_9Y`Q1sXquL-QA3>Px%V!@ z=+nlMxv79=6Kx5o-ALaUA(%{%GXAG)spwGKNPUn{6PXd4{$yRB|C<>)uo!Bi&vQ?^ zQcO7!flN?~)_V~GVkf?X2(DydlK=$NS1*I`h!k{gLEt_EPzpV6I}&Cjni!;;u0lxG z^?{u`1DLE2)(xfYMnJ9U7C|(bS+>vS?b$>qlLz!+v5EPm5L4R`0R{#(a~%SR&?a(K zNM?vOhNUCqWUEhYK+hKU6k5S+^W=VnjRNYOPZL|oGUXsi+s2UGhY@?E-{lJ&&@35_ zM{t`+(A_{8UUrSNiS)ub4tAHL>U+!KL!H?GShJL>;+hm|uvti7td{2s@aR@}A7H4< z0g1iK>C83v0tmOevO2vye6a_9_#2$oK3X3Ni3;;RSeOEEb=WVTT;Bg}f3aHV!J2fG zjZxjzhLS#Z;zN~52?SuZluuur9iLBopAO>Qg$b_-1{`5!wL_@*J+7$p1m_QKad&g~ z*TaES6y_(28-mUbQr|(SE4TpR>Hyz8K7aJ<;o@e2K;djMFI#y~*%{<%)uAYu?*h^Z zJ{`>R#ns{KL)$YE3M}8-%~YZD^Ce*#si@&Ri-1rEzFofm>f-T_chT|{MdL;L79bJX z<%aD#e6&-Gv^V!|7n^DC)1DviAd68l+UYLffT=-tY-yM8@?!bv6k-THi5YoQs7#FQNn{emPpxuo8=w&By? z_uqVXiEwrN@*pC7sm7PPbrKxSk_2`r(>p55!H3<|4!`;K)5D)nEwshC_j8^DGI2w` zaB%MyLevY%8joKczIbx+82jGGeef;}huFAMnD^~sB8v|d06->&2Y(#B{pzB9aengZ zFg~T;XLVB9gxTh0Y9V6;R8BLHq91g_fYW!2x$V9F`s~a9x{sOz)*rvkJ_14}iLkbQ ziL9;=7Ur(uO#xXj9KYTF?aNPJZ)E>$pFyOtfOP8C0!~>J5S^;}p>ng^a-S?Oxqq?v z>EZ3->rW4VyCWj&!%d&K(X7wSX6m&AL7{10qYk}1#sbnOe78jT%f}!7ac^2Ju8wc} zf(zKe?wO_j6R5R$>H@%?3jeaL5aMfBy`Jst~BHd@^*43N+fZ z83B8f-sHOVcSn8in@N!vI1WsK33EVi;jX{CZE|o14F0>}?vq z`u?(`OLc%FN+}|V$TE=2&G3ToW}nXw=R1Gw(h6SvaJ^afLLeG4K@e*X8p=ev)S zSoFzkNA49@Cxz#j9~?I#O(qM&;&#Epi@s>k;zOHpo{lz) z^`iAAB1a$hg}|I#N{-e0zet-&Jh~q6c}CDRZP;{r5-A-7QFv8X@b#Zuu!Q4s+mR%*nsnS-<%D;`IH&>6<0F{TCJDCy34V zL4fAX??GfVx)*rooHTy%?dAT(-n}<_#6pDPWfQt&X|~8;a4L9Yb*X4NfDn)o-+XBU=10D<(^stE`5$@DO=LqvcNUtaB9?A>|2JI#LZM|l|U#_F&HOtLQ z868HW`UI1R%=64FD4m)WJMzpYFOQE|S}(0CMjmM*+&?I*vu^bRM3EUD{&w2BR}}&3^}bQlpS*LIsIs@lq(lN2 zvI-E>-4{nq)eTdU$>M1m!*l#P!r=EnN1|D;Z$svO^6G#PRWj8(F$)(OYBowKSwH;@ z8hI!Vhql5A9V%;Y2WMbNz#3!pded4)vmzGd5umn#35zd;h+5NsgiRhcBy;?R?sHV0 zrcBd9r5|K&GuW(J{JHY5$S|$5-Jkufr#z_pZ_zeka`B!6Y-)+eEFp`<{Z&g?{IPC?ySDLSS%{<;6WBu^_-eE!u3<#L(KLE1g+NK{au5WyhZf z`(#SfVKhzpSSxFv+yE7*8Hbh?)yJoEEWL=fb}J}2oV3r{AE|=_&ZL+97#O|s_1^?r z#ejZ2Q35NM-b9IbLg7*8@{-I=h+f@Ng_O^XOgVBTSWj^AXw_&w{p|pvE)c_5l|AA< z9%1jLrm!lgySpQt9j`7QTtE5gpxsQ72((nNKt)+6IBBTNfH0qLNZy@v>^BFm55)6D z`61QlW#yiGdL@<@M3`34SIZC2t{(mSj-T+Hw`Dj?Ve27v>qmaQwSbSO4eWe8eEsCp z6Id)iEh3H;tXWCFrwqBq0^czcZkOG&owtW;`ttJh#mRt&kO<6LCzGzKNX5`Aj+!O} z#Oa0?7yIwOx_tEG9e+0{yR-!mp*f~Ryql5~7>7DXHR$PL%_px9KRi9d`C4->2qn}J zFk=JJaWF+tdoI-KBB}$((Yxt=o8Er&>HaTwGB91p?(XaHVMZP}22vFw?%c}JyTeys zTzuK5#nsZ1iMen&`6zYu;vu#ulkRJ>+`#Fp-S=N!^>jdnJq+L>?sUYg8wXW>>-Oa=o_kKI>4Q}qN{C1DVyMcjYABQJE zoTnbLiXhxJ`R$1N;^O!jza4iiuO%UjuM+r(jSa}l*WGzsPoZP=UdV8=skQZNlVhEggIulzY z@&E`(&>~vSu?7*@G!y`4TCtY9W)o&n~T8g^VK0tDuEt_1o`*Ao&gX8?h=*t|aOxNaf> zD?Wa=FRYHyEaCNJkip>EOqrC7>U7}S<^18h>*M!J*vPcONB=%_)~P6a=Z_rMa~X9sWInef?Mx1 zb!ptFkuV|RJTnrui4ft<7dNZr{Fi^6(hMTdHqbVtLJ3h$6!l0+NLk(*Y>}qd3HkWN z_09g~um8L^ZETq$wv!A363^2#b>?Z7-o=1$06Z6`0EvolAHKN#aJv4>|2kcCm8xN( zz7yS4Y{rPKwca~~-AOD6lQ%)c+vCma`?uf!>+a$fgoO|%0bq&o1B$eUjgVQOr<2^S z6#~Mn2<@BG{^IHNv*#y!S20snbeuUgh@jcnznLvmrA!~G66nnb)`#;SPcNRlI6Qv8 z&_AgWA(H4w+0KRvs+-xN@ZcO45#hOG6C~=p^5UC|JMRvT-cK-hpTQ=+8e>{3mHj0| zB%-;cG1(J|oX6Yf2mgb@j; z_fFIh@bujw&$Gt3{ANxdpe!v9e%i2v0NIFF-h?huPXos<_nOC%5J?p=Vdl;;!*+>^ z5U?rZ3^`d9e#@EGC{WtlS#-3}+N72z6USBP)EToov#b$Mq_qWrkT9_zxmIqV5{5L> z#W=ehz{FO8vTBd%0Fy2E!Xrv_%R9k)qbeKUfeJ@T(ZG2y#wI z!n~3xk+|w=+{dP&s8VB_T5G6PVAvY9)|zl<;of@?YEdj?j*$5%HQm|dRv-zIk(Tlz z%t4#8x5^c@o}VZJ@;rAyS}vr|+}#*d5jiP5szQ&E7e+v5mNFvs^+p<-u}+2zLcH?K z9lGO#J2Q3=8xq(ZH?%*`79}GRJf|GQTx6OSqNmDG*mbpx;0|*l{Oq9D5$zW3yjj;! z!V#=uKpH2JLAWzQC!~0Wv%&>K^klT!N8sKwVw@Nusj!V?SNPyF`e_P=JJ~;>yIM__ zwJvnCc|rwmh}6(RkfzH2=Mib)5EL7w});(wwEs?(M;%LaPb8+))6H2F8iOR_0Il>r`HdE zI^OOX@IS4hpAym(u3A$*czG?yZ}#6lx?HSQyBE9F)KxL|05DX8Xzm7~G%)aT19#r; ze)wWOdwPEI;uw=IqdZ_xPbVN+{UTOqJGoA$mt)wy;^}<<_a|pxu8tQsOQYl}=*p8~ zs7X&^XN_eH$_}d_!hM?Y@cquqFR$8sdHCi)P`EL3Cx=~w2q7^^`av9jHWhGH46{W$`e0G0T|?B`p9 zyx;E&f!l+=ynw5FtGD;AwE)AOCKKwBx;91!C0x?*2*4l=vT1PH;A*$u1(1ekM;oD{ z8zX9_6=W+;j|k9aN>?EBrojqj1E>V78L?ABvh5g&C=H@nNn001$i+1Qy=1Q11@XyD zxIvux7eO>0OlX?B*>ga60QQKL`)1OWwkP^D2mpmdylViyj(+og3OTRo` zU43==@XfIZw2oi=dZLS-^7?HeK}a;|jy}(uSQu5h?c4!@fp72d*}?jo*C%a7AiTV$ z$G;xid8O=9FzzOmGon+9E_{2m`Ea`W%gdwPPYVH|Te$!HphN{R9oVi_#hprrVZcnS z3Glp>x8GlX|7!R2k39e+hNBP5U@qtfqJ2R2LUA`ZQ4T6ht6DAi(^t3OzT3b5d{^B- zJ2wO%q;7Kn5hhE12@AJ2nd6Vi3sRVYn7d5);o0@wi|N5{2dYButSCAqvZh_Ff3DwC zYo*`XK7<+N?Kjt_7mNG9?Wx?*q%{`gTv63Pfe11u+`>v_{)EuP}ilC zrrBJnX&qGyMpKJQ*Se-S4d{@$BfR_SYTku!|9RThrjbqlBSq zLPEB#-H%Uht`6tF{&;`dSe%eV=Vls+00bdpc-w_q2b0Q>4ty*MeE9PE)9L1ie?Mre z!~qas!`3kf1ilI=!32;1P)u4?23DW@`IDOur>pOOdeAnVh-Tj8bQDohxM5d`iDEdb zRl?R8+4b@2)1A%tKRuY%_Bpe3W}9sQ!aUEaj&L@A+x)}>6!yVxrp?>Cw_iWMv%6`n zwbE7OBT%~%v_@0Z?==-T1ex_NAqdFGOWA$)Tid(x6;5eGlouZFQ7um8tn;?(RYPji zbh_UA@(rDw?Wk`Z0kBPwrdkk@-a9$L#N9C1+SJWsW%t|N&B3Ghbnvzz3kF$Qn1BpY z&Qgk5{KjvAL2Lw@^;)}U+onBub-Mp?!Y+s{4xB|uBL7{Yo)QhYJvCCttNKcD@#MvW zo$H1uK%%C?Xq?bAo?nGfvVRjtB(U89rW?AmI%pAq#}beMXsxLVAOy@^n2}lx&x>HB zkRZJO;()qI3E|Wb7NXW@vUd1rBKFQ4AO1sXAYC53IToG;SetqD9H>7wm%pExRb91b zy%tHk#&rB{7gQGU9AD-iIe?f}$Y6nDW@BCj2Tg>K_CGDW#sjnBBPV1?*bHZFiV2RC zfBnZ05SD8KAVwA_wF+4yUVxirkZr(L<93qvcyedzrJvodmlT2*qafQ8>%u__k)?+?2E698}r=I&WrA)+Yg&>#nJ zaM6^%;NX1T>WZvL5TzWlptXe(xL1x#=0g<|1nF!M|7hDRZA94;?q5U!bBkyko!1=t zauK;|=F7k|ro=ILYb|gQxj4UfziUW9>mc;{lJ!HS7+9kclL!O+R)J;NBfg(NybkH>H4VA&iX`=!P1M z1|TGArnZendCPtES;F%xhBFPmj09=c!;FPE<##K~d)tbHgqEzV|1PL*2)~gs_O5P= zum^(-9xJaoh<+6g51oKu*th@)8xr+Cvj`%?Jp2AtRzJPTyUw6rfsSgldLrq)p7e@N zWRK)@L20d-ips)ZPylH_mcK-Od_lww zq$~x;lwll zM`dL{WB8)c9R%L1MYtk-d3UvUvDvv;Zuaov-px$CH(`?EgB^-}1;!K%S^($$Qm%L9 z_`%KH=gZqYdHv-DgI6qBLpd^l5WrTsp%b{+{62C)e6c6H_iy&z@2+<7^_LfFPEmWy zsJ2M(aj-P``3?@(B%gNq;fC+*cIngmCs(&Sn+zKRG{X%c3lP904bjZ`oD(`>fECFf zN2>z?o&XT~LN1Pb7!yahta!J%S#S^#v0Ey8Mg~|n-he=F0>B_^GmHrULV9>hSj=ak zQM)N#aJ3><4Mmt~jYscy1yY9|o4mcQF27xOi_8c_*Ngf3@%7FIaV8SD_i~@3)Je|= z8?aoq0r#~(TkoNytzmlny3!;Z4g0DUhc%1BYGQrwIW1lZPGuP zJ8Sw?pR`VV_Hgz1wtfBkowjKJuvp2oUW(gdlbOxjrshqT$lT5TsD}bVLA*TOT;5rI z|Lfu2`BF>S_AeJ%RUNg7&d$_x|6-gJ#mnJEEYs)q^h62Ah(D7@|(+hA9n8jz6We$>(((9 z<&r+sl|sQqI^+`}5(a3%Fi-gE+w7)aSMs4qPNv)=@ zx3!GH{r`&D%~aoJgp!kRN3TqHxj%pVuRCp(l7xpVu~J>)$JCNsi^xOnA=vQr>iEtF zTyBtok<7WEe`7Qm*>xgM!VU=2HkDZ$_we|`{^|SU-MP&$#~cLxx)Pyj&rO$DirtxI z!i9pX58v?f85#alRlKptR9^3 zD=`ZK_ZaH>UQ-Vyx*pN0ef9In-en8#L*$8UJ}E-brfF(K02B0CZy<)qglz93rp1+< z@Q(i^7_}U|&-(9G!-)RC`nfeD6XlwQK!i;;^PM-l4G9Suu=m~^FlSGKl3TE28S|2X z3{V$d-6(Oxr*C&e*n~5R-&DVGv>HU9*dZE{Sb1{OJ^_o1&T{yE5l3KAlV-V-Ya&O# zI2CkSn{;#4x&S@EsnKTd5*O1X2qHXZE0#iii)tJ^3h_n)*9g(x5h1o#2qJV!6gzN| z5Xn-&{v5EHH?w1!BKo82r(O;X55iJ;z`9$-DNQ=Z^-ix?eV(I!i#h^Qw@P{TDYpcn zSw!4^ODGHF{FVpBWCV4t~v9$KrBHM0ncYO@<0N~$}d5MHYLM+Hsp-yCo z8VfgUrCuHSW<$$md=bpOZ#J59ukB+t>X@xNOIcA~(t|@ycT#n{gh&{X8ltckT`Gmm zQ%A--j{YmqTIFV#{L&Ip^)cIb*vGLpi5&DC^X+%nRx-(zMyK+qgA0L@YJjADrRsNM z`*`%Fxi#2pkyPp}FRvNMu_Pg^pCz$Bj&?=L=pTv9*%6Tfu(9FiO%F^2v2-YX-Id=i0L) zj)RESleC6PVv8agf)F`D$Ha#SQbuS&|DS&P?jlT!0>CI&O<BaI5ZvtY2|_2hIGAIyFuDk8hNeqCNimLxs|9rJ5NBut z)6Mec^ai49%Omkn3~vZ6E$5h)NanUKL3zVS;oV|KhHY|vR0 z*k_#PowFSgnQr0!AN$rxpXJ90BGx@rCb$4X&19zDXD0Y`xWb1wcitT|ZhJTMtl=awUWz66v{I$uGh(6Q4i4>U-;N|9z*e zRCB?p*K&z47m*0-#d;zlCKiD%2qeq|G!vhFvHEo9`rBVm4lWm4;Lk#KwuJy08eyZ! z??nM)A_llRS-*R9@$~uW-dVH^VKfkc8pM#)a*W|H5a8bZ3S@WV^}f7&c60yr{^7?3 z>Cv4zDsoESfTiFgt73*=Ne16$DQ~~LeDwDC=>5VwHL~(S9s2BM!`^#FNMK;B0>C`M z$1hh8J{+CC+@(l00fyfgvO&aAcTQJH`AQEb0(+~S(~tZ2e&5yExGAH+0XnJ8Q!&7g z<35&}8xq{VTHbrHKMASw6z@t2TiE2wPWeT7kBv-3h~ebp-qD+-+A9&suCF?K^eQ5| zlyL!<5C+ZweMqu@wmkZ{t99CCe34Dedb+}q0}_XWn9c&g-B*X5b)Z9Dw;{v!;DyPd6r$k)QZ){n6y7GHrq(c3l?-5lSO&&O zLbTBfRBMg6%PbpcPBIdQYO|))8L?7z2}>OlA{|^V70GPFb5DHO2n&#?X}*$~wP;L_ z&}tO*0EZxeR_M6iXFfHJodSS#rYVo4&VJ<*8`s9#KI`)=f{kps1J-|gX6uX_hOGQ= zFu_sKtwvE9jsV@}Z5|mV3lx_O8gRVlfjtcue>t{h(Ykuo-Q8)~Q>JNRfkqQZ2N2EU z*mOOk@sat_n*Nn7!s-kGt5jR%z;bu5q+&w zj+4Ec;JRZ3I6m$^uO-%~&Vt6##K2#~$Jb(DERH4Q0n-`lpi5Mk_L)>n0$ZCQu{iqc zPQ=V8X4++B2`#oTS~A9E2%BQqLZ~54fv%ZuVbMmXd@vkSf!^+vwTn(C3|wl4K4dh8 zxs++qFwR3x5MGLs?n`oK9!ltg6cUm{oS?9FT!#bL%8Af2QFa;+-9)ydD*;>L9-)=^ zmb158QJX`>U;+QR1J-^vqGlLDeE>VlxHEh9Q_QX0+5ACCwi1U6@vtSA?icQT7HDmX zC~KcLqLot`c0;j0RuBB5%r!EdiH8|;epz*Tl$92uYdX8^lsMuco#sztpPk{xYoS59X8KrLEuNEX- zI(`_t&;>}omIee8U!<74*wQdvdW9c|$Y#BY$~;7xWe#MJO$FvT_;(4F3kWR6h!Kh; zobhn|%iSB^QWp`-uU4eWiNe9J!qir3lYqGjm_5rZ!eR_fii%agJ#pzU)73zGwO|XB z2lljhb(eb%QpH2lLdVzFQwO>yu+;cv_}38i?G57`Xp;zF z0Lvf+Mph@vq5_UNN>27YIIn}UV9mG_b=h;%^`Kn9zYQw|3K}q1=N~V=!y5HA*?3mN2}e7cK5{|3NBXi;Q78U z<33oX@WRE2CR+$y>&49y=SSCHT*H&!k7#ZPuyYBEt6e(@$9n^5t#_{}nIY2}31uce zyR+Flxc&0i{pqp^$l?a>Xw!Vy=%6{*!(MU2H|CIr0f0#^j^}=G`@`>tduIzoq?v8% z>vD$ga5g|FY(>REP6EK4JGILbzPWq*{hR%xw>w(@IIWsa7??4HB%4K)+lA%c1uQ>E za(=wNxO4f}*9XUM?IXgqG!F>spQDBwKy1cEViHCX=xkPLL?*mG*nE0)_2_(g@@fwm zG`&1^aTKIGytp_OyzH0Sq*nsyK&@Rb`}-&7r&r69m;1#2K{H^9jfy|ecB^DT#MX$k z=D2I;uFOk1dwhPhn(n;br|wiJ4nQ4>8NMkJmncBZ21-V_6_zgRCA@!fzBl8YUr(ml zosen3#(-IZJ9l#F1GEAl007)9;O(>PzL>xK_i0Wd?=IHnrVq6wj_?Rr z!=5PiQgex317cs`YJdLX=M#+uK>^&6J2;%xC3>$wCvW(a)z~Es=;UI5|8jYFv6!e) zv$l04(()QK_pSB)8FNV4r3GF`h!fJ$^+EfC_Ai$DnGhOmIIq(Vr_i*NIFG=5N%_^D+z-~WBj0%n|FzDw9r z_YRj5hKiiTCv4>I^S#D^ts0a{orXBe1wAYf)8?9Z5y1_dyjW5lhPde}@5`kyBU3Qy z9xrzmVmf-W(`@xd90M|XOr%ugFc8jYhZw5&m$s6o+y{um1Tplj9^kO(hr?1m2nZJB zLBTdln?cub!<7PKDMpEFj~eN1-ztPkan_;;ELPb)?sp_i6hhAS(duf0sj5dky<8Ci z3vXtL4V@-^Jyes$Y{?a8my{<#>_r1d86r7INQG3zF!|BSyLAL=E3;BFnxRI88N6rB zfESqwQUtLT7>L^RQ3$b7V?hvT)TU{Hh<%9&e-MpwMx+mD_^9>0QoBkV{ic^02HR-5GiYz7p|1)k?_ z9%0fuQRhtJ#L(JzGjPO+wnZ}ZfWI;b5h0Lp*MPd#?UDBOnuNjr#aX@)6y*+}9ga$< z0Z~2I4`t$ejU5uK=8Bn{5_=H!sS{?J79i54YiFiA_6V&rm=&Rdpd@%NgVTW?2kR9R z!J%I+8Dz!gD84dSv2mF<^tltx6$-BZ#<;;`y%$m_KUObONEj@Fz$9dq*2y_d279t= zJNx1W#3vNkptm@PH2v^DVrXwOiq@a$V zCIbNU%^c%KOQ_mEYrm=X+;i`c5pp{hDcYk%O8q2B;UDr1h+IbDKv|axc;^tMA*^Q5 zJT1P3L35KHhzQstAH8N62{n)*1z6o89v89+Ja=|~kGH)Sdz8CZf(9$9?|UrK$#dLs zNU#!?(r?Mm#JInb<7*L%S&j-Sj)=N}+u2hud2dx^nS-Izd+!|-h@@X&?^!Ryvuc!~ z>J0J4$mT~_tk$XdzXGjr$N>VvF1Y8Gt^b`(oT9n`#qC@Qkc+tkyQMQe^6U&@$rn!I z4JxbaFmTi@I2lBkcdlYtfzjI%Tquz(xeUr337`gLN(oq|?m`+1w_5GAjnR>@N6XJ` zl7hXl9LbyByIKFe6vDff(Rthj#6M_2TpJP!Yun37#0|)LC$f^!(8aVNT{&01Uhts| zXyZL)%a2QxazMIrP1ITrO^ zUs!>NyCV3A5e1}u_s!p@j%~)NLvQfm!Ob4_htH4O1`vP*r;d%0x-djsexMUg&0VX0Eqz^kf8}6YdNtrzy^ej z#J~&u^zgRtuAja*+`U{FY!8t{^K3|r$bcdwK!Od31c;$wBLM4qcUqIWAo?^!NMLufb9A=9oE!RgPDIV1q_O;vm8^RX+*1MQ13y8*#i|{i?Jd?=iGT5+ z+V!CPYN+`H@AL9=3jzyuIJnrI*7+C`_Tf@fU7G}#H_c(> zAxFlQ8=L)j=GkejO>JR0GG_3E4gxfw=~jb1(5NXuy0u2F*};x1w&u5vEH5pE9Qu&s zVy!PaB-}>Xjb$zA(Rh-ZneCwL)-3Hb^hyJN z;7te!VHHUy^T8|#lTjFw35==$-l`iB!&2VsCmfad^~DUzTXs}ndYi#fYd#zZTcvyW z$wnHIEPNu$7L8a>;>DNHtg)tYqPs_gK`?v}M1+3GvmYk1Fz)(^Rx(#ZNblJ7T2(Wi zB?f3sY9fLqoL@PR~!*h-%6Ka0v4+p z9`nRF`(Ax>>vt6e)Qr>0z@Jo(1lVz?}NO-2K3bWV;pgc=uv{l+9ibcef7dO9v zBVdLyqnxM~?+N5fZGT%sij-dhn?qa;A%hGjR6Fkyr5qe0KX`ayR;kSfuRjB83Do$T z-|mDvTh>o2CN0zn%%T$uMB>gxKN^a%$=9ymSZ`~2CZX5|3uO+V6@ zn$Y$3&k5_YJPdirU|mJzJoBcA)FJX#oBa*M7mWw41w6if*{p&)~3i-RfDr8%gJ zxj(P5sYta%#he#Ct5lJ%HM3dWTQ&7q--Lp)hsw6AsJI}{=GY-L%96sZ(5Ip63e7|} zRE7!Uq+s|$s|gOOOeVw2o1vPB)Rq>L@oZE#OFcq-^ZnoSZ(T3(!=u|aZ5}*7nP!aB z7?dQfOF8H-YH-v{0M^OmJi*2N4ezY){dPFbQSd?ag~vF36~cR@vMCrN23W^Dby^OO z`|HKgr@bb+5H$4C+(wgL?Sjxr7LUwY)1=$70L$J@JNU5En2KA?LnulRjb9jJi$$fq z#tp>2)XuxtOY8vUR&U=m;%cF47g~4(YrAdqwZ{qGFN8eW zb&(i%Z+EEMB|M(+x=h3rv>a5F2Us`dhJZ9f>lVCE9mOVmf^{$E6;d<+n_9O)5pDx*1(%1KU#QK{en1a%54ZG@$avZV&i$`PmDQZkBL zQd)wDy>o6|vVAxU$+hGZ@^04JM3jHHNcl`$V2Vx5(cV%|s8UAag$&?@&KP!~uxR+W zo4a4w1QB}Y&Ryr+i^U?GN2~@cdnuTU8xBggD8R-w4b)oW-p!yMASM5Cd8;dB=;VP+ z)|Bpyc!9Zdyk*|dd7uKLY+ud8t!I~HE_%Z73C{N_^ zcbBA00{b8mopEalk3zy?GSCBNeL_#5M0li@kw%hbgj0z#{)byb=EujD>iBKSr3I_{ z1(+vBa_uY;M~KD@+CtM7#jFfd3u31vszQUs=+N+vS{poY4)?+u7Mf#e0`cwRv%w?| z?koG7vliJdIjI^u@wzltpb%t|j=AQFOdaK&+tzT`i4W zC{eM92+*cUmkbYhWgjWj88wUhtL>MPx_v@fOR@||!h+{=iE_ON18x!naEV`@JW}V= zy1a{uBlNHaH@0F=pWR4x|DZTZ=ti8V#bhuWI?Skc4BPJ*eN<*<> zqyeYQgi3{1S$xpUI9QG&G7JGF*YZMk`E0^m%UiJ)fp1?jE4daVZeV$f=QxPuh_AHe zB5dQ-q^K?UnJnmW8X zh|CMKF!$aA!=&~uos=l$U0jcFa#E=ySm=Bgv!0@W% zr&l8h#+T%+f-e;PVE>FX7{p{R^XO(CI0U0 zNB>+$LkO?vP$*w+)TYkc%pxrt-EhnHgG6(D1VHmm*@h6~;5SK)70Tt-9>|tgVhLbt zy#PB%wD}38NY8A1<@iQ?zyN=SK^z}#wK==srI)_E*c534V@BcBRDY>uYk*%JC5AUH z5@b#Pr3;|eyra`;YW}5U;))L<-5T|#RDqFUc0pWWA7zekfb4pQrG{UD+U$felGV|EYemSQ5hT(F6jL6Dej{9 z`Ew0vsF6WS9Ugwy2dl~~FaU{S6DMO6o6OCcO!ql#U5d+S2S?+~=VqGd5shgg51XUA zs|qp){`4g-`K=sfLn;*Y6|VNTDhNoDrvD5ZT_2pp97VndM|TnA$-9#K+^CaLL*I_Y z|2mBga>H`s3KN%5@4cfX|!ij98i6yXQ@t~ z1f*vq6~m7%Qq&rc9Sm;4@Qjx;O*pE|pMjalu%DRX`%36lp`UwY7F0M|)oT3l&1q*` zi*y}BBtR)aFJI)t*XDZ2K!1<0QNA06a9Zkppwc!IkQdhz9;3bScUGiZ-J3AP-*V!H zdIr~nB94*$x{YtiwVxl(We9fW%Le1g91z<#-~R{2yr2tph}PS1VUSb#(od8PP*6xc zaeEbFP=5-hFENr_P>=+1mCDhg9|f#bNST8{Kg5dC47<2}(^!d<=wao;s#J0V)C;6| zO3@=HmbT4RtQJ8^vFf;#Ae9HNX^YTPi=SU*sfrCkq$mze(?f)1hBSfeDMUlU2ytqY zkE##=rZ!E}WIu3c@t%khHYB^x2aQ6iUo~hB)`MdQGC?TW%t0k_K{-EF-|waOtzHfR zDNhBJq>0^;J$~i#GfOcCK{)SLe62ZNKMv^i%bTe+ghAJ=>&;-k=O=||B}3_x|rB8 zj5)Uy@*|_>`-2hdZ>U76c8>ly#Utj($7LBD7V$Am^~3Sn3)*6mX;2LA;_+lPhUoL- za52)yCe*zYUWdy|GSTg)!hF;R1iL^DSQYW2_;1o^6X$zONY-GXkL`>^VmMLI*YUF@ z?Gmafnrf2TE+AAp3@c%z`n_UlLdUd?wy)v5S;mXQj$b4*N|SbJ$t{C+WYc7&0-_P1 z9-*|c3o6V7;%b+~-i(YTmKcXIS6p~?hAA@qc%#@+_iKL?lhc{EK9ftbWh{<8WP!{%)=IbD-Pci z{OL{6>exQ}A^ji0;dT*GTz?C;`z1d6UHq~@;YpEFjkFaQsrSUFV~d~1);f`>SgJ?r zQmhv0nb3$tsKyJu=TIYmzy=x)M)hI*_u8TjgN_q=LWP4sD7FUVByW2T`(AW@glk)C zX(rQo38gdOC_rQ8sw%cMrv2&7@e6jwD_Z=?G;$c~*EclL)vw96$iT0Zyj7_Ur7d^c zR^r34M_eTysN)PA*Dq~SlPXkE^vN5Oj>`-3xssAEflOsn9 z>AUn3J`UCfdlb?u%jTjgUAh)jh|xqC!u4QNzKD#ZxX&d+c4Na#IaQXdUnm8IzFgF$ zEP{s|w`U|aJov(S0!XVx=&ik1L#56D+$_n=-JFpM5Uihe!P`geLp3!~F?Q9^QT1Qf zE|(~jm*Rr)SSsbPv)-2}od*%V^c#~ogd#jqHk@#EgwP4am?qyZVd0fxUE2Pm;^d@gi%_6OL156u5X%r{9R3kCwZGY#o3lPdglVx< zeb)0?=IN^gaOM2wUNCijDAl+%YLsES(NQZI zu`@iPcylq-`qwf^D%Mol-d1IpMAjin{A{8(GL43$Fbbo<3X$%QvJ*&;l!5w!#=Y;VqN>p=@ zVJMyo_sD#3g1jK_pSs;RDU0i-bXl{-VRP6xBrg(^&S38Auk5(_C= zY!N|Pv(8EVclj98YbL6W6C0`v8P&#_P;GN<1U6!jB8MP+$*bnzF|DT_9;uvT=KfhO zA#^thTx+$L@XUVEQk0v!ioJfqsre~5LIn*74(VEQ>Dlds_Ah0DLjA~vrCjMHVH`;l!?bQ7$Z$zW zA3hd1gZsa#Z6Tn!P!(P%f4a~9ijyGH3y>X2GB^xs1#)7rxQC21Dh`fU9tDNq%{t*^tmd>JR4riFudC?A+1 z1iBSC9r9{qa{>sa4^)6=%67qZ7WnK6VV1OV-`l!;iU+` zZ-tV}?xhqN&ctC4hY_J080HjiWJ^-arwL<&P4Ug6;DZ*TVuzvyn)PW{3dTrfFI%+zjO)#n$2;;(tI<0fI$XO~?6|r38dy z!V`*26a4Q0i(+8-iC%fTUk>Ns`)q0~qe2m^8E@#K5{>pj<>V~i5yw)&lV5HhyFbpK~N>tHl0z>sgz3}8nNNVD}EX!EyX!CMp8~@O; znr$FhKpXLMc!34_(F99nY!y!$3>?$+q-^77}+dn=~EDzUH*nG+E6 z`Jp72<~-ArwJ+&hu?@$gdg&_Uoe<{g{A7p|71)8lCX6M69{lpUh^s%Yc$JH*1u8Hl zh`d{KdjuF?Fp2Gxu*zi7CyaxKu};gOf+y`nNU7V(mc6T-YAncU&?UF|M7^RoRhn?C zTHB?#G6R8v_ecbZl!0XiPb61a7@Izdy6tC(&x~-0Ikyiuk%kAgPOE$$Ue7ShVAJ|q zozJccK?p`$=Vc7;xT$FwK-dZanN@1IxnZH#?(DFfBR{r0X<=G#!Gxx+Inqqgnp zMhw!^?B=P-ArfNNn_(lY;VH=?{iEA*iQo6H(a$w z5^b-^H1y1P!VWVjEL`IV+b0K`ZAjKOY5bY6ww`SzgUarVTgZ;#^L1&}#%5J$Q}%F~ zLl$<{U~)-pU3n_%6Ap-V=$Hfb0N=z9%8AeZ@q#fgIIZY}Axc`=_WY^>{`12u#PN9YLM60%fn5EvTEU-(z|=@mM8^<2 zjyNj%oby%2L>XT2Xs11>0$cY08A$mNy@UZpRO|^Zipl7+ivbKq8>5(+k?UzJFxb6! z6}VLATHUTTo7w;WP4@@5T+z$JMl`1CFiE?Bt+mBsL1c0X08neKO#vStF2*z(QR|6| z26_ydGlt?v+3Mw=@y6)pK^P#uTJ{gIGdp4D+s6-`~ zhg&jAYIA>vN|Yc$s{*SQr+S@?rdI<{m*YoXNR>Gdbpaq-Vbx*Rh@IXKb%V$_L|x)5 z$Xj0R`V1f0s7Oc|c5_u`JbIa`7!_+_KFKwHk~IohvRVJh3J*!0sI{ZHJky_uP*Jg6Dq;aDgEif}m4+>4ykD>O93&$>rYYJ3R?1v8k|*&siZ;+1{VHJ3VfuVeU_VT^w=4moSYbcPo!cU^@e zj~!5R*itXX>1%F9m`VrMJdV{K$0VPIv$~(dq-Z4t5*(#Sw9Pguj3KD8FOcp2fzfzV zZS#4}&YM`Cf%FTFlvW~sosL`4F!hBfoh*aWAFEOPz7=^j_!Hs~ub&u}DKQu)J5f9S zP}Spv6XIZKGuo5fU8@ znPndQTrd{5mp+%c|3q~IWC03Bv3CZkW8|%-vRM1t z93#TQ%$<98Mp8u<7L9|bP%z-LcL6KeE$rbQ$&oFG{4jzZp8zh0dskg0!^O1=B?-h8 zDTP%Eba9sQR#vJkyfr>93ETXa&oOhQ4GJ_4x?C)^usPn9&^M!St-|Iiur|<`w6(}& zH3AJ3%98J^>S~W>v~hM7zdKPQWw+OPp$uQ#)(_xg=HV)gTgJ_x%5Hhh)1?Sev056+ z{#2+PC=21GDrQp0)fCQP7=(R_mM5zCDIJ!brV72=_~p=ggH;)e-;q3%DCNu;)5PI&<#&|If`lZ{~S3cXyy0&rWm1UV}cC zZROsok|K^2|147ztpvfG;MUBN`}N{L4t3ugc^4wg6}dyLfz)MZTMol0N~|x8M8^)6 z>zLVQtC^uXj-@_-m{oVRS}#UB?tlNR+s-R72FW9nuv~9RM1x0<3Rkhdya7^({G|6A z#-8bAh`6N{N=eFQ=-IJuD#RGSQYr?XVl$so$Oue4V_xEOdpS;zlj<| z8qrf1DuFfQmE=_D5=b{^cqt`l){`%@*0jjlFGNL^H{CL91mFok+U8mXm|b`B7Zr^sdvOk$E{{KtVuQ~jg6QD+fy>XOAX1M&q20hE)xG7z=4BWJL)Jf z4wkkL6H>ho!MyMxzC*`xpzT&4T#a!g$WKaDv?i|ISQjM7fXW8!+_GAL1KqGremotR zznAlRYZZFB^TriqOFx6L{UIp1SW%#{I~u{gGQj+XOcW(6n(HXvV^VKYHAAR_^g)_; z%zDiNR3u!bJ>qAC#X1m(b{MQp0M+(~)v~;0JT3;mtoNzeWAb!)J=_%cbrN|=N-OY? z1FGj5*N%gC1KVkpx_c+Huo@~Pn#^FZa+Kr#)^8DXUi83!Ci82FGLG?$EkC{t*Etv! zQqbmvtgtBqb{Ku5+i!G1SJv5%YdttjQOYAEajG7cFYgSK>dOEe*v&K~p~qx3dF+wO zFgh`;%v-+H5CN$il!wIEh&+`z!l5CzLZo4qB3AmVjS2oBZ;oa^*<^-djMjhFhF5Pg z$pZ*kdAvTQ)wGVtM(5h_CP`3x{fR9+kurZzuQ=36oz(aCv*dq0v_~}oLac0oE2i?T z5Ar-=iHMeDexbquT*Phf3JfWo6gO zx4nV*`6$S?W4G3G-ONKNt_$_HOt1wZ*hafx{hYA`2bD#LC7PXpjG`-9$76mr;&?tR zoAtIuC>>R1q0$$jEf&kxrkL?&bRzMzEe<*MK)Sy*;#cKn9qpe`GpEk`u&0PU2j^g2 zDJEa|>}L+B69S9(sBLS(Xw1u?3v&(SMJg~&TOrSVcIE!eGN1g4Y$QmEaQ(DDHzZh9y5FR7>V)UJKo3XEDBpgb%Z+B6|;*^M1pUeJnY2>c<1SnO2;3ZSIa z#~Hv@H&)18!OxaT6Lh;$$wTF&y$s=9TME=;4VY7bVXIm+5`M;Fd5>J7i(+n$^Vyih zT%Ja6Vc z&)tx)>dt6HG_^+hTBX$`_e3eT<0!wwGHUWPnRnA7QftEvD4B7k1)FF~xpf(0IKgT2 zbyiYtp$WafF{to>WDL~OeG!TpXAON_{jl^P*HcHP=L9~B1SNuC`UF){iz<5P?l(fqE9Z#In``VoXTr7B&qzuP&E=<{g@q%Gw^OyALr zm>Z(t&`ncl%4J4Z%>=#_iZcnwXw{V=$wBEr8)XgH@+60uF!v(#Zh?ry ziMS<$%7$N6ISCUBBAUZXikUVj-B8nW!@Zz%r&J0o4t~)bfyVVH?&RhEI&dG%8I9%J z8167yO0acUOMWQW=Mxt9trn4@GAH0h#yah-*<(EM%uKag)K0y;b=@Clu%lu!_GTvg z1L8ztZh5=93^g8D(*CvwN1sLXg%=$_!rU9N>i7W)SQ`dyVo1+I^>AStFGB#W(Sx+E zBVwaQt$F5xVp0S{C?mqy+gFQ}M2G$e8_P8!-L0{2%9Ic-*q(_`$#{C$! z{0Ly2>A|k$NBPj<)9LI}2pG!lvDif;-xS_PuJ#>t{|Nlae>Ccd3+45;hD6NV8coxJ zyth$CHoqU`(>;Xn=ah|bheUDvHqB1MusLj&D07HEEwr92Xk*#pcRIbomW`;>V$MZX zfI~ZWPjp=~rJ|i`JyY2ypwiIeMO8k%H%AX=Men0?+_DTCnEA;3(&cKeJx+wE_wK^} zuT(fGCftyZ(>z6lYMLv;9F_5$t=`~Ic&%m38;WH@!$N6?8T(SwUW);c2tQgKtYR{j z*;oYT`-3gsP~`x6GwDc$gosnY7#ad+j1~)RISE8hv`^ZLSziWV$B?41m#YoozQi*y zjE*@=t>U=8**sWA4p$^>G0-9DZU#*BRT%P#(DkyuMuIWWKfu>xj78zsBPP z=Tt+ubMJGXJJ0jHTCZ($!wjGN5>ia>S0yq@QI?wxt=y(e)(SY%o(rfHg*TEa1% zUp46|5Qx}3?B#04I#zckk?%dsBbXeAQ^|HgVJ7bq$y12a1LX=MN1tM_>o$y|GqhX} z#RmhXsTJ{H=ovsrd-#^NppP`s7!S_yFK(Slb=04@SR?_iHO}q@^C!eb-UJa1*?Wg< zr@g>yG;AN|5wa@6ef;gp(9)7U9MqIyr}wWzd)XQ)+xlFKiEtY@UQ)y|#;CR;xWyfyGcc;{Ogov*Vd zlMp=YiM49vv%Uml-!Ru>Q4piY<5#x5KyEY1xP(c`PT9 z%8s>je9g%E-(N@ZVN=TH?<~MZEcr0pjuI!nY-qzRUon->nP9v3r_36{TaiC!;RF7e z9TKApT!3^^U2yEE+NI0BHTI%)Z&fuM4)8Ul6=M!zb;QHa`+&m;x}46X7_+x>I>FS4 z&n5~(T|61WIFRa6rvJ7LYvYoITOnQV5cEYEa>O*KQ8Y~pqBdwBIXfDNViu*5(#cWH zGsBTjk_YdQT_^&aUv0$S;(=;ebjUiTry**D1+3=4kNVz0^fBihq~3p$^OgH?DNoFe zx)hU#o}_pF;SU^!&x2PEi$^BJL>cX?E*aRxBjP7X_CP3TGtA;;kfwr4Ya?J~$e{?! z=L$QNMu_Td-twFd*c7MiC2p)tX(`+qNz}^qKZ@Z#i^35U&aoa?xnQogUE80TE2HG0 zd{C0bss5=^POzccm%LUli zQFUZffr{1)g||cMmeJ_5@ZdH8QMNI%YL*NWVu*BlwNx)~@yoM_j9g2oXp%U96R9P{ zwPX5BX^m@4=isk}JjK0Nqh)K89>=TR7Zt7}+*-y21lRMdHtOb}i<018zd};@!xn$;Z45^9)d`?LT5Cma0 zv!nMNgO_WkO_HTDA`8`gn51Hc=R~$)zO@8A*ONx2whm(hi~`WOFwk&alG+7PB3Gb8 ztUmY6W;6GBvzb?`^=h?VZ8n?rX0w^+F1`28(wUj1b7zl0BT}O_O>NQy?ijYxE3+@8 zyyes8&KihgPx#tg7VWTMUaFG$K%&;n5|u^U@#eFl|EcdURy$Rv9YHpAAEo@=@#sv5^b^go^`|3$X&gpXyDY1KU>Ahb)+ib z{6DCph^qUIzUd+Dm5|&@aDkA|!n#O?`!p|;LRY9YqK1GX9U`v{76Y#o8pC)g!f!kB znLlh!sU^y??O}=4&GSN25bXxVdF1&vn(W7}!=0K3)QWm^i?0&*2eOFN%w3tr^^9c< zYIBr&0s{WU81qk(RTgk$O@k8s5pli5pfK!R0TLe5P!(yYRq zFKArKnmin%4-1AxF>}WzEkW8;!e2j7%tx4u>5zmF8&a8Ur6NHHL+ep2Nf{aG_#8+>fv5Hi&H3@gAODgMR zYxUVurUznQJ|)BLAGX>Mq;lmr)EVwwgoV4^^n34pX72O6(X2eAHqAj|3-oC z2Aw{v0l}OO&QU1`7`zJQ8KlobWHRKLim^hWj|l+PJ)i&>85ovt4*#gdpXbinX@W3`~y9B=*tiQj^x8%COXdy|WFICXx7>2#ph;slxCiPS!-Q$}=K<<9lWJ^mZYQ69F=l7gRQ<%$v! z=~o%kMxWKIdw_z9bvaAQ(!1v!;h_hWt)}XbgS{b6)kM=Y=`O7$CP>iQghbLil;j9( zQT%YI+9|(F9><3pS2~ajYMqBTJq2gQe>YE&cxTP{xk@^=Y{!rLtADn-#?r z4M4pKmJ)^PEGFijrk=3+Lh1U9Rx-#S3(Jt0Rsksfs1UfBS)bYFomOFxgpxDadH^FJ z?dP#E6YDEg>VVNo58J^IRo}QODUqu6CV@tcBXa?v8c4O>Q2|Y=YzNV(7HqzYM)Y{xxOCdN3dDlqv!^l(B%6kyZtT`6OIK3WhaL z(Ira-!dzkeezl2Qd07KQ@>z1}gN+b`F|IJz30u)q6x5bDEhh28=My8VUFxnbrVnzW zj#_Kfk~;-M(`9j3Tm5v1W}0POZ#J9tyq-7f^~UU7^W5h?&ra>)$b%W4oDi{LLu?Hj zQ8^^!v7s3A1>F$mJx)UoX25=xV)}^Vc{q{%Kw*e3FJbhgi0#0=JOVWUm|{BOXmTHC zHmUmrZY;NkR(lBqwwnyteS(D&Xs@UMm+m{ka;GHBvkY#9cZBVa^*NPnqocEvf->?J zQ8^xy+Jp8gA{z2CbD|^dvWoz>p~f|tU$+kcmh_xTIE$$@GfVbf!imtPsSyb)}A&IswA;Hezs8%qFRN7d2Z;xDfaA_f0~U=EXz<^?|qcEu0}q z!@7$1z=M>k8J2vWImk2s#ZX#z4Nt^WA>My}UBg*2VeMC53eOi{Gl#qYSHrzvt@0}o zfNIPD00NO-XB|NCA~Wh^T=qiy`bK}TeQN}LF@qq8{ew{TEM3+TqY-aLYzPH}g|IqZ zflN&zCzdBx3^5uri{pxwNZev{A`BuE^yMs^fM1TP+(gSu{dFR#Gu4o)48Ei~wa?>t zy@X~=H@E9CZjG=-)zu${L5OQ9faeg?Fr~L*GnHfsihi>85shFDH(9eEyvFK+DpMpZXuv{`gRGG6 z&=uIE?gf1_Sf?_KtrDPKBNCcnf#J`u);SC!TOAS9*%}W0E2ww{K+?q>K&UkxvVli? z>OQn}Au{$8QK3bq`#vrqxEr8XtmJkQ_X5y_SVpu84 zI|KqiBUqw*f@AVPFvbO5K`os_o)9di!s4%S!kr}7+%fQJuV)zq(HcY*@ut+cvf3BQ z+=-gG&nPX#0s>qnAwk!|vXkl1=62Y#whwR3N>kWGzuv@X#jW*rBjc2W zsMdq#1**WSu*gY~Rbkw!dk`P37et+izWq_K0O`~BLx$O@VzM-BMU{nKI4_BD9Ng^T zlZtcdP^Xxd4-}TD---XNP}C8&xFBZMOWj8N-Lc0keoxNQ`eHspt8K+G*_QdBbY!qd zYmGrmNP5AK#^)^Ddx}4PnW~fTO3f~{n>p#z4}yDdQ;RZ<;qz2HxgRVH80Y*ryK$tE zbClu-Iw*?tWaE$@JTZ#5K<_Ml?)9#vYomI62I8Jxm6=(Xu!Wn0x13FJ0|x_D>Fx4dh)n5eD@Fl)ddP@9iHkE)oBTE2(sU#E=8k3dk+{4aBb zF6&LXR5nSaqv(p~7kbfazW|_Eo0EQq)S7)BDxp@%ChKG34V6IM#!Wl;UntxW@3R?Tz(A~JK|%=2b5&vV~sh*6zZ zB~J@J?WEp2_dZ+PQKo@ytl`!mAwOGy>vzR{8`rqGrOGzW$|&K8F=(10LW$$FeL0H^(=Ni(TrR@pfS5S?s#n0Z^b5 zP|bx(6yyx8BlEq?^E^kq;rU7xS^_4j|TjWOjmhePxRhuc(P z%5PUGk2NKM zdwq3&bA5Sxb9H-jeS33#b91Htccp*j_Ih=DbA5ezeR+O+dvkq#d3$qxbA5Gvb#Z%r zxw^e3gyqg2wFygzD;xJ>%F3CB@ZMG^bP1|7B205fJqo!Q2T-k#_*wWuHS;#LX|dFQ zi@vv3Bn*SR0$YZ-;=;(#&9<4wet1yJz2O^IbWs4MJUB4#5e92#(PcnqVen=UpSlMv&H4kAZ6 z`0^6YVn0Amy;2D^SDmoFay)VhaJ+ozTgfss?uDQ!cUPN;la_-v| z%fn#2G{6Q##3}_0OpfUX0lOiTk%$z~1V?EsYxALUWCAClsz>CCS*T?J4t-NS0s)QMSJFfTD|=LjpEcYq4vv3?|k% zi97O)K|oyD4cIQHIaDIp>zhS*-M!j!1nB1dJf^CnLtirCVlAS9lMlx(dIm{9@ZP&m zMeG~rarckY2l>x05w$P0{!(GVf!v9|)ACjjo4$=SoRpOQ%KWGswMGE|8o7>X4#o^Q zakob_znEYwhM@yW-~WfE{6^SVrnJ`A<{%`(H7G*O|)Dt zB6*^LgK)^wh^ETPeVXC~5vApW*11FGg@V@u90IyCt*BA&okJpb-&luO{u3xj>sEewz$T1Aw5bWyu%-#UeHyet_PK% zXR@!W6#^DE%wFt`mb0E0^Q-SZaBuBKOgfK(VGn{f3v*WX&cFDkeR|bWo|cT zs4b2VMf9=He??m@K0UfzFJb4lp>CEHXrWYE^ii#8PcU; zQzAC6G+1-AXyEr7S$fT@B>{o?0OWCgx$ zx0pjwuk@G}k(Pk3K2<=V_+o!%i3GQH? zBr1j9eoK)t3ThveHAV7J(CNk#F8>M&I|hyPoGQ1EDQha$vwV+AlgnVC-_i<=yjx3R z3fD3qI75$2sr!?{da7n`^e1iWGo;qi-BNk;<`hd9Tzx{MtgAssiXmaW@v?Q6N&b{l zGlum$lS;cUY?11&QP-8_u*`r|OQwWlnvDR>>&8mtu;pGgUgA z4NadVeUQd-Dh#y?Dv~vM?+(3A*<=`=W+XO}zqp0$O#Px93f+O|uRQsm%+7=_u3jcVcjC( zT!^{x5!$h`m*&BkU}Hqyf+oO&YfrN6ckDhJite@yeRW7?fCArVwFF>llY!^GNVK)4 z+q+{B7(9a7=edpo#Y>jen&HSB69}RxKv1gcIvkc{;3ezn!qAF|8-jv=<>(!>P@5g$ z(qA8^uE>@mK<8e2UHn<*h^$g;M996T{+Kd0lqgEl9zuiAU4sp_oik(^O2}pFJW~Mt zaX@lTbB?NNrWn{TSbnK)tx-cF?rJu$W{lQanG}EZTV)KP7ff( zOi?0OXSMbk(g8LyAg~5-)UQDSR)^Yk%TTcQK^=uq+)xYw4t#rW-PSGK))tIyWKmpH zJK-$pfK10U`bi!Mxo>1q_Dn1uz>;6%ZkEeP;#7K?h+snzksZ9ebKPzi823PgKF{m* zX1!T&=FMzvjh!Qng{6Q+EfgpSusGQH`2VHj>z#$53Uj)75_#2taKLC%O$f!QtV@FM z?we1mU0z;K$V&g}g=m3cWwpO(=WsSMY{?%9$i?HUcVFD@UhT9lY4?bk1aQWs+*E5) z5&5-Sx?YT70WZHj<3@{XLiTPr|H0U{8MgTLHoa7fa=Qmz}ZJXv-S{R%xThZp{+WLX~JcYf1@mnifdv7-9hy1n&Lv z?&jijy>qo}C2Heit`2_J(qEi~g}b>R4YJ3qqE80^dj0qUffhG}sgW}hG0&`@RVbJ| zd$ppSwMqvCEH0;;lhwuPdgppcJ@nSD6X?=D;G3c4->J`=&Rstc78a1Uno#h~lZ%Dy zEN*RFj0p3*Vbyjy6Z&FLg0P87kaIr}?tSNK_x$d~%^vUGEXh6zpFpd*t#^spSorG_ zl@^nm-Y!WRzy0Eh`ZTTl3>8^*02S{-ck@UP=&Y-&Jxz7JO`optH>f^ z6Dm+((Lb%*e}t>{3XvsPTp&;LyZfuf^@O(@&ftO(hN^DGrVREjox|;j=7gs;E@pWB z;Fc$xE=A_vVeZ6CEDfarkT5b6Gw=*EWA8A}FmGg@p)+!aE)zf#AepXdy|;OPXSH*) zq?^sm^BUG`m}l%vA|%p8nlSYl=XshpQ=g|kw|Ud%O`BIVZx-`LFUG8H)3hHEB5YWr}R-=)bEE97g7P#C#xsr{GfV380VWE*d(%r1R( zVZB-*LYo%zX4B`*a=8S;^=jotJ?41>M9`u4&D5FzF?R%k#pJ3){lThf+PDuOARfBT zR6LTXDmk=`3RN2pLckiVZp^WfBd{d{-ukOGm{M#udAQhLkpNL|P6JC=WW-+;=>d_2 zkqZzOqPU&deS#%~Xy3k*UIRs80Oy%gTfB+lv` zvwtxp;ljO!Qbs=nPD_wr4DDufP#*r>ah-Tr{W|iNZSgm-y8v4LE53Fc(NpP6mTG#> zM&Xp4B0%bo9ks@N&go{UDj_7c++FF?M)-^k47I6HBvDPa6^3r*a!JK48Vn`FIA)m2 zsiRHe)LLTCr_&rkOj-)0tGU0sdx!$O8W@?>sys>*ZShr*Vi~+w{sXe~kqZMuf>uwN z3S46+9r^2Dk}f5h5Wh}o?=g=^?hCaPGMj*9#4}-Cd_Lop3!D2d5V&H5R3sfn*#n>L zLX1M-z7W4@*9eBvDLR7R|GoFHVCv0c$}D1M#7s6~u!rJAT@7x9ZIpLci8+V$3Ah7d zs7mxZm|wKKW+9gVLnLj5n?L}1@7YkEnM%)JXR11Gk3>bRm-;stM@$zZr<%nv%3^l+=gS)7OGf4LWDe*Nk)x?G-?bS+(2gb zSf#s2g8HeH#72@1Db}Mz%nALpA({2XEj%ECw?@`+agaaNxhv^W)1)l00PyVNI?=ZY z%fM2%rMx6dP>O8ZB0^w==0-hPOmaCOi9{4-J|P_VzG_)Q60+E%?T_L&R96uPYo#W7 zXNbNn1OaXL(_0pA_WE?wNV&_Du1oYh4hyRwY9}9X?5WGY>c~Vy*aN=l&I6%R1FqvS z+djIo#0???NC>fkTAI1zlCF1drVr}bNMc$*Y6L~?Ak19}_o0_d_8tl%K*NtuFOUD& zZ&|Pv<7K}b&!Tic0U%pZ*l+KsiYp*+nYuto94GM)4xRHl(Cv+?aLL zio#{y?-zG&PG1~gq+@N)kNVUhbOI{Ff42d02U5SMK0mTP+`Rer`tiR`+X{gM7`Sjt z$hNSYNNDQO@BHHH|Ewl~caN@?$Lo8~4<>8o2)1`ue;j)Q9Sf^wr*s}G+A}SO5#jRA z&4+t8kN@}_G$zaIQiq~ zkMBOr(C@t7m$fooxG9FkIEKnmLPTuSBvBA-=#t2I$?mJ=%~$;5+mB!TbUfWwhz}+s z9|mBY9^S~xBD|;-3%^chB4Da_9Gl?;qgd@!M%)!X>U{ zHS;WnIB2a=m)XlbSeO|F0c8?X^t|@(@ZHYuPp)pBZXW%%H?6rJ@=V+p`l<+v?Z_S( zNJkxW*oXal>A30gKfnI;S2#L&2mPRLb~#Uq93ngN0%&UbE_LIBOARj0z`Ua8_ik3i zkA7S330^y55CXC?8Jb-SYg~|3!PN#r3o6>piS} z-1_#+$Q`qUO?({gg_|M(8=L>gDT>M{e$sM@~$Qk)i}B5C;U8O;-EYQ>Wb(UAEPyok4$5 zJhRRf7=%GO$P_i$St9JQF-VF?F_?^vvL(4)*e;o<63*-+6b-6W&w9AV?gqtU&A>HC z{CN+{sC__;pjn{wX2m4}M<%Y_MK|lU0v_ji)`Qt*y+-NGlgK>J8+9|!o0UwvKBxW12 z)M62{^~OI!k$9>;Th3m*C?^heqIedfYZBZooCce?@)gln56z^YHyJA1WN6hD>3xnm zLVw?JwES3%J9)ekDpCIK@fC?MFefV_?s*QBDbi2glr*R!QJWq0?G;!6g)rdqA#?B! z2Ax7bT@K`JWh;1IOkV(Z8pp#1rKnpXq?tEuXK6(ku%Pf@tDioeE+T4;*iSq#Mt}2P z=R1yT-|3pPX&ge>y6tJyPXmilE}}HS2F@kOTV#ve!cmI>U1O)31FZz{>+cl+!5 zzsyo;wJ270AGTH7doxpym64wIJyG(z+GMh?AguUhHRx{YF%WqK{g@f1u&A-e@ANjS zo-e9J2jWj`FzngY2f_v*t&MQ5sD%<@V6U2zSZ@sdxL;)26K#MAWTv%@9i(Xs;s;YVGE9wfAXR zUQ*0ZnB;_vx$7;aSppiFrP3-8@#9z5r_cBO?!=N9@60L2rsIM#5|MQO#Kf4PxYI5U zFZbRq)y|X)XH1C9wnSX&$06~}s)F`Cc>DPL!Ow>co5w~3VhzlG0dZAA3XnsX z=RRwE75Xke|I7JZ)BvPQfA!?kjPT&!2gHEF zXuKz@8nUoFpvom2o=scRHA|u&BVX-ZKmYpbD?Z*kn?yPxbzwr3%#eWlzdS|@iOe@} zC)&4uwb!qIxcuU$L+A`(ZcW{iI?rI7qtKKyrpv+&Tf_ix1N(0mzy0O%tA8KuepD~A z-e;DcoJ)dsNeAzizy1BgF9O?ln66$Av>eX~4}{``mcPycmyx$YWrwq!B) zviZ79VP6^?H-PGBGStg3nS6o z=fi)jZzlS$zn}fLpC7b!$w#|_V-`^nVWif!UL~;0KL`Nb$h}|oUwm`H1V_I&Tr&bf zS3ZWx1o5=X962L1A1Z{-_9K>)-*@_x`Sv$S7saXJPKplLd|fON2)IAExuK)<1vu z;n|PJiyH>QdB1PktoCC;=nDp-R^;h=wgi>E^m`$~75=ZUF8(G*$8V^$c710xQ#l2g zHeshTDq!qqGBA zS&@!=L;!jw`7G_H+I2$`kq-;u>1K~*_qty^nlJW*yPz|5bspS?)D8#)x)U@qr~28) zee6s5)NW}bc-cN3-CRs2lW_PD5Eh*l(x?X&4!lAl0BkU?U244KIXZ=x&v5hU_U5wVH68!a z89_QbB*wx@!mJ0P=r-hnm9RFvXOqI#17Ckwy32Esf^Nr?Hh zN)p-#wUUX4_7n3Iq)Ru<3y@=5aqzxhBntWtKF0*Pc_vCW{OIhJ(w59*j7qq{^^+6g z(l<@0}*E#7@9gw#ttSAH!Az z17sk%KotT6hwK*;BBQCiD9M6l+sF$5$o@cLk$JOG+?Tso28^M8m|OjB+7vFrz4y{K z3Mp+A*-KqBPPp#DQ>%|vY)g`yb%EZYK(*qZDUCl|QBwX{vQziC_EZ>k74sPC@rX>Y z2M-t#sZB6%Mww4W_mgheh}L;giVK}jgbic;ur#}vhcCU{`h77Y0ts^R#WO`z!F2;U z8^f$Os8kB>DW9H{vLwq|Za3+;Lr@P1rg}tqu(19W4wfZU<$?iJkVO_IbQn{_2%zd{ zwqnHf30qiNAjZ7@ptB)ai5PHd6H(JxF{ah@v&P2kbMay?pQ(T=J}Po4vrBwe0g^$_ z3J+j5TT2POLve<(r+jz|4DX>}C0KOVSY)VN7pOJ!WzPw*n9Cn*#Wl>V`eUGEsF4`E zsQbE?We!-^YNtVl0XChmgaK);I6ucl2Q|+kW{9v=$R&kcC6Up@0M%y{EB>KUFl2v& ziN#|g-fq)WyQ7t}$DVLVjzh7g~9adY%y zmp}^vwT?9l$Beh&{D|H+VWn&>Q2V0i&Uu=z?%o`|+S8{I1kAz!HlJ4`m`I26)msdN zqG?2W=eC%hfA`_ZKTnv28d=S@89cj2HvAwCEKGuPXRi;l&uX4GATmS$=|4X__+#(z z&5i|aY@Fl7I~Me*-rPI-rAQcBBh_8aZbS6$>Bp=6^%wvBNI$Wt`(`%N0@s2P@2(a01$8jkhWOBqQCs=`XTV)+a2z6Q(;nFw`3_->}-4kVa*;Q zT7?FK^xl_9}#TRB*vQ(AJQNaE!u*)cb2&ufw-;l?yLP@ zzCQaJ`qBGcbq9q~AS{Nj3DCOHS?naH78MnPdY_Mf*?slH^{ekM9{spaObwWI-UcW< z&s|fN)cYK3asZ)qJ?T8_2eNqI?l1O!`|kY9e;@9BYEeq>OHQ<-K$%ZO>y7|OmyDj> z|7q{V_ZKg|J$v}${=}iNK-l7hH3tod(90TWRzhrUF_wc@?LO@M_TBlDf9)Qe??7h+ zwe2(Hx+22eV*i}Qf4&ZKMED;3y#M0cix*#?eeugd+ki%t1X)B>qqnwnHRH^zHZ*1# zTQ3lSkKQacwE5|Wk6-=!aOWeUW3Lg(>&3cCk1~nKtYd%<-Ii7%#x4lzAbjxa?(-k6 z8TtON`>l7GgrPG^!-j&hY{Y!4IPxp7_gOhsdP5;-yYF$mT>Sjkw_pF)-RY(`oYp&Q z*7T$RBg+CDcp|(EP*(a~%~68DAUmJhzn)w&!2REL8sqiD)z#g8y@KmC+-&H2UYO_w zBG8iH5gYK{gcD+;-HCQ4`FPO(&%eL>-~ZR?eqUUDaXU`|;Fiu@u&vEqMNukiwk&<| zXXF=q^DoEef4^EB{n4(U&8t%cvZ4j?Z(YC^XK!Wz0GyC!Vy3)@T#~#$l-n;qJ^UZI zySw-HuU9t{qDZIVxD!ulPr(GZ^l^89xxxEg{_ybPKYm{>I=}m2bG55KxlT=@DkWQ* z)UF~?eS?4u4G<9C9rC)t!Q$fR6JC6?K0A~yfC8$0P92+He>6=juHLYZL)ni6A5Lhq z#E;9{X^l%+eA>M}pE!FjR2x$yE5L#p61I)y=Cqqb73vPs87=`=OTNFkf>k@8udYEl zvt(Gxxsf*h$H}QcB0?9!!Z;&#X(Id=m>aHd_~v>&zofQ11xCP{SfV&jgoURWQP7(& zF%8-Xi(~%fdt6_xudloO8xEfX5Rg|b`qiepLJQoxVjRt;KuFE_jeQ~4{~^G-!u^!~%}4D2XQl zf{8w#(#Mmw|Km-6*{|0km*x?p))<>d0b)xEPhy^J?MoztgT?D_7R!I%z;nL3VViM_ z?GXVj80)H_8eO6YzU?jF{;(@AF7cOsbt9TgG##>@HEW%)h=@#T2#UU8fa>b1rMwW_ z+}vM5M&ML_OgT%;FgjN+M6Fdrs8x$0wILJ^OUZ3j-<(>XZQAdTY)N>P-b3r1smxxH z-e=~yr^RScBL>C)fVn<_Nqy`dKkt{X>Dq40)%>tA|etx zfg7x!BF($TnCA)`lHgSbcOww0dBhq@TTOLB%@#-nl#a-GX>IaMtwcKk7CwDQJeF1| z4Xoi^@b|yykKU{E*KGE~a~M3tT_jv!%uoOleu+qwzbKFu0d?yF&xJcABAcy)e$w<7 znDDmjxxwazVA3apCQDa!TPX3ALx5wAt%Cz&6bcRnrYWy;X zi{qG6*zKmFyym%_*I_5@@0)@>LDjA9x=Df#k5Es+ae&;XAA*!%cw_3AGd5C6F*96Kx6 zdakA<03cxId7cA#sdearCUy`<9uD|0ie%xK+;`+g=>!Uts zXArq|qs4gqY-#SFXOl`0oEVO)Gr&-!`j7 zDFt_5IaBUOEMYOsbbuf*!i!!0V|V`lyn^LNe*f+Ia+jeZ5793u5OS!gygg~fnpnk; z`+PpZ;lcUg8QwnZAMR}C7;-Zp18Araf#ztIFkgex55n(1qnshW-MQW0@U+4AyO*D+ zU(fSRm)nlWWXkh6!*Pe1Meyi-e7d2w{T$H#}bozhB*43H*bP$P8=xOA#0nv4UTrx_oW*7XhHZEZ;w# zcK(=Gm-C9R+y9VbJs)$yMS*Co$YL7U*5V6Um)^Pe`_uAp`tm1QzdO6Y2`**VcvK9T zsTaq0pz1zmY`1a>*2lUZ6JFE(U+4a=UvH3Bt+j?h{AG!PKXGBBYhS0%Cw#+2B3aV= zZ`$#{H}HGExyi96AvS8#?0(eeSqfjuKg^(q3lh>|@$Uba;PqAos~>hR z+UDLrZdM;<#k!b=nMh37vdOuwkW6zQ`!hY(6l z1PKg3q5h8g&YmvL9^7sJ^=|%ceYN(FACtWC`_6@R$s-+~2jNw3w_UXSZ;N$h~&zI{9ClTvP%I1L}if*H%abz5) z*n?JIHaK4&{t>H_20zrE@Di#5qTbN2EZ4 zwk=y2Xh%O{N_n=-X8@76Qbv`>r!hGdU`20Wq6TyCJlo0Gh~QLVz+0Vw zUc5E-cbY%kfL0W1ru%p_EMR@q(Q1UKF4gb{rP3;*ZYVCu^trP?jl(JE&Q1HUbbNM7qN078m%OfTZ&q@j< zjsk!p&AC$QXiV8IDYig~igO(eiz+61vI7ceu6}TqQLjNoT~qbpq1IZniad2tdJ;kU zM4O}4&c}rv3;~ezx;_W%3te>%I*Et!n0bX>DhwdJ020z0mm@&jL2n42u-tgaU%@e2 z&g+1DK3!hy4kB={J59i1K^T5muSi5OVcG2^o`Egt}PI#9BRsa~}kEb_Zb=ZHiltjX# z6%PFW$@0dm5zsu#fXZ}D4 z%NU^xNj}P`DS?HN-lhu_2^rWmri*XZ7gyu+pFDm07Z-$a1V;l2Rz_gXL{v>MEhL$^ zA=_mXvEzFmJ^cJ9&wpTW@niuGTTmpwY_|8h^U!*bR}3fQJVE^={eS^-jv zw}}ZDi_3PS_mH;`-u(FRkknwzFA^~6#)a0dt!7{EfY0jag327B04e>)Ij0UZ}IcLJoY~u z@BHeV43XJbjSN9*UK`RyrR%0L{|tNPTC9`g`|>+Vaf+oy?fnga3uS3(e3>gfBw~>b^7XG97hWc z%@-+zXn3#eMk$Ve0+yRb5Hvve`qB)?#bv77jDktp zt_kt^CA@5K_2|Z)ET^~S=@0r)kKRO2Gu}25Dn>B{zDc_Vn!4_cqNay0`{m0dmny$x&7OOoFN@ z*ar3z`TBGRx3Fy6-O~+?n$pgWsFj~8kNwPtXX~C3oQ;A1YQb;p_;TP;>6f-rFz$<# z2WB)7A(k$d9U1-{`J8m+@7{kTp9Nv-}YsEw+L||Y>dwqHN_WI^$3KmwL_uuJdinrqK$gD=Jp*~?ANBO4pCrG*5I4+3Ba(&TdG>g3_`GuKroNB* z-q}}gv^ReK?D!>|#{IuicTS=_2RXqb({Pb|a+OM7TfX{`FMj>}`1#nnF)|Uy?J8pB zZc(YWa*Rd@np3f#ZZ6Kg{^=!r{@gw~zPdF4BZ&5J%-)lFuW2-FmeiEoUBAT}efNKT zJf0n2|K-i`l|nHOoMM;Z`f2=30_z^_jsBitdiggGx9iiRU%fg$>qiBmMu;j3{uS)n z!(bN$@xLrO)AIy>^ENy?=hy%FPQKo5hD6|}Hqv4431^vQi>Q04{IheB2$ATZFW=_3 zes^k5$LRh|v4ag%$1eK-WfLQzYW!yYs7$ZuMJJZ6S0LBLFkV=vKkN zw9#2IOoBgXnfX9GYmd%9Kiac%;8j;4YF;#^nv@e$-xl~3Cw1JW<`;&k7$Orb7grBn zC_F)E=XR;PqGL#?AMBXal;y2>53PgI@^%e;qt+eFet|oc9jqrX{YTCu1%#(H>ii38)rqELsnKGDnS9ZqP)=$zmGj%VL zff{)2l=t{ZehB^?LQVLB<(>=LSEnhiKb`Z3C+%?;ofKsoV_dqnQXdHBs9aM8|yb5xLqaE$L*w``w zp+pc5#~sTC(H#dt_5o5eV)g(`JQs*Od*X75nJI%@^!0kF<{c<-o0`{1?HUVU7i@9> zt@s;?hz47K?Rfs}0joW8>S$OP(VfBwQ~x#tMWsqWza4wwAbS*a;K$+BE_Sy)5oeH3Mb5es|k0PVfBoapJ>D?J{4n5>S%ROMT9TkEy1; z3(&@bU;N&0ALW2oBqrUl`J&wiQKBXCCVp>Fg*X>wVsW)K7N47{?FEL zpD(nCIjZWHfjb5E=oweg2Fe%j-TlDm^7$DxMxfp|8&U;agrz`OcGjgeNY$rdc7UD1 z(cp`pJb&jm4^h;$>3t)|4uqpgT?s`mzgYEw33E5nECsWKuWbh_mKULDp@%pFj(+}=GAU^-56^YO12Ok%r z#GNSu*oMee#}U(m$gs^`|7`jFPw(WP$_K?~0mwmZ69R8d!{bRWfC`@F{<3O&Pyj$J3u~|HCWAXS%&(eNj*RF_N7TH>&4@ zYx;ZgXcx&6C}bk+`0IC1+U3zN=x}lV^!;1^+TFbZ2#nks+X1y%$9jv!-cDcw*Pzj- z=X(3Wi@*5lfJgZDuSRd`=Ze8rw}F9UXOIbJ+!^4AQm^9<_Vfz>fTzpfTYHXA|D_x+ z)u*PpY(emHctGSl$m*`vSHcZrw^#H{v&+l7x9+y_CO!Q?YRD5X$lh>`{T~t{8-NDk z)pZT(reGcP1-9QkJgs*p7JRXoTtrCNXUY&b>V5|RfJTIX;STTvAee&PAl}Py?f$+NugR)Lj{LWbILfC^J3cBZ+zaOhtVer^$F-AnZFiBzI8jH4~FtHB<7Dh?p7kQcPA; z{+uG-yaCdf7>W7j&-s_a@dn1$p}_5^jHS{>=sc z@IS-p+uOS#VIM4KU3d?uwMG~~)%^2tl5u>DeB}^}l#zX66_d!eXCjMV<<>84?#) z#1BhneE!;#&Yvi43p7v_qQ=P)%Gx4{l~tP$4&vsYBNEBj46v=sTTkimYyrKJGYu8V zWg`fYIb0j6@VPs;cS$Bd6bydX>mvw#pcZ}Ns9zOIDka&p~sEDW( zr_TM?>9WRhKjiXH)f7*Lr-yc7b{=C8V>j330V^RTWihZ4IM?s>p!-QKZ5vb3sv=LQ^w% zZbZ!%Hg+^1%?BtqGia@GYvl(RLg2SwKIAB_AV80?8fRRm{UK|AY6~)cIteoTfPN@7iaQrV+g-24EESPx$Xz z2n{MF5o0|~XwiK90R-a3K!MOCPz8|3RA=s%OC{U8z(7T1;`_b&jR~3HicarbUjF`s zfw@I)%*~4$OVkKM{ci2)jz#VbRVEXU$f;zRit2HZm+!rN{MGq-JgBLRVF8}3ES^PP ztMt7jX3Vb%QB}rD-@W(jOzpKlKKAF12ao+euPi47Q8>^Th+yaub^n;XR7H*#_~eH# zzyHbQa&yQ)zX#mZPrRyj4^;-fi`J^eErOgZ`t57m<;C{eXP16_sNj9_?^W;huSI`~ zf3t*9F-Zt!a9Z@MAKbosJYR1YaC~xOk%Ysz`V$*~DflW#aW@Q16o^O#t`7zuUO)QX zg%3}Tam_nGs@X82VE`h7m_w6QPst4gzzx@z7oYv`#fPV>)!Hd^Fxny1dAaEop*(s*!&oeu!W=c$`G^Ed6B>L?T>P^iuc=XC&)%T;0YR;`sxD4yNUzd3yI;mJOD{?@0DV)H1P^&8|~ z&MAXtX&UB0Mu^B9d~uOSU!HyT;j5o~49m7gZ*O2R0MOW2&1Ojgf4U;Cu};iotFlb3J&<_rxL&DadppJ2qSsKY;Jl`14P zFl=aM$Q1B%Groa~uld(MzW&L}cJ}H(jbX7Q=*Nj-;0WF)2p}jbBErFS7nkS6dnB&D zrQiJQsAi9U(Ewq*X22+`BFrvY&ErBH^%GoWMMF2R!SLC+JpZ%nzkG4lZs_g}kwa`^ z5imI5ND9_l`00X&NLA^W6@Nrv@XL2@f3}U+ezWrV*|YDzl4vNK3tC1(4*!^;ZB3o( zsx97>{zD7n?=EHg@a50GJ=dc>`xmk`Dg7GC@7XY`eIYoa+4$xoq@s-mf4sEAgK_qy z9lqsn|Ek|z_@X;Tx2#?xWM zzCUi-ozaWKmp{Dm=O+^_9h-2vOT>1hH#Y}qN`$P03d;B$(evXS-CEc2tsK>21XnQM zg*M^!ny7*)|Z_8TL!A65pzNeo~L8 zDHy4&e|6X%^YNMBQJ0@HHqA`A*1^?Jd!ZWw)P?GSEQvm1)%Vc;@_-+2H@8TiESFyc zB00)RL~z9OC(Nygtu6Z*%gY?K4+W#gijU78{C3>D>I_8xi0is=4j4oZCoKZ%{#MR{LfV)1 z`Vi|NOX7H=@p}IB-yCkfdH&`<-d*2VtfLf|B1q+cUCqK!FW#z1FA}xZh!{W(;rO?Y zpI*Sb|L(=@Gcoleryzie`h*^Tpo-rGkbs_ygOI8K0V3V~&BGUOUB3PAp5H#%tn2U; zvjG7)u*?J3%&js85i$$rnL|zp0PK>#dUrkimnYAEdt!~d#+zQEE2EqN5zRss>7%O% zATl@KPpBy@^zFa8y!h>Js+S)_R$$2y$z!`3cDPc`BOMJprPDn8BmN<=ela?Y7J1Wdel?Et*Wj z^0s)&FXl|(*20=#sydL{!{4>#?jc?PT!4y-4F9-1mn|ZDw*+8_XjlXd{|}kflumGd zcVUNfIMlHpT3h^s5E0+P`n4LR>ZYpNmW8rHT2(}a5YN8^p%ov-_O~D{TsN#?>Tw`9`_>zUu@wF?G8IT#>2@x3r zA**{jefpd2mVQA{6qoG@yWuOMpmlaI5Ow@e;0~cLhz-&F zg^1>^k!;QcJD~jJ^7i4`ArjiID6|qbY>Cj;+YRY$Tcy|8e2RHBjW&s7)2P-X*%1GGVA|^bYrG-;5 zL!*;C{=?a~?_blqHxIwKNYyD!t!{L(=@!ba1=-c5f&ri)5Lml`vu_ViKDd4FH;>}h z08Ya}at}$9VL|(%z`Ro9?`DEe_H6y+r!U|8=L>oTyfj?A-rHPWLB#mP zTswD7bJRs+~BhpvEtUdsXmvSf@pe1)?IfjCZ&zU{IG zpEuQ?KL6RT7Q3_CM_cEil0fU+6m2Y~&4l69;Pb`!Cog{V^DE@#i=V!-x$sM=!Eb{E{3)mTqI3@g z1?Xg7T-h_z^^dl`!ca)nvFVF;0mLc{^~-6h;Lc<|=w^(TG% zus!>sMq4!`|1}@bI;-}8)EbiR`brI81O1kXu8!-G1oYWYK@LbgJ}dv2Bp5?zWjiw9 zQ1Ob7}-|lc^dx3m?JRa@_ z>-Kcq>HSU;N1R~wq^aW341qf0sFEWD0$5BRuE!g_eQ~Rz{S)=PdXVArh`0*-w*1}$ zD4uRgY6{9-FaDzS2Ry#oWYhKMNQ-7cak?0GmApvUm*_^baPAa zd%pN4R{Cm&0+Vy@!ohHvg<5Oga2Ka&6*WD+re{~{gI}GluSM0?f3O9iAvbOu(!3Q( zKvlfHG0T03nU-a3O9O&VdU%YFzu5X0cIsj`ug<ZyE^UcbfQWA+EW1QeB;M>u z#MBP_@-rlyq)7;O87nKl~*4&k%&YRD$rR@xp(CGTF5A^c%z5f6= z*F#0&_XGeYlX5$^2<``AhXTSFBjrdFQ$&3E*X#2$`SJhv?$rwg1H2CZs7g`F{S_9B zFaktIs#9>T)+DM)f@lEliSbaWW?_3*Fq;Jh!ZjEZlcVn3L^a>ZeaH2;q!la zx&HiH{MC518G>uXhz5k@4#%N_03wM>6miQt7&Jfj6N>5C)#VrexAX0{Phb0oyO(!G z4vd!ZIB@zY5sZ*rL32~Q|H?&#KAc~C_rDyTKYRYp&$n0Cqbjdt3?@#mfL3z0T;*O+ zRL^H>+*-T&+XvshzJCATzPf&L2SyRr(1-ycz_P3{tqtMU#^@Gg!>IKHFFI0@zk2-L zdv84aw_jX;5j}4*hF=dv4&Z0+_dcAR7uf(2hYX0mEaldSS+D5p|KaVkpFchQx0hev zjm8Tk&!x47NLlStyk=;vnd#|t^zVY$Wg{9SU;j@JEaU}8Yf z%$=BUrd)8J&&M zTU(eL#|#W=B4cF^et67~AR8W%R8Nks(7xbq{^c5>`}be}6-R3{d>eZp6fE zTi0c2OPd)+CMLJ2f{2(}Ti3{ZxYh%9^#$m9rmvfe`{7>!01K>SptT`tZL`O~5Rmil zikIo9(C`9Yhx~lh)RyId@mLsR^eRMBn=z}hKUW+AyO~|c`I+ytU1B3*+8xVXtf4eA zBj6YvW@84Msi+Vko?tzHEUQ$#b=1YEmbW8wc@V&jL^k{JDptz~bi>Sz*2o^o5S&mg zRFQo8vA=h)W)<6&c6-)fXgO)THYL{0jv;YWIRcvc#TQIIKmwy2=O%)CB%ympVujop zgx_8j{fNA;jdlxI7+Jtnp&M`vdtL%#GO{Gw|C3hUy6*NcUD5}}{S~B(+^xIh; zE<-{SjE~BnkOsi5`Ha5nyRU9{oqws{jTEt^a|#9vKH@s|av7!Xw=n!RU*n>cwVCV}ab7oAo0P^OubPG*rb z&T1$Gw1WQ^^^dBg3%&gZ08|qIS0**}nB+aq^v>dtW!6|kC!NL^+QFFO#DP&kY6f6q zC{b1ng^fx4Q;QY=3vY7#ZoA!^LL?qsoNa1)B76S&@tqT_uMRdtbCzEZSs|N)Xpd?E zoppzZf3akUM>{G%`{Ap{pPmy2xCC}uR;^$2KwbwwtX4iZ%+gWY)AgGl+!}yfbJDS6`kzeear2ygX$<3|^~ATAC%qh`({Iz0&iaJ|#Zug|~!{wut* z_2~j&+&W|stSSZ2LuX`&QA9`1zY3U73J@8i_aZ)n0LC zMU!4>i8so~IT&5Y0Z4bA}QH# zAIj;kzWd=+3{5WxFM$S!D|0{FcT14;(9f{%|~dpnvuP*XP{N`1+mG zF2<%+P&DaYG%;zh*Y!Ju@OH5;9t`@?cW?gsLeA*hAKlq*yKK9!fYNBY(;!SZJsoIw z1m9lT_4(b|7X-rJ{dl`Qbmt!W`%|kfXGU)vTvBBRAYcH{0iIt0fSp~wI)6&1@A0$m z3#Y*{o<0c(v_fQg+$oifNaz6EF?`3kJiPtE-KGcn^1aPP5G-`X06^U5ktZs6 z8@F{PFPe;NB}FpwBuMVl0ACslkRcunuA08U+n2WvYY8%X0sT`iaCi=Y;b|&jG29@C z3XvWDtn~x+Z%hW9|2J4zRi#)_)p`c8oDZa4kgCBe=L`r3jO#z+?VW{wdpaHwf8QQ{ zO<7w$L8qlA6~eO#wbtC3;!aN?qt|skJ6!!{++3@guK$^+5i3-uqaW ze;U`@(XMTM9$n0}4RY0>+?r`E@7IJcr#VQB+|(m4|LXjD89({okJqmZ5#idgaA3PGp0xVLBgh(0hcr5?6-0HszkL1u z^LPH;^ZwcPQUPBfe-}4UM0F-xWb*YLXuU6oK_+>teg3nH^Z)!relwnrIElEU&V~ft z7Q*P{ccqI9ZnIZaVq~VaF75pA`TzY4KDu82;qKd;4ratnhlGy6v@C0ZheZW~fM#a8 zE{7p9v=cKTw!`xDe|>Pe+ur(jFJ9b^LL4EYn>a8z_q1zh!g||gf@4`%KzQ*#UA=s3 zdHetI_45}J@M)xVS-0&37Oax0m-W6nOrr!MjnT~v7Zw?>{^v*6Ke>GC|NYg?mm6r< z!A9@e#ZND7S=|%2^$h@)wm31MwS^G3?c_O3Fwh75<^S^N!9PD=e|3EnLvMf6dPfs8 z_uhR8?GrvX9?a%Ad=oQ^6X42U|C>kp+4HM^ycR+6W>RZib@aY)6H#K;^do4hLN2w4 z3!{Ok+&gpbCvt?QHR*LDn_s+ng(s((I z<852t{D(Wc(cZfOG-l8!z+q%F8={E7+{W0*#qF@lMvo`+3IMIGZ#_M~`t%jPP~b!C zdn3LATs`>cgnwA=@P;-auPhXGHWV?dii!}m;v4uUb~qCiajnF6 zONMauYg?Wi+SvtNa2%>tMj!DxLr8(J1IzkOJ*4w$wnH{`K(KQXN9 z>Zkoadek4a#zYi(b`z0hJ-F|{$r3;Qg(AJ7Z^jXYy`kt{KbH|w8WP3lr|SFTWeK07 z8QmJ-1wOn&2gii{+}3u8z^rQ}1#?UWadBKV3Bq)=1s>={xGAfb#NVn_%j-o+?klNU za~DwJ{!&G>^*e_1b36B3Zy`kt;a+KV*6tb6+y|s5G^8c?4jOYiZ`ogued$?{7wC_> zc6-{kjr!I%+^E~|dN-Vq)-ZcF=Q{YfVu(hJ?zUw1j96M^!YG3TiznSUr%e+-)QHo# zlD0}%Ew0S1lngWUf_WEbFv~2bdW2xzfCP!qBoLcmpxwt(CIX_N1FG2rl0XZF`ws4u z9Flrq7{EJ)=oHTGN*QKuXNWrOz+4ikDG{Sb%EECV79Gu+RYZH#h80LczlMt6}dVa`t#gfQG;ZK79g}+SY+kG`Qq;R*n1dR$1*PtU5J;5UwwC|*C zS{Q#KPF6wkdlCj#1t%C93hWBm$a?^GP47;*@g@q&SOb};h6gag&`uW(xJ2}J?;7f} z7Rd}_2Qqoe9-B;`C71+1F{kS)YO~tz)YR@+gGfB5Jp}`e8u{5u<{+|pnqUh=^m%z z9H#wsf?y0So06a%?c!^C`u@i6AFuvMzAJ;;mLn(FB0CW(svMtDsP%qkKD)8?`QeX0 zxc%YpnQkU0HDd3?ZAm>pnR&!)WY8iO zA*Q-mLM{!F6m1ju?CtH(Hhc8P^UiSn`bNAtOwJRReocn7;=96>OPsu*X~(-;;kQ@v z>hSzWFE3%VyLX1JPzhdj7f8Xa;FiT>e-!_UIR2}uC(F4&^a~}4iKTdWYRbaigrVGI){t%o5#m?d?;Uk z7z`0YWI$4PWcs?_d$39*3g|4mghqHrc8B;4!y9s~ou0M6H4QWyl9_R6CA4n~R&%l1 z2$8y>A`?jmxrJvJaC^FwBiXWkH*V|ZuZP9G_B1UMO*+OBjd;62SKeNXyW3ki8h)mV z>IcOA8`MJw6x4YmKplbzt-D786ig37Kjx#@&C6RhIQ)8nMM7TdNnJrKoPYC?m$;a2 z>OD0EgZ1vumeWDt_jo!f{=Pl>3aHASb~C6Jufz<@n23p)7?4B+Ln%&%7e(tlZIjX={ zo~|?{{zR+WDEbY-m`Jbao4;A!{H@q;?Ro&*+^kQe&>@xUcd$`-90Dk0Rm>W}?eq5R ze{6@R{pug!`lzO6FBRRxqI07XlmKQ3O(Dx=+@oxwpvLh0UmQBhd;j+C`WBcOZa_6w z;8Cm&OXGKo6JCQZ7=?!y?713_wS$gFI52fj_E~KZ0<5GNvKj+&4^iu2D2kn zL}>bf1O~W=o5hene1Wv>@OeDZ@ydq z>+$6VWdp&GlwtPC6PelQ{eA#HjJ-s>KDd1HFVBxpp1t$)?Zq+ZQ98Wj9(~#1E){=f z7n#xrYoDCr`Z=`Q|H~WKkJ|VCpWi%veq!R_SpYJz^x=65HyuF1;Pblj0cfcB!Q{oi zesuTN;hq22w=bV>?r9HT?a(oX59n=)eCg;L04~dt7JX)JT{b^-$YXl)*Y7;~Z_nFD zx5IoMRfed$^22cBC0Zbnyc5vFN5f21oR`$N@zwhI|9tuSuW#rdUv{HqS$((Jn9X1t zeE}dNcf0sd>vD|$`{we2MAq+{zkuZ#egB_%$THk4+L|>ReV_pnuIuV1&E7kV&g2c? zi<&aAstz5kH88k%4?Qb+pG-4n`0#H3{( zBmh7L`0(R%JzwphfXMkf`qFe+*2q4~P!VS4)^LVgOjOpxp;lQBe<^l&%a%~nv)pEG zRTC&d`Q#Cwo5JKqur7zdh+OMAyataP><~~M83F+7a`1Cq?_FdRV!5`^$&HN?JwCzt zcsL$jy39!*M?ms8^9OFx0ec?MwhJgmanDkkzzd#(e0&ix1?S zhN(vEvtJnQD7)|wIXF=W1|kDb21vkON}D2ah9%+{4qDb0t}2e~*g&ZauEJn=(TX+dnq1HP}Gp)^)fgtrDgIu6F!<9Z#;NFV4;_iz7x@X6siU@Fh{-BVaURW1NfgH?CWmI`Lz5pR?s0ngHOI~Bl)$j>bh+8;tS z>zE-?d-2Adf!#Iu>eA?Y*RTI-(FWrUgoe^4f_~4bkK|X@e-lZ-SgmKVMM z_=zqrKp&jFdhO2hBSb8yoo%oU(n>?tAB3~z@LzF6USVTU)bA3f!M#b5tub6RyE zC+by@78M0h3U^8T7rDYY5}YpVZXG}Qq<5k(e%xR3P&or}44aiVWeP%j()h%=0W^fi zD|8&Mt@eVx{s4dX;oV}`9QFW65JqzbWJN4FLIH+_B;ipbg1Z%O311)M9V+h?cFA~_ULKc|K6Tkd<(!tYv_DR`=Ohcg$Rv--h{I=e(QI7dLgQI z_$OQAulCW(Jj70J*~nFDG|ePck%)i*-XeRveD5RcU-lsex3`C{bETs}sdv^AMkheB zFa1Zuj0mIk2YCB8hu42M+Hde?YzAQ02CAT0p9VkOj zTYo1vcSk~`8;VXQ4KHc>Jwa5^z?jrqz4D6nm%A}T!PGo3308n#EA@{vg|>)svnIu|<8jeD#+P2WLTt=(lIB)I$8`LiFs@%Z0= z%b#qw;*AF=qkD?S-^URR@Yf__F&v4Am_%fZuBPyizx}KC9{l3@`iq;}K9;t|@yw5T zsw(24faFIwZ+Q4=E%5H1vO8)j?2Ye?GNK^wvT9(Bxg2oGTi{aH@z)r9=C8YJy`I|4V;P3VB zZh^zHu4g`Jg_6~Wsd^b;m1_+nGU6wDXKWgmlW5mP^W+F1qug(rPuUyOIl?0+py|ulK87xW{qgjgsf30zaB_i7SBa8ApnXh z5-PH>{}Z62YY!$1j<$_uN0?JrdcP;t~~w zy6&lHM5KiX6-T_?Vs6h{>iupGo*Wh)A|i~i zQp9s0Ph60JF54|m5@!>*3^Y_5(?aZA*dab8YgGYvH4+D!MG{HD^Je}=A;J|eR^S7g@PZjDOVN(R17DDI`*fjBQc9Nb1@O}LVKH|x>fcJM(5!vTS-{CbX z8igo3kt-UX6B%h{M3JH>ql8xN9Fm%fNrZH!453k5M zKqYM^(mK3m^^_puB%n&Lg%Oz=w-(Kh>Y9Z{bZ=ixrX$@AHk<2GBB1+#;DCFmLyoi5 zQx(w&{2)taGCW%~4L()Gf-!AY-5eHe20UqmnYP?9)ZFfb30}&U#_0GZ>Dix%Wwxlr zvwy1;Z<%>$4n2T!lnMxa?i>g?c9Axzg$RD?QK>&f6$4KJcuy6Ei43uQrC8`bz5&ht z5J4xpXo$681yiHOaT2IxWnC{=0txP38J4Ohl$zqs46G9K*{bVWEGf=K3+^t*BK=L; zHI`5p<;eBObY@@%G`&88!H;IP>o5fHPFSmUMpIDS6{NzHAot4}|P<~}-TlAFNH;0Ojcc(>Bs&0W7US;q_Qq(~l| z7o!cJD+@p-bu|iQ^Izn-SR1JDCPPDcGVbnBHakB?dtl>$#Me(29mr-dAl2pYz<6Ho z_Da9`0bPEp#}`8k&i~8pGKRXnKy_L>ON8|s42!B3w;46w9=5xm5(u0fST$B&ms#%CYN@uWEV)ys_Pn0L#DldiRend3-? zV7@Yftk(fB27U`q%ktJ|a(Xd34ZFEJ`#O5>J+M>1ogXONw-M7YLaZ?n4AtIZebnCm z#T|Txw?cS4F3-rBW{?i`*ob;S+V2|X;2p-HU6E-#pzr>I9)7m1AIY7+^=`pq2Jy4a zy}{Ht!f{4k(B$3ZpqKRI1D4U>{jYX=-AxT|5IqGoN!13do; zZ)orRhtu7SPOnQUuu59Z%ifToS@wMXy0`tIeUU-Nc6i3279yf@4r4r)sAh=3u( zjQ}CZ;cn_RTQ3f{(4YTj9Y+$=)(-1>ws)cXQ6JJV?w*Sfr$iDxhHBE*_U5xkaT}UWbZE%d(cJG)8CUWmzk6reGp{Y0I)*e(x7!dGS~-JEp>=L;P*+4?QOK zOVm``vcy6!f21M9AG3V6y!J7lef3ZtUaHE{TH_XVP&sS5K?wrKGpZCuWKcA^f|J|c z{QUwag~Nf)q>;AxPGkG#;9d@qmP&$hrIR{gCR2ZM@I5xxz%vRc09Vha7!#F^HH5JXRh}uNsku zO!K65Ai~-f_1W%&RW(BFf!mi@^f9Q|Zg}<)LFd6F_%BXQ5dZ`jT zlR+t}W@G51=teLz0xHr;?>*M(_qQ4{1QFeWnfz)rw=n1E;xb|+lrcyb2{g!3X&ub1 zj^}_dh7kETX@x0_V>bHMXENH5^rsK%G&>*3^idpKOf0j=pBOM*I1J4SX$2W}`k#3eH+0!Xtp z8%5Kv3jt2@sThfaBb$F|_|^@g&7gb^XmQ5F0t!dHrDvmdXV~C~h1wGys|4LJ2W}^F zi#8AfweHcsk-axY*+OsCFm6Rwj*hu0W!5XkOpUEFT|%@@b_8;H)cd%p$|?#isH^4IxMciQJTm^P8UpM??;H%A=_QDNO~( z%|R-JzJG!t)v&VnfEZ44=sdm8V$E#Hq(op(@)x-6YPX&@$LcRgi0Z+udY+^Y1nXOz zn62bli^VCG5edU#4hdX0KS|lJvRs(~WnH6*sEXyTF85nIRcrpJdQa|1&`0@++|+41 z1673h_NS>pXIm8_&1f4|NmYqfDTPdZDpP}o2wJ0H$}PScoU5I53uvOO<`0&ffk+4? zhRB;$(d|c#P|kU#72(0|&WNeqCm@G%-!(DD}Si`4CbNM3Mc#0T72> zf5rMQ7#FaNFdQbia*xxBXbq9uFfj|w>r1R99Hq$%W~ADgJ-jEe#PWb_XRxw+IHAMTm37*&SeYcJdt)MaXFcg0ObGcONo5C7Xy&gu4tWE~&; z(>UG<9P#3s01dXc;CNUc|7z$bW|06 z@Aa;$8KNkOfheewnKvf*D>Ly@x~D8zY_Q25^c6^t=d;j73&rj{+<0~g7S-vG;hZn>h z2Q$M3NRSIcGctUAee&bS@W)q||9pGXA3oc531x zunUde?-K#sRflE@4PX0b;%8@evHG+s4!#BS-`CaZ5KO&bTf{9GZX0w{iJB~}wbS^) zC+D~x#-oeWT>OC_LUS@o0%qh>Lb8wpnCg$RX6?Z*iL}APb8&M6B2)ACgQ%#816ll5 z+_qEg;UljRiWVXoz5<0axH>D3w^fWi)`rm9QZy^m0}(Cj>IGhIv{aSDdVmcsUmW1v zWR)y)0CfQ__`Wq!#3n0HUJe9z+DFHmc(o z)C}E1h-Dw}mm#@oFuDV#CU&83M(jQ!2W|LpW7)gsC+N(#rnPlOMx65LzL=@i&*v6DZ49?o$%PJ5Mn%tT0$F%xi2BwI3RQ+do@a(!t()qw zQJya|a05-8>H!1`+MqKdHrENFS<`|=*<)J8#jQcBxjXD4L(N08B+X5xBIK?_oj>+%P8o{HkCXNVHV!h?N z2u+ok07*f?gqY*IcU8`m8D&VkRslrRGdM(~xI0(iq?G^wktqOSm~;emU*Y0>3Ip@` zpt2P{+-FyP@G+c`S!H5-q-+>@M8a#3W*r1HG4CFUF+(HMK?wxH_}&dbm^so%Vd9he zRc1v-M9;IvjzSv4%9A4iL8?dwX2aWoeKWK-x*MAHsl2PGh={sT>YmNP&FnTK5nkh1 zn{+H6kOnhZ0J3sd(gJLAUS%GmN5`4lIARR5-KorB*giIRkr+&L5uke(T{_&INle1V zrM|mDqSh8}&CO)UY z)2?9|y)Ov?RRjzW*mh|juY1DQ2ueFk0AfI$znB#KiEJ@Bo%@WDk*azFU2T4g$`l;# zF!E;x4Wh42!;2K7?>rl*dgcXpka*lNG@yLYF2`6})pFN@*+3NmJ}P)vM0ea#FgpbA zKS^fCPL|6@oH6Vnm<3STURUVAS#VjbP!a!-i;s!BzcHd=gk?dJFq=3cmJ)3qW4sg6i( z+x<@x08Pd6V@YZDp4Dsz-AyF7d8N$G=d=GtRNUfr|Idh!Xa2eq|CG>{d7D%|cYkIi zLW~1)5x;Y3q%yjBawTeH(?ph_?VX$k75$sHed*e}pz%Bs&Zw!H8W4eut~g93U$JFw zO64bvjfRtblG?u0`1YTF!ZE-D2e>=CL#(?Hkt<0U z?K2P%JIg0{Ug7a9ug_`^j4uku&S+;lcvsq>0hxU@E=UWf`@(eS5QExh--io(SrDxV*}SrpMUKF7f4uSMq2% z|GRJclOaHp!(W!gSQz3?kVD%i5dA-2;rN5~?!DL7e|id^AFthJnQtjC2}-RbUU=!8 zA(-h;7e-OvK799+2kp!2_M6+g0SHteu_D;{un_Y~x%_tj*Bc4t3Sa*0Ku3H1S0}qs zLjpiI2oyKnZ$6P8Zm&izdX`6W`>FeIzqLJx{Jw>%fx}1iFY4h5wi%1;JiOvKRum)ai)!l zn?}D$AX`I{gSvqcW}Mif43)iX3+e3Ap4;W8i?%EGerHupys>IbEXiPM9Fg`yb<6Gw z@7^5FKUTyC@R&>@HSNx#`%gos!h4k@B8EKSIB%~?dHC%L-;wca_$cN`gq{2Zo(CCB zlp7mR8IVtW(WGV|SclhtiS6a3U0yh@b(X^9N9|u3aSQTy_#?={u1KVDXX>={|_sko!KE>tQe{RAqN}5Y*`L|`WiBP zIGfV|042nj)-IoB7>Px>EIaBg&mJl0;-!_VCSJA zo>fi$E@ku*GXq3Yz}t9gV|J%d#EQ+E&QP_=h6qt*Pz8lTLdlcxj4}wAx#$pfhj@d5 zjvnpfnd{Io5YZxAW2mO117H*#0EosI0jlV(`1}G9(E{O-)XZvScAWx6)WMOvceM?2 z>ky!0q=yJ1abp0gx2t2-!*;DOyD~GHl>N*8Phmx5{ipHFS70Yl{mtU*86Ams^=)Tx zM5C3aKHU4T63`TIbIQf695qADcU5dB4Z+JuC_6?>`%e0dc_jM9Qy4D@fQS|`*S~rN z(CD{CMNKNE?^i)ojCYH1@oL`g_lqymkx04+a10R@>#vBL+GBB^uW>yeiA1z!%{i$W18C=fI1zYZbB`!3YZNEnIvQzQV3XlN4FSB$6x zCiWtj%$PWpAh);%-!S5D(eq^Kf1<{Vs+y?VE{I&lEGZVNEhgn!Q&Et#E%*)Xv#I+3 z@u4YZkJ3uO26>AcHPxZw^3&`)k1A&a%%pbNy%ep!-5By`LwTK+G2Q7F>pDT-pg52| zN>V^`4+n-W5mFX$Lv;tKMHY#gs4cS)R?*8Bnc@)6~ zwf(6ZaH6^EiKJ*K+7?c`N1%1ourUS#CQ+&TJ$5eT2`hn_wRftDh8A7Mp;+Zf1H^>b zu)KwH*nDnP)5{{r&&S}$7iy|-IFG5z|PU*$8 zj?)E#ENqkiRJh}y&r38uUXB7l7qUS?adzjK$}pAT+uV}6oc0YnB^P&udjFME840x_ zk8hb)%kE=C^B`^9l!PJ0Mz9X1RV^NBe|iR<$fU`?D$kJ9;96b(;O4og#zU1cHrq!} z?$xhBwY;T9P@Q}`6O>!__vRDkWqOMso96tT-nRkyNWbTop{!z;3i^QB&h1iZIL&Qw zT(s;g>40#h(IB6{9*fI)YWFLuLL8%}X{elR)f*q>iCi8O^%ZdLyfd)rzfmTgIKbp# zyTaIuOhZqty?vAm2qjS-3Y57qH<7OD@*!pvzEm{+S=+%rIIFHT|p!%S>v8;=a}7n-ub@B3wz0RK9;j_poy?Q&18t` zNa>*ez>gH;sh*ye*a~$1kJy>IVy4E#LonH(l{; ztzLFZ8E>W}5lUvBN6?DTBjOofJUfi9?)c`ME{Lf4)#En+CYB@JNhw|emUS~s^$6VX zVZS;W;{y$gL1XI`>y6+PC+ANd*yTl}!c`N0m;vDZ z+M$LotZjoKlbZ$J_^hD9qqM=xOfs9gf5GlQrtdFCT&V#A z!wzRp&*?yLD0w(Cr<6W8mEpJyo3gBESixX}@rse>2ZO8x|7_88|)hbxyu=OxL1d1z+L6K_8g8(ZV05mfL^@%D+ z9OtHkfpcB~fN`mtxgL^rJp&l^-JaD=xsh>*>PbL!CC8C&o;ruPPt(roo3c|mx}(ky z)#~evDas5~Toa)@yqVLNtP_zMpqljV;wI%GGoF7bw_a_V8Vf!Hj3`4C2e+F9B z40oFbQ&StBnqh93w6i#4WQlu_gUo=?d?lR_)@s9??~sfqBchrcPNHkk-(fOJ*+5T7 z#W?LLd$ozH0GRyRazbew#|qc7PZ)*M1pM?KZ`z@QButFn=jF9JG6sdHo$IXX-3tlK zkIh)41`&aPAB}cl-a*uGx1Jh92~luh)b2R*ceo1U2%e;J#{B|&n=n&8TI^5E)h-W- zmkoRVH0zmN9zwKis#P-^W9+deuoLxmqh}Sdc-IHaB`t*X4g~ILH(#iOxkuf14-xQJ z_x|fWGkE>g1~Md|#fB29t42}%u4Tf%eL}3HhDnzY!oS;_+)5N=AM>_xEXU@oo&UK-X+R? zmOl^0j3vIo03DQ7Aj2VAWzz{T%HE-B(IGaBS`tp)Y#ty8LDdAODj>t}6pi&mno()j zb_Y9D@4f#w`H2;ej09ck3&v3)n!6npR1DyrRQZpkgltn-@au)*rr60tR$;bk#$;}- zEs-s7=4QBZT;~eq+M>*)V$1byrY0Nu(X6PdM|vK$0;3Z@iCGo%<#3{7+YC%);Le(| zD}}NUnP-G>S06liE@c7>5Qo?BN*37dSm_XfTbVV!{vX!g?T-|MU5qULuA&QBCO0D^ z&m83#njqKm)R}?~+m*`%49Cf^d92Z0ev0C{jgL3N8AOc;RYX;IIdCl6EhJ{$2M=x6 z-7Nn7yZe6TNh0U1h5V_rEFgjnZ;ZvX=`prof?23D6Ts)Fn5nOUT6A6k46_t%aa59V zo@c$27reoHv=)nJB5t~xiWiA`C2=C;V@Hyw-T8_Myjnh>s*1GQ0C$3dIb)QFeNX4; zP7LyDz7$ONp&+PGxy2i9CXjZ*VjLjYnDR=>C0&5b~k`IIR*giTG1}) zl5vL*^d>t*$~=pLNn2JwO^Ip>URu5(BEnAR&&kdY0i1%2yH5rO79KD9ZXk0|%oOBW zG5|UDvoER9g6D`x0d>;ZvYtH!lv@iQ$TEOqYATfJDmxkx;N`14@c?u*;+nE*VA921xBI%P7+J#*(yrP6Nk z&L=cbQRK{ussYV~q-E69cL10jygSuVRIFU<4ysU9Vh#_#uZFY=s_2@;rd-c9CB6aa$HAZH4-#=}?aHoVdaZbZS(4VCTLQQ2E1_jA10wd{9f6$2S{{dZ^vrb;pbNEO_JJL_V7ivV%MRjCGZ!p;r|O>! zwS|zjE`=RH!u^+sk?oBGbDmNXbQRq=5gbVs*XA$)Gp}c0*pQh;M5O1)5o2)DLaWJl zN7l$kx1Xo;=kZ&gBOQZCh@)Qc$-G|M!h~ap$WRfYIA-qfoi=j{8L*q#qDaD0`6GO_ z=8bQ=52_9cHeU{r6z0P8AfVP+qU3!uKrJI52EmdvFPae@*Qmc%iVS*D+&M3Sl2nG;l$kNTA9@0DSRj*w>j8fdaPltg=sQML`b7&N0~xgt%)-L2D^mKDnP zhozm=G(8|{0AjoTxQPgur#nSxhWXM2i|QN)_L=L~vtn}eZ9>7y|CL)eMtQY9alD{Y|K`(|>_7_evkrrjIw?UCGoIERg$i-#yH+tB%XyP!=r z#)mn=U{W`tR2%LAS}HY$^$?3@HbdgZ+%!rm*{gER+j7w{3o*2yk&0vxa2m=iOlqae z?nz1IYQZwYa9e;t#{ht~EC@h^qNXY?Tf>e*6}+;VekbS5CLkB^J8!L)`FP*eQsimOHzxq-7$QTp1!s43Cub$T z77=hvY>28%6JKeu)Af;BiPeiUpPAmuYAPbKtit4d$13H7uvty+^Au$#38r@#D%id= zRTABU(3LGrsEh(BaQI&^K;mi}V~pV!5|Q@4`O{a#=hx~)B|tz=>H&a4 zTi56r1T)Iu_B1#H0#a*;znlf9j}Fb)+6dpO(Q=VyPqyh#J++I zVy~MVDILw`lhS&2!RS~?R2ks=>`4E!nLs||citkOeiZ=Qvijz%AOIr%rAw{QnVU)v zB{61sG9B|oCrbX$m?1UDm`feUWOQB*tu-B+Q{t;Jki5V`RiwA|jB?}Lx03-ek^c&9 zIk;+5y`_m9wTMh&@WoVympnV0!c5zGuHz&!+#^kGMc5a_JIG>;F}#wpEr(@Y{n+3r zPvS*XK^J+=Ha*G2(koqUh+Tqb_kX>4wpA51^_X8kPzWgRzNt_*@eXYUUvP z==ROg9e`={jR_E0^ZE(hoP8qY=v-z-BMUSeaBGb>$2rAkpq3ey=nIov6wF1$u3J%O zGSO<6Rb3G>?Y|o93D`Y*0t1;Zi1-^_Ist${DeszPT_v$yj=w%@ky<3Bk|BU(&;be5 zKumdfatPDD;Wxcj6{r_f=og+b2r#4f7NJ^sGY)3XFK{h0tP$lpkuGswJGUh_Ldge-FH7d+8EMTpHt2pCh80`E9lRe@ zm6H45d@=ucIE;!k#z342dbhfH$CGCevsytj<)pLL1&U1*|ELe{M|z(#)NNlFnU^rXTt^YlRB_T6Bkj7Co5UK&v%|_Sh%DtP$#V*M=6y+ZI;~5(mM(r) z@vk-gYaThQ!lU`?BqB@qH+>2vlzI6{55T;Pr$d$kfE*jkaE61M=>mH(q0*I1!SaH5 zjG;)(9t0K>r?wFh+P&WLh8xeJO6zhG;J_p+6sk6D7v=IuFwTrt`Rzu9rSMQwx;Uu~w zbK|Ja_{h84RK{k`tlp<@!r^UsAW!s>`p4&Rp9uV#Mnw#hM`aO#nIRnl1u*g-CTKbd zGAV7;J96^Apky%V^y%Y{@M%hIsdxIaEZO;{-p1n#e9Y2kfq_aP{ z32ku|8Y${Nd*8UV)>;jIGKN1}>VM+m_q2H=__REkJ2)vyMZg2c7C1R2Y}`cEhEQv* zwd^w;WAv1|B34r=gix6)x#+pq*{Nq0^^Hee=Fe~pP(i0#s+z5V6p-Oh>Do`bIE6cF zvqUXJ#LbAX9#oJmY~{xF`^oQC=0@SE~=WD$RJ)K=1*+VzRGiz ztEnU8dSHxB+%P-n5lMRIrIjbtCPcjKE#yWrAEdpxm6zs^M=;=J0aG2rGLTMbl*FjGO;Tp(ws32N zD5IC}({_Pri$Z#GQ4Wb@bc+DEF_U*odhC=4eH0>Mz(5QGHI0&I1VUnLwB$_4mg1cc zoJ?pYObxw!$1t-H#)N9t7AC^BGz3!-Kr$wUnEl*^nk^^<7_NWcr)sX$J-6V)7Za&= z(_sK6y}*!2)CePzDZ{+`EBYVF&HtWlFi^BwZ@B7W*-cz~f&FsYn`%6siIaASK!`&J z;!>^+Gpy4^)_^KZZ!J{Tk$}{csO4ndvWSd`$W(H67T6DkW>v%&o=R0jpFXLXXsE3) zADU6eVj(D~D&W1gNGoiF|H6sU^M|RJz&-OKAO_KE+P?az7NwNuAoHkzM!SzA&0jgq z&y|p~(>wu_Q*unjCP;OVR78}av2%(xYOL*~dtzsPXEu`BOvPF}M-HfoG*<#Z%Ve=5Z+mEo4Jysl+w!%N_UDm&Mx>n*wUF39)J} z*cTbO5J!ZXJ4)R9#wT)Iw$dgY+sL`k_dg$r7-9pV*_{CpOCfT{tRE+$ z#v)q2<8$};Rjx-Y!f-gDb+F$9r(EI951DxPy)+Ut^HKo6>YAJZXo&WAtCq~*Lkmpu zKh}CUZ}WLk#iClPOCGr`k}m6{f??7?G%CA9ZP%?^#0T6(3$r0*Iu{}%FuMR$0TynE zEHKhHv`>eZm7i3H`)}E~0M(lsj#``tnb2Ca+_g!HRU`5jyaDRgv-`=zgJok1U$H4}klF zXkX*9H_WHqdQ>x@nd#_bbU)5j1Y}28uk0I?3O3FA8MY3ehz}VlMuSr}%tr5i$*L)- zDoR>5LI!oKLe)RnpB9+z!JE6pN`lFQ8Hi-2%rr(mI*3$cY+Jmfa)E>a7?0_sw6zeL z^Wwu2hVC6^+;-(aJ)I@fZU|KyeY2!N-6MD9Z)B#JC1o?!GN}_m@T36TI5pBA-yj}% zhpNGHptY0{BW-wj+9U$C39>Ss28Df;Sk?I?{^+C@idJiNvS7Mq9or0)}yXN`7%%}dBR$~wIf`lr94&HXjXVjZ0l%1Ik+(FZQ z)^!VTZb`6u40rnVG=^Z_<03-d$U#o}kCSuSa?LAN;{O{F51Oe)EPHHH=PALjhl9@O%1;z-U7a$Xp!?P&o*a>4HVrunA zh1!_54l`}UbK-S}lnh8%ZG5DDo~L+7w&mbb*CZ+;&ayul>&1DBwz$XYAd-yD@4(hp z0Pp-!cj38CL9Jz|t>O=`bEr9i*Jo@UWB7h_jB$5&+xr-zecOhN5-*5|iPFf4g;MgT z%HiyMT@P((Oh^bsyetbb7n?Qve|Krbiq@;PwmOC-%6ZPL zU1~Bqa)Usul2=6&wR=c9)$@xhl`Z>P@)(=VOCr+Nm6`nx9DQ?}klTpby27OI162)L z^7|5>WHLHLqDuV@vaSt`Mh7=qFNZUKg6kN-3lg{1OjV=^VO?FnA3e><2(3Bx z1qKkeobjsb*|YhaAvQxq6o{vRBDU5n%}=d0l_B5-OKj@PP6m#lln@Mn38`^V7tjEa z8SBMM1ST6r6_0WB03v2YfQbQYX-&09t-E00@I*lc2+ahX2a;A!|1L^CQx%tMxh>3| zk25w^=?^TNN(qyP$jfD%^W*eFRZNLCBq5J`ZC@ z6|S*v#;LI@0VX0m-Ph=NTmo>Ci4k)s1;m=_fr`I|@AZwuW(yICTVRqQ%36rYj}yig zbC~C7*}TIYY(HS7e>~uJHs4=C)+Qt+A4?#p5gDRat(0^WQ~2Oy21E@xS1B12t>8tt z3yF3oJo8qV@*8Gl1R)V&^T)fXQfugSy2f59kSS>&E0cMKfhlxzuA1OP?1b7t5qX*4 zuBE^p$$n-4F2+{fVi?K57{6f zRdqRmyZ)OaPrxrTN+?Y$x;) z5+HFShMCou@3fZK(q$%5@hk~alhIuT4#u#n z9#)8%Fp%%}u4RuZchl70)5j;_YN7*4(Lj?_GE0zx4^devPqqLU0wcT3G2wzxklI3(L$KkKB&`*w z3>WcmT)j&ciMmKbr3XfG6PuoxI70YVDzjSg-t(TOG(?i>DA7oVpRW;Q_ z%_r<)+SOqesrdZDo)*WTPDJR5918|uNtd8}-b&%m=HY=#X#3Mp1Jq+@mx6LCKQM>4 z+~Kk&*@tX0dM4?r2qrVh`?%OnU8=UC5*Qm??^QrGu-L{v}Ry+s8hS7Ey{D-Q#?9tsZD!V%MVNgu-}*KwFiuhxAf$Y+PIkK$_zbG>K4D8mByhNgFR}V|a^=w#H%nPLQyyfdGQ<;e zHBRJKc7nRxOjK_ihhh7_#^@YnEJ{S%=}uIc7ZLHpb6`)a7*1f%GKXw3Q=KLm%SIxu zmIidr0|LMh1r#y@BmmmB9+u={OQR8Re2GLd#>^a9JZAt#7)KC10L2`P1D@~(_e|cOMYPc!8T-l>XCKj_=mmc>UPk@K=py3OR}O_pd+#oB z=DL^4=oMsPBJTwnqXQ6tjxmVb$AH6|iz%i<4GCx5$=xUS1#ZLPTlPniJG8spN~napa)v8M6a zGF*`UoFr7Y%g7KlWF|plCMJ^Ls1lJmKP9$1VgzC}5_z{0p^vPtBoZ2-RhKRj4jo_v z!MwSSGX8_=p=Ks(jR_Idgpj>Zfhi#VCd0>TY7HEw87wYOO%W6@$gf*sRgvBu=Y-iU z8}f>uZKN9@kqjN~;fiCTh#O&dplwyP(b0cImqJVhyqCr)@*3VxjPfqv#zlnEG0a(< z{?GN3TWlPXlfiRQkzxwV5Z4z(1S7sMxV5q)0odppXMuRm-cbRM%(1eH4%`@rL?lQG zq9P}^UKhK=(`~t3h5*>Aswod?%i>~>s(7x)*R&!XarN7fsO3vr(erK5G66EWDZ}RZGXMe-6A~DZ zMgz0IbQnqf&F*>&%>odB9nrv#hi1TSQ5mf*&{`LOLer~#HrTGy%@(2W-oaSfbwqR9RrUk6Z=5w z4;jK;1#kktiVgy*j7Ed=Eh`{2oi$HDevsmp z7|Y*|hjC(`_DwA%MhehN?aL zQ?TMw3APURR;>$T6CQsEy2qg~lOEh4qzdlYjn=eOR#D58L3Kg8TYeH%CvPY}M_&~dnsOEVQy8U_hbTt7iaRq6%)F{AY09*RB6F5qhIo*i}wX{vdz|O1%sesl= zJIkH|pNX@TIa^IDUp_0HqNJJFIkB_IIor_9M0?+Md(m=oXvE$3-x^pw9Kw>B$l9ze z-jO46730&GMaIy^=rD%q>^+8Tb}3-?j@mjE%lw;St4hco#3XVT%jAV6P-fN-5AdS* zTqhRxl_tWh9&En8v)O?I6b)D$nhrA)hi6~KBo5nkFRLiPC{E}6Vv{ITtkYRrK6|04 zu(r(XqbD=BW$`~}=t!@n)cqo2sv}v;-hMr+niGi$^LLNi-I zH>?6L#s5yJC=w8sa&~B}k_NcHm=G#*1}j6#h}zDo`qWUL~@jJxg; zUr6~6BcoFeukNGq9D$06%3Ko6)l>mwC$I_YPK>{0QVG(pHi0aC>w_xnj~zCPx?2Im zt&cPrg&HgpheMD=kNJu_i%0~;l|9W0Wd(~a`WUX@XGPxMBb_0ZRq%d+?`?$DOu4y=f8LqW$ly})f*%3qw%!1!mJ zZ{6DBLIyFpBF3%x&DmNLk#d|daT*M%V2(bsI{3y1P5-;r!$C!c3_|Q%Z%eZsl-E>J zF${`aYwhg(B3!ERvWqfWe@&0k9n=jrZ*vO2p(H{@E1n4eL&mx+qq`{JDGD6Dmv_or z1zq&?I#E{~`gWqUmVnu^tfIq*y}oT%4<3pPC)`J2ap)-+ELwnNS>iD@#u%MjLqL(S ztgAOt(WK|ZuM?K)NRxrPhuX6EW8rif!Zp%s(unuoX^hdESi_@|U zNJZPy93%%|Of1p(W~Qdi%xv3EOG5-M^;uOtvumonER9{hKv$nl9TgHq*o^?Fi3~rs z5FsP02znVQ`aFODP6P6cm2P7o7=tQ^zmS<}Nr+qTCwGc6`BZ^Q=%IM84R+o?f`JJd zkdfyVz@nWr2N)q|#l|ZGKqO=ilMrr97%OV0pu-OUfx7j+6I4(sytK!TD$GF$PWG`} zFoUY}4O^=?hs%$MQNvBdF~xa@t-thLi;Xsekt6|!q}$F{KoK7F8V(TyG#Ozi^ZrUi z?}hM7x;17e+Qb4#skwYfs-I1Kas$+Z>RKnm;vz0riz}1i}zt1%VTqpTV%f` z4b@GCs7C+fKfWQLg?`UK!mtS9|OeiGM{NxhKNLTD}My9pF%>Ucm@)4 zLL5^l)YKZ-RDk9REn7ph4Om!1LhUqwsC^z#G8dlEay>}o+2&1&m5+p;d^T`-~) z)gN(|Fcme3F;d4#Z*vWUGCGosbW8c3#{Fczu^xSx8Rs+`E=%2_$IL`}mng7`cY&YL zB<-s)?Vwi&uz}IK_;Xmq8&`vLp*Us&9RfcW3;3j%gU86tq8L4=Aklns#@S-{*34I% ziVERV!5v@$>P7GBn0GWGA`oLn*q!@}vk1@v(GzE}qTg%!ggBSCl=Etwtg93SqQHaZ zEzJy|evXzbs}buy)FQJ7CH$ETN${iT*hS)|)}cx+BlUr*1A?LK-Yzy9aQ^^Uo(a_f z8j-l_i>$MTX8(Ie5U8vt`vOm|V%LJ-XP$!;eT61690?G?vEXV9=fPzIbrrBE`9sYF zsUd_%8w0pZ&PH}qPBwREbq+$SIS$iq>TZ$f_zM6^ZgJzYL#v{uJRYT9V1%4D7J}re z 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

`C!<6#x*10fNDFfSr_SeFpZnS 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�ypG>keV?J;=;`~;5$If|BYZkG*ZKg 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�r7#kX*(UL`2 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

xpXxfVN-zaa^yLci&zvU%q|0?2euw#J_*@>h0a# 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 A{Qv*} literal 0 HcmV?d00001 From 2350817bb2360e3aaf991430fc5257b0b767e4ac Mon Sep 17 00:00:00 2001 From: TheNihilisticRobot <33029416+TheNihilisticRobot@users.noreply.github.com> Date: Tue, 23 Jan 2018 18:07:16 +0100 Subject: [PATCH 100/121] Tweaked map creation documentation --- Docs/map_customization.md | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/Docs/map_customization.md b/Docs/map_customization.md index b15b7f26d..94510deba 100644 --- a/Docs/map_customization.md +++ b/Docs/map_customization.md @@ -1,7 +1,5 @@ # Map customization -This are the specific blueprint assets created to help building the environment. - ## Creating a new map Notes: - As creating a map from scratch with the Carla tools causes a crash with UE4.17.2 (Issue [#99](https://github.com/carla-simulator/carla/issues/99)), @@ -14,24 +12,32 @@ this guide will suggest dupplicating an existing level instead of creating one f ### Creating 1. Duplicate an existing map 2. Remove everything you don't need from the map - - Keep the folder "Lighting", "AtmosphericFog", "PostProcessVol" and "CarlaMapGenerator". - - It might be interesting to keep the empty level as a template and dupplicate it before starting to populate it. + - Keep the folder "Lighting", "AtmosphericFog", "PostProcessVol" and "CarlaMapGenerator" this will keep the climate working as intended and the post process saved. + - It might be interesting to keep the empty level as a template and dupplicate it before starting to populate it. 3. In the CarlaMapGenerator, there is a field "seed". You can change the map by altering that seed and clicking "Trigger Road Map Generation". "Save Road Map To Disk" should also be checked. 4. You can change the seed until you have a map you are satisfied with. 5. After that you can place new PlayerStarts at the places you want the cars to be spawned. -6. The AI already works, but the cars don't act randomly. - - They will prefer to go forward at crossings. - - If that fails they try to go left. - - Going right is the final thing to try. -7. To get a random behavior, you have to place IntersectionEntrances. +6. The AI already works, but the cars won't act randomly. Vehicles will follow the instructions given by the RoadMapGenerator. They will follow the road easily while in straight roads but wont so much when entering Intersections: +![Road_Instructions_Example.png](img/Road_Instructions_Example.png) + (This is a debug view of the instructions the road gives to the Vehicle. They will allways follow the green arrows, the white points are shared points between one or more routes, by default they order the vehicle to continue straight; Black points are off the road, the vehicle gets no instructions and drives to the left, trying to get back to the road) + +7. To get a random behavior, you have to place IntersectionEntrances, this will let you redefine the directoion the vehicle will take overwriting the directions given by the roadmap (until they finish their given order). (See the two example towns how it exactly works). - - Basically an entrance has a set of actors that will be the waypoints to guide the car through the intersection. - - For each intersection path, there is a different list of waypoints. + +*Before version 0.7.1: +For every entrance you'll have to create a series of empty actors that will be the waypoints to guide the car through the intersection; Then you'll have to asign the corresponding actors to every Path + +*After version 0.7.1: +Every IntersectionEntrance has an array called routes, adding an element to this creates an editable spline in the world with the first point on the IntersectionEntrance (You might have to select another object before you can see it) This spline defines the possible routes any car will take when entering the intersection (as the Empty actors did before) you might configure this routes as you would edit any Unreal spline. Each route will create an element in the field bellow: "Probabilities" every number in this array defines the chances of any vehicle to take the corresponding route. + 8. To change the speed of the car, use the SpeedLimiters. They are straightforward to use. (Make sure you limit the speed for the corners, otherwise the cars will try and fail to take them at full speed) 9. Traffic lights need to be scripted to avoid traffic accidents. Every street at a crossing should have its own turn at green without the other streets having green. 10. Then you can populate the world with landscape and buildings. +## Blueprint Assets + +This are the specific blueprint assets created to help building the environment. ## MultipleFloorBuilding: From 85761d61ecfef235d9216f812fab673dde3b4f3a Mon Sep 17 00:00:00 2001 From: FPerez Date: Tue, 23 Jan 2018 18:21:05 +0100 Subject: [PATCH 101/121] Tweaked Map documentation --- Docs/map_customization.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Docs/map_customization.md b/Docs/map_customization.md index 94510deba..0295628b8 100644 --- a/Docs/map_customization.md +++ b/Docs/map_customization.md @@ -19,15 +19,19 @@ this guide will suggest dupplicating an existing level instead of creating one f 5. After that you can place new PlayerStarts at the places you want the cars to be spawned. 6. The AI already works, but the cars won't act randomly. Vehicles will follow the instructions given by the RoadMapGenerator. They will follow the road easily while in straight roads but wont so much when entering Intersections: ![Road_Instructions_Example.png](img/Road_Instructions_Example.png) - (This is a debug view of the instructions the road gives to the Vehicle. They will allways follow the green arrows, the white points are shared points between one or more routes, by default they order the vehicle to continue straight; Black points are off the road, the vehicle gets no instructions and drives to the left, trying to get back to the road) + + + + + > (This is a debug view of the instructions the road gives to the Vehicle. They will allways follow the green arrows, the white points are shared points between one or more routes, by default they order the vehicle to continue straight; Black points are off the road, the vehicle gets no instructions and drives to the left, trying to get back to the road) 7. To get a random behavior, you have to place IntersectionEntrances, this will let you redefine the directoion the vehicle will take overwriting the directions given by the roadmap (until they finish their given order). (See the two example towns how it exactly works). -*Before version 0.7.1: + - Before version 0.7.1: For every entrance you'll have to create a series of empty actors that will be the waypoints to guide the car through the intersection; Then you'll have to asign the corresponding actors to every Path -*After version 0.7.1: + - After version 0.7.1: Every IntersectionEntrance has an array called routes, adding an element to this creates an editable spline in the world with the first point on the IntersectionEntrance (You might have to select another object before you can see it) This spline defines the possible routes any car will take when entering the intersection (as the Empty actors did before) you might configure this routes as you would edit any Unreal spline. Each route will create an element in the field bellow: "Probabilities" every number in this array defines the chances of any vehicle to take the corresponding route. 8. To change the speed of the car, use the SpeedLimiters. They are straightforward to use. (Make sure you limit the speed for the corners, otherwise the cars will try and fail to take them at full speed) From b785a407f9d299734062e7a2e4444532069d43ae Mon Sep 17 00:00:00 2001 From: FPerez Date: Tue, 23 Jan 2018 18:25:03 +0100 Subject: [PATCH 102/121] Tweaked Map documentation --- Docs/map_customization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docs/map_customization.md b/Docs/map_customization.md index 0295628b8..806bd156e 100644 --- a/Docs/map_customization.md +++ b/Docs/map_customization.md @@ -23,7 +23,7 @@ this guide will suggest dupplicating an existing level instead of creating one f - > (This is a debug view of the instructions the road gives to the Vehicle. They will allways follow the green arrows, the white points are shared points between one or more routes, by default they order the vehicle to continue straight; Black points are off the road, the vehicle gets no instructions and drives to the left, trying to get back to the road) + > (This is a debug view of the instructions the road gives to the Vehicle. They will allways follow the green arrows, the white points are shared points between one or more routes, by default they order the vehicle to continue straight; Black points are off the road, the vehicle gets no instructions and drives to the left, trying to get back to the road) 7. To get a random behavior, you have to place IntersectionEntrances, this will let you redefine the directoion the vehicle will take overwriting the directions given by the roadmap (until they finish their given order). (See the two example towns how it exactly works). From fb3039a501fb8c67e0c9c8c8bb343d8dd6af6331 Mon Sep 17 00:00:00 2001 From: FPerez Date: Tue, 23 Jan 2018 18:33:37 +0100 Subject: [PATCH 103/121] Tweaked Map documentation again --- Docs/map_customization.md | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/Docs/map_customization.md b/Docs/map_customization.md index 806bd156e..a17463452 100644 --- a/Docs/map_customization.md +++ b/Docs/map_customization.md @@ -19,21 +19,12 @@ this guide will suggest dupplicating an existing level instead of creating one f 5. After that you can place new PlayerStarts at the places you want the cars to be spawned. 6. The AI already works, but the cars won't act randomly. Vehicles will follow the instructions given by the RoadMapGenerator. They will follow the road easily while in straight roads but wont so much when entering Intersections: ![Road_Instructions_Example.png](img/Road_Instructions_Example.png) - - - - > (This is a debug view of the instructions the road gives to the Vehicle. They will allways follow the green arrows, the white points are shared points between one or more routes, by default they order the vehicle to continue straight; Black points are off the road, the vehicle gets no instructions and drives to the left, trying to get back to the road) 7. To get a random behavior, you have to place IntersectionEntrances, this will let you redefine the directoion the vehicle will take overwriting the directions given by the roadmap (until they finish their given order). (See the two example towns how it exactly works). - - - Before version 0.7.1: -For every entrance you'll have to create a series of empty actors that will be the waypoints to guide the car through the intersection; Then you'll have to asign the corresponding actors to every Path - - - After version 0.7.1: -Every IntersectionEntrance has an array called routes, adding an element to this creates an editable spline in the world with the first point on the IntersectionEntrance (You might have to select another object before you can see it) This spline defines the possible routes any car will take when entering the intersection (as the Empty actors did before) you might configure this routes as you would edit any Unreal spline. Each route will create an element in the field bellow: "Probabilities" every number in this array defines the chances of any vehicle to take the corresponding route. - + - Before version 0.7.1: For every entrance you'll have to create a series of empty actors that will be the waypoints to guide the car through the intersection; Then you'll have to asign the corresponding actors to every Path + - After version 0.7.1: Every IntersectionEntrance has an array called routes, adding an element to this creates an editable spline in the world with the first point on the IntersectionEntrance (You might have to select another object before you can see it) This spline defines the possible routes any car will take when entering the intersection (as the Empty actors did before) you might configure this routes as you would edit any Unreal spline. Each route will create an element in the field bellow: "Probabilities" every number in this array defines the chances of any vehicle to take the corresponding route. 8. To change the speed of the car, use the SpeedLimiters. They are straightforward to use. (Make sure you limit the speed for the corners, otherwise the cars will try and fail to take them at full speed) 9. Traffic lights need to be scripted to avoid traffic accidents. Every street at a crossing should have its own turn at green without the other streets having green. From 373cfa21649f267f3062527202cd551bb08e14c5 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 24 Jan 2018 12:33:54 +0100 Subject: [PATCH 104/121] Clarification in example settings --- Docs/Example.CarlaSettings.ini | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Docs/Example.CarlaSettings.ini b/Docs/Example.CarlaSettings.ini index 8de855982..a9e904672 100644 --- a/Docs/Example.CarlaSettings.ini +++ b/Docs/Example.CarlaSettings.ini @@ -1,4 +1,6 @@ ; Example of settings file for CARLA. +; +; Use it with `./CarlaUE4.sh -carla-settings=Path/To/This/File`. [CARLA/Server] ; If set to false, a mock controller will be used instead of waiting for a real From 022daafc69ba5afcc14e50ccb6bd990a09324d5f Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 24 Jan 2018 12:34:12 +0100 Subject: [PATCH 105/121] Update changelog --- CHANGELOG.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f52b32893..0b631ea12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,21 @@ +## CARLA 0.7.1 + + * New Python API module: Benchmark + - Defines a set of tasks and conditions to test a certain agent + - Contains a starting benchmark, CoRL2017 + - Contains Agent Class: Interface for benchmarking AIs + * New Python API module: Basic Planner (Temporary Hack) + - Provide routes for the agent + - Contains AStar module to find the shortest route + * Other Python API improvements + - Converter class to convert between Unreal world and map units + - Metrics module to summarize benchmark results + * Send vehicle's roll, pitch, and yaw to client (orientation is now deprecated) + * New RoutePlanner class for assigning fixed routes to autopilot (IntersectionEntrance has been removed) + * Create a random engine for each vehicle, which greatly improves repeatability + * Add option to skip content download in Setup.sh + * Few small fixes to the city assets + ## CARLA 0.7.0 * New Python client API @@ -9,7 +27,7 @@ - Better documentation - Protocol: renamed "ai_control" to "autopilot_control" - Merged testing client - - Added the maps for both cities, the client can now access the car position within the lane. + - Added the maps for both cities, the client can now access the car position within the lane * Make CARLA start without client by default * Added wind effect to some trees and plants * Improvements to the existing weather presets From 23dcee8cf4908197674d7208dbcef389a47d94e5 Mon Sep 17 00:00:00 2001 From: FPerez Date: Wed, 24 Jan 2018 12:35:16 +0100 Subject: [PATCH 106/121] Tweaked Map documentation again --- Docs/map_customization.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Docs/map_customization.md b/Docs/map_customization.md index a17463452..875f76203 100644 --- a/Docs/map_customization.md +++ b/Docs/map_customization.md @@ -1,8 +1,8 @@ # Map customization ## Creating a new map -Notes: - - As creating a map from scratch with the Carla tools causes a crash with UE4.17.2 (Issue [#99](https://github.com/carla-simulator/carla/issues/99)), +!!! Bug + - Creating a map from scratch with the Carla tools causes a crash with UE4.17.2 (Issue [#99](https://github.com/carla-simulator/carla/issues/99)), this guide will suggest dupplicating an existing level instead of creating one from scratch. ### Requirements From e5a9de971d3ae0f2489fb26d1caf46e9e2274d98 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 24 Jan 2018 12:36:18 +0100 Subject: [PATCH 107/121] Add Package.sh --- Package.sh | 156 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100755 Package.sh diff --git a/Package.sh b/Package.sh new file mode 100755 index 000000000..72b62e664 --- /dev/null +++ b/Package.sh @@ -0,0 +1,156 @@ +#! /bin/bash + +################################################################################ +# Packages a CARLA build. +################################################################################ + +set -e + +DOC_STRING="Makes a packaged version of CARLA for distribution. +Please make sure to run Rebuild.sh before!" + +USAGE_STRING="Usage: $0 [-h|--help] [--skip-packaging]" + +# ============================================================================== +# -- Parse arguments ----------------------------------------------------------- +# ============================================================================== + +DO_PACKAGE=true +DO_COPY_FILES=true +DO_TARBALL=true + +OPTS=`getopt -o h --long help,skip-packaging -n 'parse-options' -- "$@"` + +if [ $? != 0 ] ; then echo "$USAGE_STRING" ; exit 2 ; fi + +eval set -- "$OPTS" + +while true; do + case "$1" in + --skip-packaging ) + DO_PACKAGE=false + shift ;; + -h | --help ) + echo "$DOC_STRING" + echo "$USAGE_STRING" + exit 1 + ;; + * ) + break ;; + esac +done + +# ============================================================================== +# -- Set up environment -------------------------------------------------------- +# ============================================================================== + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +pushd "$SCRIPT_DIR" >/dev/null + +REPOSITORY_TAG=`git describe --tags --dirty --always` + +echo "Packaging version '$REPOSITORY_TAG'." + +UNREAL_PROJECT_FOLDER=${PWD}/Unreal/CarlaUE4 +DIST_FOLDER=${PWD}/Dist +BUILD_FOLDER=${DIST_FOLDER}/${REPOSITORY_TAG} + +function fatal_error { + echo -e "\033[0;31mERROR: $1\033[0m" + exit 1 +} + +function log { + echo -e "\033[0;33m$1\033[0m" +} + +# ============================================================================== +# -- Package project ----------------------------------------------------------- +# ============================================================================== + +if $DO_PACKAGE ; then + + pushd "$UNREAL_PROJECT_FOLDER" >/dev/null + + log "Packaging the project..." + + if [ ! -d "${UE4_ROOT}" ]; then + fatal_error "UE4_ROOT is not defined, or points to a non-existant directory, please set this environment variable." + fi + + rm -Rf ${BUILD_FOLDER} + mkdir ${BUILD_FOLDER} + + ${UE4_ROOT}/Engine/Build/BatchFiles/RunUAT.sh BuildCookRun \ + -project="${PWD}/CarlaUE4.uproject" \ + -noP4 -platform=Linux \ + -clientconfig=Development -serverconfig=Development \ + -cook -compile -build -stage -pak -archive \ + -archivedirectory="${BUILD_FOLDER}" + + popd >/dev/null + +fi + +if [[ ! -d ${BUILD_FOLDER}/LinuxNoEditor ]] ; then + fatal_error "Failed to package the project!" +fi + +# ============================================================================== +# -- Copy files (Python server, README, etc) ----------------------------------- +# ============================================================================== + +if $DO_COPY_FILES ; then + + DESTINATION=${BUILD_FOLDER}/LinuxNoEditor + + log "Copying extra files..." + + cp -v ./LICENSE ${DESTINATION}/LICENSE + cp -v ./CHANGELOG.md ${DESTINATION}/CHANGELOG + cp -v ./Docs/release_readme.md ${DESTINATION}/README + cp -v ./Docs/Example.CarlaSettings.ini ${DESTINATION}/Example.CarlaSettings.ini + + rsync -vhr --delete --delete-excluded \ + --exclude "__pycache__" \ + --exclude "*.pyc" \ + --exclude ".*" \ + PythonClient/ ${DESTINATION}/PythonClient + + echo + +fi + +# ============================================================================== +# -- Zip the project ----------------------------------------------------------- +# ============================================================================== + +if $DO_TARBALL ; then + + DESTINATION=${DIST_FOLDER}/CARLA_${REPOSITORY_TAG}.tar.gz + SOURCE=${BUILD_FOLDER}/LinuxNoEditor + + pushd "$SOURCE" >/dev/null + + log "Packaging build..." + + rm -f ./Manifest_NonUFSFiles_Linux.txt + rm -Rf ./CarlaUE4/Saved + rm -Rf ./Engine/Saved + + tar -czvf ${DESTINATION} * + + popd >/dev/null + +fi + +# ============================================================================== +# -- ...and we are done -------------------------------------------------------- +# ============================================================================== + +echo "" +echo "****************" +echo "*** Success! ***" +echo "****************" + +popd >/dev/null From 66f35cec9dcb5968c465bd4bc79deaadbd18846d Mon Sep 17 00:00:00 2001 From: FPerez Date: Wed, 24 Jan 2018 12:42:28 +0100 Subject: [PATCH 108/121] Tweaked Map documentation again --- Docs/map_customization.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Docs/map_customization.md b/Docs/map_customization.md index 875f76203..e52a9c0c4 100644 --- a/Docs/map_customization.md +++ b/Docs/map_customization.md @@ -10,25 +10,25 @@ this guide will suggest dupplicating an existing level instead of creating one f - Checkout and build carla from source on [Linux](how_to_build_on_linux.md) or [Windows](how_to_build_on_windows.md) ### Creating -1. Duplicate an existing map -2. Remove everything you don't need from the map - - Keep the folder "Lighting", "AtmosphericFog", "PostProcessVol" and "CarlaMapGenerator" this will keep the climate working as intended and the post process saved. - - It might be interesting to keep the empty level as a template and dupplicate it before starting to populate it. -3. In the CarlaMapGenerator, there is a field "seed". You can change the map by altering that seed and clicking "Trigger Road Map Generation". "Save Road Map To Disk" should also be checked. -4. You can change the seed until you have a map you are satisfied with. -5. After that you can place new PlayerStarts at the places you want the cars to be spawned. -6. The AI already works, but the cars won't act randomly. Vehicles will follow the instructions given by the RoadMapGenerator. They will follow the road easily while in straight roads but wont so much when entering Intersections: +- Duplicate an existing map +- Remove everything you don't need from the map + - Keep the folder "Lighting", "AtmosphericFog", "PostProcessVol" and "CarlaMapGenerator" this will keep the climate working as intended and the post process saved. + - It might be interesting to keep the empty level as a template and dupplicate it before starting to populate it. +- In the CarlaMapGenerator, there is a field "seed". You can change the map by altering that seed and clicking "Trigger Road Map Generation". "Save Road Map To Disk" should also be checked. +- You can change the seed until you have a map you are satisfied with. +- After that you can place new PlayerStarts at the places you want the cars to be spawned. +- The AI already works, but the cars won't act randomly. Vehicles will follow the instructions given by the RoadMapGenerator. They will follow the road easily while in straight roads but wont so much when entering Intersections: ![Road_Instructions_Example.png](img/Road_Instructions_Example.png) > (This is a debug view of the instructions the road gives to the Vehicle. They will allways follow the green arrows, the white points are shared points between one or more routes, by default they order the vehicle to continue straight; Black points are off the road, the vehicle gets no instructions and drives to the left, trying to get back to the road) -7. To get a random behavior, you have to place IntersectionEntrances, this will let you redefine the directoion the vehicle will take overwriting the directions given by the roadmap (until they finish their given order). +- To get a random behavior, you have to place IntersectionEntrances, this will let you redefine the directoion the vehicle will take overwriting the directions given by the roadmap (until they finish their given order). (See the two example towns how it exactly works). - - Before version 0.7.1: For every entrance you'll have to create a series of empty actors that will be the waypoints to guide the car through the intersection; Then you'll have to asign the corresponding actors to every Path - - After version 0.7.1: Every IntersectionEntrance has an array called routes, adding an element to this creates an editable spline in the world with the first point on the IntersectionEntrance (You might have to select another object before you can see it) This spline defines the possible routes any car will take when entering the intersection (as the Empty actors did before) you might configure this routes as you would edit any Unreal spline. Each route will create an element in the field bellow: "Probabilities" every number in this array defines the chances of any vehicle to take the corresponding route. -8. To change the speed of the car, use the SpeedLimiters. They are straightforward to use. (Make sure you limit the speed for the corners, otherwise the cars will try and fail to take them at full speed) -9. Traffic lights need to be scripted to avoid traffic accidents. + - Before version 0.7.1: For every entrance you'll have to create a series of empty actors that will be the waypoints to guide the car through the intersection; Then you'll have to asign the corresponding actors to every Path + - After version 0.7.1: Every IntersectionEntrance has an array called routes, adding an element to this creates an editable spline in the world with the first point on the IntersectionEntrance (You might have to select another object before you can see it) This spline defines the possible routes any car will take when entering the intersection (as the Empty actors did before) you might configure this routes as you would edit any Unreal spline. Each route will create an element in the field bellow: "Probabilities" every number in this array defines the chances of any vehicle to take the corresponding route. +- To change the speed of the car, use the SpeedLimiters. They are straightforward to use. (Make sure you limit the speed for the corners, otherwise the cars will try and fail to take them at full speed) +- Traffic lights need to be scripted to avoid traffic accidents. Every street at a crossing should have its own turn at green without the other streets having green. -10. Then you can populate the world with landscape and buildings. +- Then you can populate the world with landscape and buildings. ## Blueprint Assets From 8ebe65070d65a46d187dfd3c469339c05bc3dbcb Mon Sep 17 00:00:00 2001 From: FPerez Date: Wed, 24 Jan 2018 14:38:32 +0100 Subject: [PATCH 109/121] Spellchecked MapCustomization ducumentation --- Docs/map_customization.md | 50 +++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/Docs/map_customization.md b/Docs/map_customization.md index e52a9c0c4..0c673284a 100644 --- a/Docs/map_customization.md +++ b/Docs/map_customization.md @@ -3,28 +3,28 @@ ## Creating a new map !!! Bug - Creating a map from scratch with the Carla tools causes a crash with UE4.17.2 (Issue [#99](https://github.com/carla-simulator/carla/issues/99)), -this guide will suggest dupplicating an existing level instead of creating one from scratch. +this guide will suggest duplicating an existing level instead of creating one from scratch. ### Requirements - - Checkout and build carla from source on [Linux](how_to_build_on_linux.md) or [Windows](how_to_build_on_windows.md) + - Checkout and build Carla from source on [Linux](how_to_build_on_linux.md) or [Windows](how_to_build_on_windows.md) ### Creating - Duplicate an existing map - Remove everything you don't need from the map - Keep the folder "Lighting", "AtmosphericFog", "PostProcessVol" and "CarlaMapGenerator" this will keep the climate working as intended and the post process saved. - - It might be interesting to keep the empty level as a template and dupplicate it before starting to populate it. + - It might be interesting to keep the empty level as a template and duplicate it before starting to populate it. - In the CarlaMapGenerator, there is a field "seed". You can change the map by altering that seed and clicking "Trigger Road Map Generation". "Save Road Map To Disk" should also be checked. - You can change the seed until you have a map you are satisfied with. - After that you can place new PlayerStarts at the places you want the cars to be spawned. - The AI already works, but the cars won't act randomly. Vehicles will follow the instructions given by the RoadMapGenerator. They will follow the road easily while in straight roads but wont so much when entering Intersections: ![Road_Instructions_Example.png](img/Road_Instructions_Example.png) - > (This is a debug view of the instructions the road gives to the Vehicle. They will allways follow the green arrows, the white points are shared points between one or more routes, by default they order the vehicle to continue straight; Black points are off the road, the vehicle gets no instructions and drives to the left, trying to get back to the road) + > (This is a debug view of the instructions the road gives to the Vehicle. They will always follow the green arrows, the white points are shared points between one or more routes, by default they order the vehicle to continue straight; Black points are off the road, the vehicle gets no instructions and drives to the left, trying to get back to the road) -- To get a random behavior, you have to place IntersectionEntrances, this will let you redefine the directoion the vehicle will take overwriting the directions given by the roadmap (until they finish their given order). -(See the two example towns how it exactly works). - - Before version 0.7.1: For every entrance you'll have to create a series of empty actors that will be the waypoints to guide the car through the intersection; Then you'll have to asign the corresponding actors to every Path - - After version 0.7.1: Every IntersectionEntrance has an array called routes, adding an element to this creates an editable spline in the world with the first point on the IntersectionEntrance (You might have to select another object before you can see it) This spline defines the possible routes any car will take when entering the intersection (as the Empty actors did before) you might configure this routes as you would edit any Unreal spline. Each route will create an element in the field bellow: "Probabilities" every number in this array defines the chances of any vehicle to take the corresponding route. +- To get a random behavior, you have to place IntersectionEntrances, this will let you redefine the direction the vehicle will take overwriting the directions given by the road map (until they finish their given order). +(See the two example towns how it exactly works). + - Before version 0.7.1: For every entrance you'll have to create a series of empty actors that will be the waypoints to guide the car through the intersection; Then you'll have to assign the corresponding actors to every Path + - After version 0.7.1: Every IntersectionEntrance has an array called routes, adding an element to this creates an editable spline in the world with the first point on the IntersectionEntrance (You might have to select another object before you can see it) This spline defines the possible routes any car will take when entering the intersection (as the Empty actors did before) you might configure this routes as you would edit any Unreal spline. Each route will create an element in the field bellow: "Probabilities" every number in this array defines the chances of any vehicle to take the corresponding route. - To change the speed of the car, use the SpeedLimiters. They are straightforward to use. (Make sure you limit the speed for the corners, otherwise the cars will try and fail to take them at full speed) - Traffic lights need to be scripted to avoid traffic accidents. Every street at a crossing should have its own turn at green without the other streets having green. @@ -36,7 +36,7 @@ This are the specific blueprint assets created to help building the environment. ## MultipleFloorBuilding: -The purpose of this blueprint is to make repeating and varying tall buildings a bit easier. Provided a Base, a MiddleFloor and a roof; this blueprint repeats the middle floor to the desired number of stores and tops it whith the last floor given some conditions: +The purpose of this blueprint is to make repeating and varying tall buildings a bit easier. Provided a Base, a MiddleFloor and a roof; this blueprint repeats the middle floor to the desired number of stores and tops it with the last floor given some conditions: - All model pivots should be in the bottom center of the Specific mesh. - Al models must start and end exactly where the repetition happen. @@ -46,8 +46,8 @@ This blueprint is controlled by this 6 specific Parameters: - Floor: The mesh to be repeated along the building. - Roof: Final mesh to top the building. - FloorNumber: Number of stores of the building. - - FloorHeightOffset: Adjust The placement of every floor verticaly. - - RoofOffset: Adjust the placement of the roof verticaly. + - FloorHeightOffset: Adjust The placement of every floor vertically. + - RoofOffset: Adjust the placement of the roof vertically. All of This parameters can be modified once this blueprint is placed in the world. @@ -55,36 +55,36 @@ All of This parameters can be modified once this blueprint is placed in the worl !!! Bug See [#35 SplineMeshRepeater loses its collider mesh](https://github.com/carla-simulator/carla/issues/35) - + ### Standard use: -SplineMeshRepeater "Content/Blueprints/SplineMeshRepeater" is a tool included in the Carla Project to help building urban environments; It repeats and aligns a specific choosen mesh along a [Spline](https://docs.unrealengine.com/latest/INT/Engine/BlueprintSplines/Reference/SplineEditorTool/index.html) (Unreal Component). Its principal function is to build Tipicaly tiled and repetitive structures as Walls, Roads, Bridges, Fences... Once the actor is placed into the world the spline can be modified so the object gets the desired form. Each Point Defining the spline Generates a new tile so that as more points the Spline has, the more defined it will be, but also heavyer on the world. This actor is defined by the following parameters: +SplineMeshRepeater "Content/Blueprints/SplineMeshRepeater" is a tool included in the Carla Project to help building urban environments; It repeats and aligns a specific choosen mesh along a [Spline](https://docs.unrealengine.com/latest/INT/Engine/BlueprintSplines/Reference/SplineEditorTool/index.html) (Unreal Component). Its principal function is to build Tipicaly tiled and repetitive structures as Walls, Roads, Bridges, Fences... Once the actor is placed into the world the spline can be modified so the object gets the desired form. Each Point Defining the spline Generates a new tile so that as more points the Spline has, the more defined it will be, but also heavier on the world. This actor is defined by the following parameters: - StaticMesh: The mesh to be repeated along the spline. - - ForWardAxis: Changes the mesh axis to be alingned with the spline. + - ForWardAxis: Changes the mesh axis to be aligned with the spline. - Material: Overrides the mesh' default material. - - Colission Enabled: Chooses the tipe of colission to use. + - Collision Enabled: Chooses the type of collision to use. - Gap distance: Places a Gap between each repeated mesh, for repetitive non continuous walls: bush chains, bollards... -(Last three variables are specific for some particular assets to be defined in the next point) A requisite to create assets compatibles with this componenis is that all the meshes have their pivot placed wherever the repetition starts in the lower point possible with the rest of the mesh pointing positive (Preferably by the X axis) +(Last three variables are specific for some particular assets to be defined in the next point) A requisite to create assets compatibles with this component is that all the meshes have their pivot placed wherever the repetition starts in the lower point possible with the rest of the mesh pointing positive (Preferably by the X axis) ### Specific Walls (Dynamic material) -In the project folder "Content/Static/Walls" are included some specific assets to be used with this SplineMeshRepeater with a series of special caracteristics. The uv space of this meshes and their materials are the same for all of them, making them excangeable. each material is composed of three different surfaces the last three parameters slightly modify the color of this surfaces: +In the project folder "Content/Static/Walls" are included some specific assets to be used with this SplineMeshRepeater with a series of special characteristics. The uv space of this meshes and their materials are the same for all of them, making them exchangeable. each material is composed of three different surfaces the last three parameters slightly modify the color of this surfaces: - MainMaterialColor: Change the main material of the Wall - DetailsColor: Change the color of the details (if any) - - TopWallColor: Cambia el color de la cubierta del muro (if any) + - TopWallColor: Change the color of the wall cover (if any) - To add elements that profit from this functions exist in the (Carpeta) folder the GardenWallMask File that defines the uv space to place the materials: (Blue space: MainMaterial; green space: Details; red space TopWall). + To add elements that profit from this functions exist the GardenWallMask File that defines the uv space to place the materials: (Blue space: MainMaterial; green space: Details; red space TopWall). Between the material masters is WallMaster which is going to be the master of the materials using this function. An instance of this material will be created and the correspondent textures will be added. This material includes the following parameters to be modified by the material to use: - - Normal Flattener: Slightly modifies the normal map values to exagerate it or flatten it. - - RoughnessCorrection: Para corregir El valor de rugosidad dado por la textura. + - Normal Flattener: Slightly modifies the normal map values to exaggerate it or flatten it. + - RoughnessCorrection: Changes the Roughness value given by the texture. The rest of the parameters are the mask the textures and the color corrections that won't be modified in this instance but in the blueprint that will be launched into the world. @@ -92,7 +92,7 @@ Between the material masters is WallMaster which is going to be the master of th ## Weather -This is the actor in charge of modifying all the lighting, environmental actors an anything that affects the impression of the climate. It runs automaticaly with the game when is not specified otherwise In the Config.Ini but has Its own actor to launch in editor mode to configure the climatic conditions. To fuly work It will need One of each of the folowing actors: SkySphere, Skylight, Postprocess Volume (Boundless) And Light Source to exist in the world. +This is the actor in charge of modifying all the lighting, environmental actors an anything that affects the impression of the climate. It runs automatically with the game when is not specified otherwise In the Config.Ini but has Its own actor to launch in editor mode to configure the climatic conditions. To fully work It will need One of each of the following actors: SkySphere, Skylight, Postprocess Volume (Boundless) And Light Source to exist in the world. - SunPolarAngle: polar angle of the sun, determines time of the day - SunAzimuthAngle: adds to the location of the sun in the current level @@ -100,7 +100,7 @@ This is the actor in charge of modifying all the lighting, environmental actors - SunDirectionalLightIntensity: Intensity of the sunlight - SunDirectionalLightColor: Color of the sunlight - SunIndirectLightIntensity: intensity of the bounces of the main light - - CloudOpacity: visivility of the cloud rendering on the skybox + - CloudOpacity: visibility of the cloud rendering on the skybox - HorizontFalloff: determines the height of the gradient between the zenith and horizon color - ZenithColor: Defines the color of the zenith. - HorizonColor: Defines the color of the horizon. @@ -111,7 +111,7 @@ This is the actor in charge of modifying all the lighting, environmental actors - Precipitation: Defines if any precipitation is active. - PrecipitationType: the type of precipitation to active. - PrecipitationAmount: the quantity of the chosen precipitation. - - PrecipitationAccumulation: the acumulation of the chosen precipitation. + - PrecipitationAccumulation: the accumulation of the chosen precipitation. - bWind: defines if there is any wind. - WindIntensity: defines the wind intensity. - WindAngle: defines the wind direction. @@ -122,4 +122,4 @@ This is the actor in charge of modifying all the lighting, environmental actors - CameraPostProcessParameters.AutoExposureBias: Darkens or brightens the final image towards a defined bias. -You can have as many different configurations saved in the proyect as you want and choose the configuration to aply while on the build, through the [settings file](carla_settings.md); or in the editor while building the level or testing. +You can have as many different configurations saved in the project as you want and choose the configuration to aply while on the build, through the [settings file](carla_settings.md); or in the editor while building the level or testing. From ee555a90a0fc3ebfe9c0d768532a5bf73a3e192e Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 24 Jan 2018 15:15:40 +0100 Subject: [PATCH 110/121] Format fixes --- Docs/map_customization.md | 69 +++++++++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 17 deletions(-) diff --git a/Docs/map_customization.md b/Docs/map_customization.md index 0c673284a..a242dd427 100644 --- a/Docs/map_customization.md +++ b/Docs/map_customization.md @@ -1,15 +1,19 @@ # Map customization ## Creating a new map + !!! Bug - - Creating a map from scratch with the Carla tools causes a crash with UE4.17.2 (Issue [#99](https://github.com/carla-simulator/carla/issues/99)), -this guide will suggest duplicating an existing level instead of creating one from scratch. + Creating a map from scratch with the Carla tools causes a crash with + UE4.17.2 ([Issue #99](https://github.com/carla-simulator/carla/issues/99)), + this guide will suggest duplicating an existing level instead of creating + one from scratch. ### Requirements - Checkout and build Carla from source on [Linux](how_to_build_on_linux.md) or [Windows](how_to_build_on_windows.md) ### Creating + - Duplicate an existing map - Remove everything you don't need from the map - Keep the folder "Lighting", "AtmosphericFog", "PostProcessVol" and "CarlaMapGenerator" this will keep the climate working as intended and the post process saved. @@ -36,7 +40,11 @@ This are the specific blueprint assets created to help building the environment. ## MultipleFloorBuilding: -The purpose of this blueprint is to make repeating and varying tall buildings a bit easier. Provided a Base, a MiddleFloor and a roof; this blueprint repeats the middle floor to the desired number of stores and tops it with the last floor given some conditions: +The purpose of this blueprint is to make repeating and varying tall buildings a +bit easier. Provided a Base, a MiddleFloor and a roof; this blueprint repeats +the middle floor to the desired number of stores and tops it with the last floor +given some conditions: + - All model pivots should be in the bottom center of the Specific mesh. - Al models must start and end exactly where the repetition happen. @@ -49,7 +57,8 @@ This blueprint is controlled by this 6 specific Parameters: - FloorHeightOffset: Adjust The placement of every floor vertically. - RoofOffset: Adjust the placement of the roof vertically. -All of This parameters can be modified once this blueprint is placed in the world. +All of This parameters can be modified once this blueprint is placed in the +world. ## SplinemeshRepeater: @@ -58,8 +67,16 @@ All of This parameters can be modified once this blueprint is placed in the worl ### Standard use: -SplineMeshRepeater "Content/Blueprints/SplineMeshRepeater" is a tool included in the Carla Project to help building urban environments; It repeats and aligns a specific choosen mesh along a [Spline](https://docs.unrealengine.com/latest/INT/Engine/BlueprintSplines/Reference/SplineEditorTool/index.html) (Unreal Component). Its principal function is to build Tipicaly tiled and repetitive structures as Walls, Roads, Bridges, Fences... Once the actor is placed into the world the spline can be modified so the object gets the desired form. Each Point Defining the spline Generates a new tile so that as more points the Spline has, the more defined it will be, but also heavier on the world. This actor is defined by the following parameters: - +SplineMeshRepeater "Content/Blueprints/SplineMeshRepeater" is a tool included in +the Carla Project to help building urban environments; It repeats and aligns a +specific chosen mesh along a +[Spline](https://docs.unrealengine.com/latest/INT/Engine/BlueprintSplines/Reference/SplineEditorTool/index.html) +(Unreal Component). Its principal function is to build Typically tiled and +repetitive structures as Walls, Roads, Bridges, Fences... Once the actor is +placed into the world the spline can be modified so the object gets the desired +form. Each Point Defining the spline Generates a new tile so that as more points +the Spline has, the more defined it will be, but also heavier on the world. This +actor is defined by the following parameters: - StaticMesh: The mesh to be repeated along the spline. - ForWardAxis: Changes the mesh axis to be aligned with the spline. @@ -67,13 +84,21 @@ SplineMeshRepeater "Content/Blueprints/SplineMeshRepeater" is a tool included in - Collision Enabled: Chooses the type of collision to use. - Gap distance: Places a Gap between each repeated mesh, for repetitive non continuous walls: bush chains, bollards... - -(Last three variables are specific for some particular assets to be defined in the next point) A requisite to create assets compatibles with this component is that all the meshes have their pivot placed wherever the repetition starts in the lower point possible with the rest of the mesh pointing positive (Preferably by the X axis) +(Last three variables are specific for some particular assets to be defined in +the next point) A requisite to create assets compatibles with this component is +that all the meshes have their pivot placed wherever the repetition starts in +the lower point possible with the rest of the mesh pointing positive (Preferably +by the X axis) ### Specific Walls (Dynamic material) -In the project folder "Content/Static/Walls" are included some specific assets to be used with this SplineMeshRepeater with a series of special characteristics. The uv space of this meshes and their materials are the same for all of them, making them exchangeable. each material is composed of three different surfaces the last three parameters slightly modify the color of this surfaces: +In the project folder "Content/Static/Walls" are included some specific assets +to be used with this SplineMeshRepeater with a series of special +characteristics. The UV space of this meshes and their materials are the same +for all of them, making them exchangeable. each material is composed of three +different surfaces the last three parameters slightly modify the color of this +surfaces: - MainMaterialColor: Change the main material of the Wall - DetailsColor: Change the color of the details (if any) @@ -81,18 +106,26 @@ In the project folder "Content/Static/Walls" are included some specific assets t To add elements that profit from this functions exist the GardenWallMask File that defines the uv space to place the materials: (Blue space: MainMaterial; green space: Details; red space TopWall). -Between the material masters is WallMaster which is going to be the master of the materials using this function. An instance of this material will be created and the correspondent textures will be added. This material includes the following parameters to be modified by the material to use: +Between the material masters is WallMaster which is going to be the master of +the materials using this function. An instance of this material will be created +and the correspondent textures will be added. This material includes the +following parameters to be modified by the material to use: - Normal Flattener: Slightly modifies the normal map values to exaggerate it or flatten it. - RoughnessCorrection: Changes the Roughness value given by the texture. - The rest of the parameters are the mask the textures and the color corrections that won't be modified in this instance but in the blueprint that will be launched into the world. - - - +The rest of the parameters are the mask the textures and the color corrections +that won't be modified in this instance but in the blueprint that will be +launched into the world. ## Weather -This is the actor in charge of modifying all the lighting, environmental actors an anything that affects the impression of the climate. It runs automatically with the game when is not specified otherwise In the Config.Ini but has Its own actor to launch in editor mode to configure the climatic conditions. To fully work It will need One of each of the following actors: SkySphere, Skylight, Postprocess Volume (Boundless) And Light Source to exist in the world. + +This is the actor in charge of modifying all the lighting, environmental actors +an anything that affects the impression of the climate. It runs automatically +with the game when is not specified otherwise In the Config. Ini but has Its own +actor to launch in editor mode to configure the climatic conditions. To fully +work It will need One of each of the following actors: SkySphere, Skylight, +Postprocess Volume (Boundless) And Light Source to exist in the world. - SunPolarAngle: polar angle of the sun, determines time of the day - SunAzimuthAngle: adds to the location of the sun in the current level @@ -121,5 +154,7 @@ This is the actor in charge of modifying all the lighting, environmental actors - CameraPostProcessParameters.AutoExposureMaxBrightness: defines the maximum brightness the autoexposure will count as right in the final image. - CameraPostProcessParameters.AutoExposureBias: Darkens or brightens the final image towards a defined bias. - -You can have as many different configurations saved in the project as you want and choose the configuration to aply while on the build, through the [settings file](carla_settings.md); or in the editor while building the level or testing. +You can have as many different configurations saved in the project as you want +and choose the configuration to apply while on the build, through the +[settings file](carla_settings.md); or in the editor while building the level or +testing. From 78db608bcb59210038bc7c1607f7d74b37a89899 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 24 Jan 2018 19:35:16 +0100 Subject: [PATCH 111/121] Use same package command as the editor --- Package.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Package.sh b/Package.sh index 72b62e664..b175a6969 100755 --- a/Package.sh +++ b/Package.sh @@ -83,9 +83,10 @@ if $DO_PACKAGE ; then ${UE4_ROOT}/Engine/Build/BatchFiles/RunUAT.sh BuildCookRun \ -project="${PWD}/CarlaUE4.uproject" \ - -noP4 -platform=Linux \ - -clientconfig=Development -serverconfig=Development \ - -cook -compile -build -stage -pak -archive \ + -nocompileeditor -nop4 -cook -stage -archive -package \ + -clientconfig=Development -ue4exe=UE4Editor \ + -pak -prereqs -nodebuginfo \ + -targetplatform=Linux -build -CrashReporter -utf8output \ -archivedirectory="${BUILD_FOLDER}" popd >/dev/null From 57a402ed0049e9fe3318707918a59b9950293f52 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 24 Jan 2018 19:47:57 +0100 Subject: [PATCH 112/121] Some improvements to Package.sh --- Package.sh | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/Package.sh b/Package.sh index b175a6969..123c0bd89 100755 --- a/Package.sh +++ b/Package.sh @@ -9,7 +9,7 @@ set -e DOC_STRING="Makes a packaged version of CARLA for distribution. Please make sure to run Rebuild.sh before!" -USAGE_STRING="Usage: $0 [-h|--help] [--skip-packaging]" +USAGE_STRING="Usage: $0 [-h|--help] [--no-packaging] [--no-zip] [--clean-intermediate]" # ============================================================================== # -- Parse arguments ----------------------------------------------------------- @@ -18,8 +18,9 @@ USAGE_STRING="Usage: $0 [-h|--help] [--skip-packaging]" DO_PACKAGE=true DO_COPY_FILES=true DO_TARBALL=true +DO_CLEAN_INTERMEDIATE=false -OPTS=`getopt -o h --long help,skip-packaging -n 'parse-options' -- "$@"` +OPTS=`getopt -o h --long help,no-packaging,no-zip,clean-intermediate -n 'parse-options' -- "$@"` if [ $? != 0 ] ; then echo "$USAGE_STRING" ; exit 2 ; fi @@ -27,9 +28,15 @@ eval set -- "$OPTS" while true; do case "$1" in - --skip-packaging ) + --no-packaging ) DO_PACKAGE=false shift ;; + --no-zip ) + DO_TARBALL=false + shift ;; + --clean-intermediate ) + DO_CLEAN_INTERMEDIATE=true + shift ;; -h | --help ) echo "$DOC_STRING" echo "$USAGE_STRING" @@ -145,6 +152,18 @@ if $DO_TARBALL ; then fi +# ============================================================================== +# -- Remove intermediate files ------------------------------------------------- +# ============================================================================== + +if $DO_CLEAN_INTERMEDIATE ; then + + log "Removing intermediate build..." + + rm -Rf ${BUILD_FOLDER} + +fi + # ============================================================================== # -- ...and we are done -------------------------------------------------------- # ============================================================================== From 7c06350340d4d75234d90482b5abe9f943b802dd Mon Sep 17 00:00:00 2001 From: nsubiron Date: Wed, 24 Jan 2018 23:39:26 +0100 Subject: [PATCH 113/121] Fix Package.sh fails if Dist folder does not exist --- Package.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.sh b/Package.sh index 123c0bd89..fe862178f 100755 --- a/Package.sh +++ b/Package.sh @@ -86,7 +86,7 @@ if $DO_PACKAGE ; then fi rm -Rf ${BUILD_FOLDER} - mkdir ${BUILD_FOLDER} + mkdir -p ${BUILD_FOLDER} ${UE4_ROOT}/Engine/Build/BatchFiles/RunUAT.sh BuildCookRun \ -project="${PWD}/CarlaUE4.uproject" \ From 729463a09380ac2d59cd2ddd2d0eb455db36df2e Mon Sep 17 00:00:00 2001 From: nsubiron Date: Thu, 25 Jan 2018 16:03:44 +0100 Subject: [PATCH 114/121] Update news with last release --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4cdce0fef..f4823a8a3 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ paper, check out News ---- +- 25.01.2018 CARLA 0.7.1 released: [change log](https://github.com/carla-simulator/carla/blob/master/CHANGELOG.md#carla-071), [release](https://github.com/carla-simulator/carla/releases/tag/0.7.1). - 22.01.2018 Job opening: [C++ (UE4) Programmer](https://drive.google.com/open?id=1Hx0eUgpXl95d4IL9meEGhJECgSRos1T1). - 28.11.2017 CARLA 0.7.0 released: [change log](https://github.com/carla-simulator/carla/blob/master/CHANGELOG.md#carla-070), [release](https://github.com/carla-simulator/carla/releases/tag/0.7.0). - 15.11.2017 CARLA 0.6.0 released: [change log](https://github.com/carla-simulator/carla/blob/master/CHANGELOG.md#carla-060), [release](https://github.com/carla-simulator/carla/releases/tag/0.6.0). From a186c51952058d1202e77ead1f3f5ea08f1e068f Mon Sep 17 00:00:00 2001 From: nsubiron Date: Thu, 25 Jan 2018 16:56:35 +0100 Subject: [PATCH 115/121] Fix minor bug in client_example.py --- PythonClient/client_example.py | 1 + 1 file changed, 1 insertion(+) diff --git a/PythonClient/client_example.py b/PythonClient/client_example.py index 4f513b09f..325e7949d 100755 --- a/PythonClient/client_example.py +++ b/PythonClient/client_example.py @@ -212,6 +212,7 @@ def main(): settings_filepath=args.carla_settings) print('Done.') + return except TCPConnectionError as error: logging.error(error) From 756cf45c58e5a139af07031e542f977357d15c6c Mon Sep 17 00:00:00 2001 From: nsubiron Date: Fri, 26 Jan 2018 13:05:36 +0100 Subject: [PATCH 116/121] Update contents link --- Util/ContentVersions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Util/ContentVersions.txt b/Util/ContentVersions.txt index 3a6553be4..a38901626 100644 --- a/Util/ContentVersions.txt +++ b/Util/ContentVersions.txt @@ -7,4 +7,4 @@ 0.5.4: 0B2HFV-VuKn3PYUFFanlmZ2VMTW8 0.6.0: 1Gw8sw01hDEV4FtpHEZZwvS-6XN0jmaLT 0.7.0: 11PKC_lG7L80L1ZxiMlzV17utU45UcRnT -0.7.1: 1gf3YaFIjwr1EaK6qxq2V-a510Brt9Imq +0.7.1: 1oDGYzr8FaYl4TeMNlrEMLNo-_5umA9Th From 309df4cd7205be3ab8f250334ae15673b488a7c3 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Fri, 26 Jan 2018 15:54:42 +0100 Subject: [PATCH 117/121] Change email --- Docs/CONTRIBUTING.md | 2 +- PythonClient/setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Docs/CONTRIBUTING.md b/Docs/CONTRIBUTING.md index 1f0c50781..4aafed180 100644 --- a/Docs/CONTRIBUTING.md +++ b/Docs/CONTRIBUTING.md @@ -59,7 +59,7 @@ Before starting hands-on on coding, please check out the [projects page][projectslink] to see if we are already working on that, it would be a pity putting an effort into something just to discover that someone else was already working on that. In case of doubt or to discuss how to proceed, -please contact one of us (or send an email to carla.simulator@gmail.com). +please contact one of us (or send an email to carla.ai.simulator@gmail.com). [projectslink]: https://github.com/carla-simulator/carla/projects/1 diff --git a/PythonClient/setup.py b/PythonClient/setup.py index 7969450a6..cf2ee6512 100644 --- a/PythonClient/setup.py +++ b/PythonClient/setup.py @@ -10,6 +10,6 @@ setup( description='Python API for communicating with the CARLA server.', url='https://github.com/carla-simulator/carla', author='The CARLA team', - author_email='carla.simulator@gmail.com', + author_email='carla.ai.simulator@gmail.com', include_package_data=True ) From ef404644a8cb1e0309e06aab221189bb2a68d644 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Fri, 26 Jan 2018 15:55:56 +0100 Subject: [PATCH 118/121] Exclude Dist from ST project --- CARLA.sublime-project | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/CARLA.sublime-project b/CARLA.sublime-project index b5f335ef3..caa5bc2bb 100644 --- a/CARLA.sublime-project +++ b/CARLA.sublime-project @@ -5,18 +5,19 @@ "path": ".", "folder_exclude_patterns": [ - "__pycache__", ".clang", ".codelite", ".kdev4", ".vs", - "Build", "Binaries", - "Unreal/CarlaUE4/Content*", + "Build", "DerivedDataCache", + "Dist", "Doxygen", "Intermediate", - "Saved" + "Saved", + "Unreal/CarlaUE4/Content*", + "__pycache__" ], "file_exclude_patterns": [ From 65e76fbcb7e89854aabf469af3cc914cbc4cac62 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Mon, 29 Jan 2018 11:45:46 +0100 Subject: [PATCH 119/121] Rollback links --- Docs/CONTRIBUTING.md | 2 +- PythonClient/setup.py | 2 +- Util/ContentVersions.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Docs/CONTRIBUTING.md b/Docs/CONTRIBUTING.md index 4aafed180..1f0c50781 100644 --- a/Docs/CONTRIBUTING.md +++ b/Docs/CONTRIBUTING.md @@ -59,7 +59,7 @@ Before starting hands-on on coding, please check out the [projects page][projectslink] to see if we are already working on that, it would be a pity putting an effort into something just to discover that someone else was already working on that. In case of doubt or to discuss how to proceed, -please contact one of us (or send an email to carla.ai.simulator@gmail.com). +please contact one of us (or send an email to carla.simulator@gmail.com). [projectslink]: https://github.com/carla-simulator/carla/projects/1 diff --git a/PythonClient/setup.py b/PythonClient/setup.py index cf2ee6512..7969450a6 100644 --- a/PythonClient/setup.py +++ b/PythonClient/setup.py @@ -10,6 +10,6 @@ setup( description='Python API for communicating with the CARLA server.', url='https://github.com/carla-simulator/carla', author='The CARLA team', - author_email='carla.ai.simulator@gmail.com', + author_email='carla.simulator@gmail.com', include_package_data=True ) diff --git a/Util/ContentVersions.txt b/Util/ContentVersions.txt index a38901626..3a6553be4 100644 --- a/Util/ContentVersions.txt +++ b/Util/ContentVersions.txt @@ -7,4 +7,4 @@ 0.5.4: 0B2HFV-VuKn3PYUFFanlmZ2VMTW8 0.6.0: 1Gw8sw01hDEV4FtpHEZZwvS-6XN0jmaLT 0.7.0: 11PKC_lG7L80L1ZxiMlzV17utU45UcRnT -0.7.1: 1oDGYzr8FaYl4TeMNlrEMLNo-_5umA9Th +0.7.1: 1gf3YaFIjwr1EaK6qxq2V-a510Brt9Imq From af9b5f37aa2a391cb6c453f58d40be8876ec322f Mon Sep 17 00:00:00 2001 From: nsubiron Date: Tue, 30 Jan 2018 16:32:24 +0000 Subject: [PATCH 120/121] Fix compiler crash on Windows --- .../Carla/Source/Carla/MapGen/DoublyConnectedEdgeList.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/DoublyConnectedEdgeList.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/DoublyConnectedEdgeList.cpp index 58a2db67a..3d1108b27 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/DoublyConnectedEdgeList.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/MapGen/DoublyConnectedEdgeList.cpp @@ -44,7 +44,7 @@ namespace MapGen { using Dcel = DoublyConnectedEdgeList; // from [-pi, pi] to [0, 1]. auto normalize = [](auto a) { - constexpr decltype(a) twoPi = 2.0 * 3.14159265359; + constexpr float twoPi = 2.0 * 3.14159265359; a /= twoPi; while (a >= 1.0) a -= 1.0; while (a < 0.0) a += 1.0; From fa28317d1a8fc856735c2f81dc2f5a186a0a1b72 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Tue, 30 Jan 2018 16:38:23 +0000 Subject: [PATCH 121/121] Add travis-ci badge --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f4823a8a3..0988cfaab 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ CARLA Simulator =============== +[![Build Status](https://travis-ci.org/carla-simulator/carla.svg?branch=master)](https://travis-ci.org/carla-simulator/carla) + CARLA is an open-source simulator for autonomous driving research. CARLA has been developed from the ground up to support development, training, and validation of autonomous urban driving systems. In addition to open-source code

?xX2#1MHDd?3 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%0D@G5aDziL1 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