# Gerrit User Summit 2024 - Location

## Hosted by Qualcomm

The Hackathon and User Summit are hosted at Qualcomm's campus in San Diego in
[Building AQ](https://maps.app.goo.gl/pcwWUwUjfMpBoMTZ8).

See below the full address of the location:

```
10145 Pacific Heights Blvd
San Diego, CA 92121
USA
```

## Check-in Instructions

TBD

## Hotels and Places to Stay

TBD

## Getting there

See the map below where Building AQ is circled in blue and the parking garage is outlined in the green rectangle.
![Parking](images/bldgAQ_parking.png)

## Facility Resources

__Food and Drink__

Lunch will be provided on the roof of the nearby [Building AZ](https://maps.app.goo.gl/4c2GKVoPa6QzL5Li7)
during the User Summit. Breakfast and refreshments will be available at the
main user summit room.

__Internet__

Wifi will be available to all attendees.
