US Pat. No. 9,872,337

BACKHAUL-OPTIMIZED BEAMFORMING IN IEEE 802.11AD NETWORKS

Google LLC, Mountain Vie...

1. A method comprising:
receiving, at data processing hardware, at least a first node connection from a network external to the data processing hardware,
the network including a network of nodes, each node configured to transmit and/or receive directional beams containing packets
of data;

identifying, using the data processing hardware, an open first communication link between a first node and a second node of
the network;

obtaining, at the data processing hardware, locations of the first node and the second node from memory hardware in communication
with the data processing hardware;

determining, using the data processing hardware, a first recommended set of beam vectors to constrain a first scanning range
of the first node when initiating beam forming with the second node based on the second node location relative to the first
node location, the recommended first set of beam vectors constraining the first scanning range of the first node to expedite
beam forming alignment with the second node; and

transmitting the first recommended set of beam vectors from the data processing hardware to the first node, the first recommended
set of beam vectors causing the first node to execute beam forming training with the second node using the first recommended
set of beam vectors to establish the first communication link with the second node.

US Pat. No. 9,999,090

MESH NETWORK COMMISSIONING

Google LLC, Mountain Vie...

1. A method of identifying devices that are allowed to join a mesh network, the method comprising:receiving steering data for the mesh network at a joiner router, the steering data being:
determined by a commissioning device that is active as a commissioner for the mesh network, the steering data comprising an indication of a device identifier associated with, and unique to, a joining device that is allowed to join the mesh network, the steering data including an indication that the commissioner is active on the mesh network, and the steering data not including a Personal Area Network Identifier (PAN ID) for the mesh network; and
propagated from the commissioning device for the mesh network to one or more routers in the mesh network including the joiner router;
receiving a beacon request from the joining device;
transmitting the steering data in a beacon message, the steering data effective to enable the joining device associated with the unique device identifier to determine that the joining device is allowed to join the mesh network, the joining device not having prior knowledge of the PAN ID for the mesh network; and
based on the determination that the joining device is allowed to join the mesh network, receiving a join request from the joining device to join the mesh network.

US Pat. No. 9,872,356

INTERACTIVE LIGHTING HANDSHAKE

Google LLC, Mountain Vie...

1. A method comprising:
detecting, at a computing device associated with a light system using one or more sensors associated with the computing device,
a user in a position within a threshold distance from an interface of the computing device, wherein the interface of the computing
device is a screen on a podium;

responsive to detecting the user, determining an area that encompasses the position of the user; and
causing, by the computing device, the light system to illuminate the determined area using a light handshake, wherein the
light handshake comprises illuminating a given aspect of the interface of the computing device and subsequently extending
the illumination in a visual presentation from the given aspect of the interface of the computing device to encompass the
position of the user.

US Pat. No. 9,883,571

SYSTEMS AND METHODS OF CONTROLLING LIGHT SOURCES ACCORDING TO LOCATION

GOOGLE LLC, Mountain Vie...

1. A system comprising:
a first light source included in a first device that is disposed at a first location in a room;
a second light source included in a second device that is disposed at a distance from the first light source at a second location
in the room; and

a controller, including a switch, communicatively coupled to the first light source and the second light source, the controller
to control a first operation of the first light source according to a first input received by the switch, and to control a
second operation of the second light source when a second input is received by the switch, wherein the controller controls
the first and second operations of the respective first light source and second light source sequentially based on respective
positions of the first light source and the second light source to the switch.

US Pat. No. 9,918,377

HEAT DISSIPATION APPROACH IN CHIP ON BOARD ASSEMBLY BY USING STACKED COPPER MICROVIAS

Google LLC, Mountain Vie...

1. An optical transceiver comprising:
an optical transmitter comprising a first chip-on-board package coupled to a printed circuit board (PCB) and an optical receiver
comprising a second chip-on-board package coupled to the PCB, the optical transmitter and the optical receiver positioned
above a plurality of thermal microvias configured to draw thermal energy away from the optical transmitter and the optical
receiver;

the optical transmitter comprising a light source electrically coupled with a driver circuit; and
the optical receiver comprising a light detector electrically coupled with a receiver circuit, wherein the light source and
the driver circuit are covered by a first lens and the light detector and the receiver circuit are covered by a second lens.

US Pat. No. 9,967,998

SERVER RACK ARCHITECTURE THAT FACILITATES REDUCED CURRENT DENSITY

Google LLC, Mountain Vie...

1. A server rack, comprising:vertically stacked first and second shelves, wherein the first shelf is located above the second shelf;
a vertical bus secured to the back side of the server rack, located substantially at the center of the server rack, and configured to distribute power to a plurality of sets of power supply units, each set of power supply units located next to and associated with a corresponding shelf in the server rack;
a first horizontal bus conductively coupled to the vertical bus at approximately its center and conductively coupled to a first set of power supply units; and
a second horizontal bus conductively coupled to the vertical bus at approximately its center and conductively coupled to a server located on the first shelf and equidistant from first and second sides of the server rack;
wherein the first set of power supply units comprises at least two power supply units that are separated and located on left and right sides of the server and each distribute power to the server through the vertical bus and the first and second horizontal buses.

US Pat. No. 10,045,447

CIRCUIT BOARD ARCHITECTURE FOR AN ELECTRONIC DEVICE

Google LLC, Mountain Vie...

1. An electronic device, comprising: an electronic device housing comprising:i) a planar face,
ii) a first outer sidewall extending from the planar face, and
iii) a second outer sidewall extending from the planar face;
a first circuit board and a second circuit board, the first circuit board and the second circuit board each oriented parallel to the planar face of the electronic device housing;
a third circuit board electrically connected to the first circuit board and the second circuit board, at least a portion of the third circuit board being oriented perpendicular to the planar face of the electronic device housing, parallel to the first outer sidewall, and parallel to the second outer sidewall; and a battery at least partially surrounded by the first circuit board on a first side of the battery, the second circuit board on a second side of the battery, and the third circuit board on a third side of the battery, wherein the first circuit board and the second circuit board are each fixedly positioned with respect to the electronic device housing and separated by a distance, and wherein the third circuit board is oriented vertically over at least half of the distance.

US Pat. No. 9,852,605

SYSTEMS AND METHODS OF DYNAMICALLY VARYING A PRE-ALARM TIME OF A SECURITY SYSTEM

GOOGLE LLC, Mountain Vie...

1. A security system comprising:
a sensor to detect an entry into a building by a person, and generate detection data according to the detected entry;
a processor communicatively coupled to the sensor to receive the detection data, the processor to estimate a threat level
based on the detection data and a security system operating state, and to adjust a pre-alarm time according to the estimated
threat level; and

an alarm device, communicatively coupled to at least the processor, that outputs an alarm according to the detection data
and the threat level.

US Pat. No. 9,961,803

COOLING ELECTRONIC DEVICES IN A DATA CENTER

Google LLC, Mountain Vie...

1. A server tray sub-assembly comprises:a motherboard;
a plurality of heat generating electronic devices mounted on the motherboard;
a thermosiphon mounted on the motherboard, the thermosiphon comprising:
an evaporator in heat transfer communication with the plurality of heat generating electronic devices;
a condenser fluidly coupled to the evaporator with a fluid conduit that slopes downward from the condenser to the evaporator; and
a multi-phase fluid contained in the thermosiphon; and
a control system comprising:
a sensing device operable to sense a value associated with an amount of heat generated by the plurality of heat generating electronic devices; and
an actuator operatively coupled to the thermosiphon to adjust an amount of the multi-phase fluid in the evaporator based, at least in part, on the sensed value.

US Pat. No. 9,875,008

DISPLAY DEVICE, CORRESPONDING SYSTEMS, AND METHODS THEREFOR

Google LLC, Mountain Vie...

1. A method of orienting visual output on a device comprising:
initiating a presentation of the visual output via a display device;
responsive to receiving a user input, altering a presentation orientation of the visual output from a first orientation to
a second orientation;

detecting a non user event, the non-user event comprising an event that occurs in absence of intentional user input to a user
interface of the device, the non-user event including passively detected wellness conditions associated with a user wearing
the device; and

responsive to detecting the non-user event, reverting the presentation orientation of the visual output to the first orientation.

US Pat. No. 10,130,013

COOLING ELECTRONIC DEVICES IN A DATA CENTER

Google LLC, Mountain Vie...

1. A server assembly, comprising:a server board comprising a plurality of connector slots coupled to a front surface of the server board;
a plurality of computing devices installed in at least a portion of the plurality of connector slots to define a server board topography; and
a filler member coupled to the server board, the filler member shaped to substantially mirror the server board topography to define a gap between the server board with the plurality of computing devices and the filler member without contact between the plurality of computing devices and the filler member, the gap comprising a flow path configured to receive a dielectric, non-conductive liquid cooling liquid from a cooling liquid source external to a volume defined by the server assembly and distribute the cooling liquid to flow in the gap in contact with the plurality of computing devices and the filler member.

US Pat. No. 9,948,699

SCORING CONTENT BASED ON SOCIAL INTERACTION

Google LLC, Mountain Vie...

1. A computer-implemented method that is executed using one or more processors, the method comprising:identifying, by a system, a set of items of digital content to be displayed to a user of a computer-implemented social networking service;
determining, by the system, for each item of digital content of the set of items of digital content, i) an interaction score based on a relationship between the user and other users associated with the item of digital content, and ii) an author-to-user following score based on a percentage of contacts of an author user that distributed the item of digital content through the computer-implemented social networking service that are also contacts of the user within the computer-implemented social networking service;
determining, by the system, for each item of digital content of the set of items of digital content, a user-specific score for the item of digital content based on the interaction score and the author-to-user following score;
identifying a subset of items of digital content of the set of items of digital content based on the user-specific score for each item of digital content of the set of items of digital content; and
providing instructions for boosting to a greater prominence a display of one or more items in the subset of items of digital content in a stream displayed to the user.

US Pat. No. 9,948,708

DATA RETRIEVAL BASED ON BANDWIDTH COST AND DELAY

GOOGLE LLC, Mountain Vie...

1. A method comprising:determining, by one or more processors of a client device, states of a plurality of servers associated with a media content provider, wherein the states of the plurality of the servers indicate availability of the plurality of servers to deliver a media asset to the client device;
determining, by the one or more processors of the client device, a subset of the plurality of servers available to deliver the media asset to the client device in view of the determined states;
determining, by the one or more processors of the client device, characteristics associated with the subset of the plurality of servers, wherein the characteristics comprise a cost to transmit the media asset to the client device from the subset of the plurality of servers through a plurality of service providers (SP) to the client device and throughput rates of the subset of the plurality of servers, wherein the cost is indicative of a fee charged to the media content provider by different SPs of the plurality of SPs based on bandwidth utilization by the subset of the plurality of servers, wherein the subset of the plurality of servers use the different SPs of the plurality of SPs to transmit the media asset;
estimating, by the one or more processors of the client device, a first bit rate at which the client device is to receive a first portion of the media asset, wherein the first bit rate is to provide for uninterrupted playback of the media asset, and wherein the first portion corresponds to data for a first playback time period of the media asset, wherein estimating the first bit rate comprises:
receiving metadata associated with the media asset, wherein the metadata comprises a starting timestamp, an ending timestamp, a starting byte offset, and an ending byte offset associated with the first portion of the media asset, and
computing the first bit rate of the first portion based on the metadata; and
selecting, by the client device and based on the determined characteristics and the first bit rate, one or more servers from the subset of the plurality of servers to deliver the first portion of the media asset to the client device.

US Pat. No. 9,907,115

CONJOINED CLASS-BASED NETWORKING

Google LLC, Mountain Vie...

1. A method for maintaining information regarding communication links between a plurality of nodes in a wireless network,
the method implemented by a first node comprising:
for each communication link that is established with another node, recording an identification of the other node;
for each message received by the first node from the other node via the communication link with the other node, recording
a network pathway by which the message was communicated in the wireless network and a link quality between the other node
and the first node;

communicating the message to a destination node in the wireless network if the message is intended for receipt by the destination
node, the communicating of the message by the first node including:

determining whether one or more network pathways from the first node to the destination node are known by the first node;
determining a preferred network pathway from the known network pathways based at least in part on the link quality associated
with each of the one or more known network pathways; and

communicating the message to the destination node via the preferred network pathway in the wireless network.

US Pat. No. 9,900,958

SMART DEVICE WITH INTEGRATED CONDITIONAL LIGHTING

Google LLC, Mountain Vie...

1. A smart device, comprising:
a case;
a wireless interface;
a light sensor that detects an ambient brightness level of an ambient environment of the smart device;
a motion sensor that detects motion of a user in the ambient environment of the smart device;
a light that is capable of outputting light into the ambient environment of the smart device; and
a processing system, the processing system being in communication with the wireless interface, the motion sensor, the light
sensor, and the light, the processing system comprising at least one processor and being configured to:

receive, via the wireless interface, a message indicating that a lighting feature that provides illumination based on movement
and the ambient brightness level has been activated;

receive an indication of the ambient brightness level in the ambient environment of the smart device as sensed by the light
sensor;

determine that the ambient brightness level is less than a threshold brightness value;
receive information from the motion sensor indicative of the user moving in the ambient environment of the smart device; and
cause the light to illuminate based on all of the following conditions being present: (1) the message having been received
that indicates that the lighting feature has been activated; (2) the ambient brightness level being below the threshold brightness
value; and (3) the user moving in the ambient environment of the smart device.

US Pat. No. 10,033,196

CONVERTING ALTERNATING CURRENT POWER TO DIRECT CURRENT POWER

Google LLC, Mountain Vie...

1. A method for converting alternating current (AC) power to direct current (DC) power in a non-isolated power converter, the method comprising:receiving a three-phase power supply, the three-phase power supply having an AC current that is a full-wave sinusoidal AC current;
transforming the three phase power supply into six voltage phases at a secondary side of a three-phase distribution transformer, the three-phase distribution transformer comprising a center tap on the secondary side and one or more AC wire conductors carrying the transformed power supply;
half-wave rectifying the AC current at the secondary side of the three phase distribution transformer, the half wave rectification accomplished by an arrangement of rectifier diodes on the one or more AC wire conductors;
applying a power factor correction to achieve DC power;
outputting a DC power signal having an output voltage at a DC output, the output voltage is measured across one or more capacitors; and
operating one or more Q1 inrush and shutdown field-effect transistors, the one or more Q1 inrush and shutdown field-effect transistors configured to limit a current flow and to charge the one or more capacitors.

US Pat. No. 10,009,914

BANDWIDTH THROTTLING BASED ON HOME OCCUPANCY

Google LLC, Mountain Vie...

1. A tangible, non-transitory computer-readable medium comprising instructions configured to be executed by a one or more computer processors associated with a structure, the instructions comprising instructions to:determine a status of occupants of the structure, wherein the status is based on one or more occupants being present in the structure or that one or more occupants of the structure are asleep;
select a priority schedule from a plurality of priority schedules based at least in part on the status, wherein:
each priority schedule of the plurality of priority schedules is indicative of a relative priority of communications of each electronic device of a plurality of electronic devices in relation to each other; and
the relative priority of the communications of each electronic device of the plurality of electronic devices in relation to each other is different based on the status; and
cause a wireless access point to reorder and relay communications of the plurality of electronic devices based at least in part on the selected priority schedule.

US Pat. No. 9,872,249

RELAYING COMMUNICATIONS IN A WIRELESS SENSOR SYSTEM

Google LLC, Mountain Vie...

1. A method of bi-directional communication within a wireless sensor system comprising:
receiving, at a wireless repeater unit, a communication packet including an address portion that comprises a first code, a
second code, a checksum, and an authenticity code for use in verifying an authenticity of the communication packet;

determining if the first code in the communication packet corresponds to a building code associated with the wireless repeater
unit;

based on the determining that the first code corresponds to the building code associated with the wireless repeater unit,
comparing the second code to wireless sensor identifiers in a table of the wireless sensor identifiers stored in the wireless
repeater unit; and

based on the second code matching a wireless sensor identifier in the table, relaying the communication packet.

US Pat. No. 9,864,955

PERFORMING AN OPERATION DURING INFERRED PERIODS OF NON-USE OF A WEARABLE DEVICE

Google LLC, Mountain Vie...

1. A method comprising:
determining, based on a movement of a wearable computing device being detected during multiple days of a sample period, a
recurring period of time of day during which a frequency or a magnitude of the movement satisfies a threshold that indicates
the wearable computing device was not being used;

determining, at a time after the sample period and by the wearable computing device, whether a current period of time of day,
coincides with the recurring period of time of day; and

responsive to determining that the current period of time of day coincides with the recurring period of time of day and responsive
to determining that an operation can be completed during the recurring period of time of day, performing, by the wearable
computing device, the operation during the current period of time of day.

US Pat. No. 9,814,009

MULTIPLE CARRIER ATTACHMENT ESTABLISHMENT AND MAINTENANCE

Google LLC, Mountain Vie...

1. A method, executed by a mobile station (MS) attached to a supporting wireless wide area network (WWAN), for attaching to
a target WWAN while maintaining the attachment to the supporting WWAN, the method comprising:
transmitting, via a physical uplink channel with a radio access network (RAN) of the supporting WWAN, an attach request message
to be forwarded by a core network gateway of the supporting WWAN to a generic access network controller of a generic access
network (GAN) of the target WWAN via another network;

receiving, via a physical downlink channel with the RAN of the supporting WWAN, an attach accept message forwarded by the
core network gateway of the supporting WWAN from the generic access network controller of the GAN of the target WWAN via the
another network; and

after receiving the attach accept message, transmitting, via the physical uplink channel with the RAN of the supporting WWAN,
a handover request message to be forwarded by the core network gateway of the supporting WWAN to the generic access network
controller of the GAN of the target WWAN via the another network.

US Pat. No. 9,948,755

METHODS AND SYSTEMS OF TRANSMITTING HEADER INFORMATION USING RATELESS CODES

GOOGLE LLC, Mountain Vie...

1. A system of communicating header information using rateless codes, the system comprising:a sender electronic device; and
a non-transitory computer-readable storage medium in communication with the sender electronic device, wherein the computer-readable storage medium comprises one or more programming instructions that, when executed, cause the sender electronic device to:
identify a message to be sent to a receiver, wherein the message comprises message content,
identify header information associated with the message, wherein the header identifies at least a portion of metadata for the message and comprises header information associated with the message,
disassemble the header information into a plurality of header blocks such that each header block comprises at least a portion of the header information,
identify one or more encoded block identifiers,
perform a rateless encoding operation on a selected subset of the plurality of header blocks to generate an encoded header block,
disassemble the message into a plurality of source blocks such that each source block comprises at least a portion of the message content,
perform the rateless encoding operation on a selected subset of the source blocks using the one or more encoded block identifiers to generate an encoded source block, and
transmit one or more of the following to the receiver:
one or more of the encoded block identifiers,
the encoded header block, or
the encoded source block.

US Pat. No. 9,860,324

RAPID ESTABLISHMENT OF A CONNECTION FROM MULTIPLE ADDRESS LOCATIONS

Google LLC, Mountain Vie...

1. A computer-implemented method, comprising:
receiving a first token with a first request for data from a computing device located at a first network address, the first
token being embedded with a representation of a second network address previously associated with the computing device, the
embedded representation of the second network address not readable by the computing device;

determining that the first token is not embedded with a representation of the first network address;
generating, based on the first token being embedded with the representation of the second network address and not being embedded
with the representation of the first network address, a second token for the computing device, the second token including
respective embedded representations of the first network address and the second network address; and

providing the second token to the computing device for use in establishing future network communications from the first network
address and from the second network address.

US Pat. No. 9,854,188

CALIBRATION OF DEFECTIVE IMAGE SENSOR ELEMENTS

Google LLC, Mountain Vie...

1. An optical imaging system comprising:
an image sensor comprising a plurality of sensor elements, the sensor elements configured to represent respective pixels in
captured images;

an optical element coupled to the image sensor and configured to define a focus distance setting of the captured images; and
a controller comprising a memory and at least one processor, wherein the processor is configured to execute instructions stored
in the memory so as to carry out operations, the operations comprising:

causing the image sensor to capture a plurality of images, the images captured with different respective focus distance settings
defined by the optical element;

combining the plurality of images into an aggregate image;
based on the aggregate image, determining a condition of a particular sensor element of the plurality of sensor elements;
causing the image sensor to capture a payload image; and
adjusting, in the payload image, a value of a particular pixel that is associated with the particular sensor element.

US Pat. No. 9,838,814

DISPLAYING SOUND INDICATIONS ON A WEARABLE COMPUTING SYSTEM

Google LLC, Mountain Vie...

1. A computer-implemented method comprising:
receiving audio data corresponding to sound detected by a wearable computing system, wherein the wearable computing system
provides a view of a real-world environment of the wearable computing system;

analyzing the audio data to determine (i) a direction from the wearable computing system of a source of the sound and (ii)
an intensity level of the sound;

determining that the source of the sound is located either outside the view or in a periphery of the view; and
causing the wearable computing system to display separate indications including: (i) a first flashing light that indicates,
according to a location of the first flashing light, the direction of the source of the sound and (ii) a second flashing light
that indicates, according to a frequency of the second flashing light, the intensity level of the sound.

US Pat. No. 10,091,860

SWITCH DISCRIMINATING TOUCHLESS LIGHTSWITCH

Google LLC, Mountain Vie...

1. A method, comprising:receiving, by a processor and from at least two sensors, a signal indicative of a gesture, wherein the at least two sensors include a first sensor and a second sensor, the first sensor is directly connected to a multi-gang switch box comprising a plurality of switches, and the second sensor is directly connected to a switch of the plurality of switches;
determining, by the processor, at least one of the plurality of switches the gesture is directed toward;
causing, by the processor, an indicator to produce an indication that identifies the at least one of the plurality of switches to which the gesture is directed;
determining, by the processor, a state change for the at least one of the plurality of switches based on the gesture; and
causing, by the processor, the at least one of the plurality of switches to be adjusted according to the state change.

US Pat. No. 9,860,636

DIRECTIONAL MICROPHONE DEVICE AND SIGNAL PROCESSING TECHNIQUES

Google LLC, Mountain Vie...

1. An apparatus, comprising:
a case defining a plurality of openings in an external surface of the case; and
a plurality of microphones fastened to the case, wherein each microphone in the plurality of microphones is located adjacent
to a respective opening in the plurality of openings, wherein the external surface of the case at least partially defines
a plurality of funnel-shaped surfaces configured to cause direction-dependent variations in spectral notches and frequency
response of received audio, each of the funnel-shaped surfaces in the plurality of funnel-shaped surfaces has a respective
inlet and a respective outlet, and a respective diaphragm of each microphone in the plurality of microphones is located adjacent
to the respective outlet of a corresponding funnel.

US Pat. No. 9,905,109

RETROACTIVE MESSAGING FOR HANDLING MISSED SYNCHRONIZATION EVENTS

Google LLC, Mountain Vie...

1. A method for handling a delayed status update, the method comprising:
measuring, by a network-enabled sensor unit, an environmental condition;
determining, by the network-enabled sensor unit, based on measuring the environmental condition, an environmental condition
status has changed from a first state to a second state;

establishing a network connection that permits communication with a notification service system in response to determining
the environmental condition status has changed, wherein

the notification service system maintains a remote environmental condition status to be synchronized with the environmental
condition status of the network-enabled sensor unit;

determining, by the network-enabled sensor unit, the environmental condition status has reverted to the first state prior
to communicating the environmental condition status to the notification service system via the established network connection;
and

transmitting, by the network-enabled sensor unit, a historical status array to the notification service system via the established
network connection in response to determining the environmental condition status has reverted to the first state prior to
communicating the environmental condition status to the notification service system, wherein:

the historical status array indicates one or more previous states of the environmental condition status of the network-enabled
sensor unit; and

the remote environmental condition status remains unchanged at the notification service system.

US Pat. No. 9,858,275

SCORING STREAM ITEMS IN REAL TIME

Google LLC, Mountain Vie...

1. A computer-implemented method comprising:
generating a first global score for a content item obtained from heterogeneous data sources, the first global score being
independent from users and indicating popularity or importance of the content item within a source stream that produced the
content item;

generating a second global score by normalizing the first global score across a plurality of source streams;
determining a first candidate user for the content item based on the second global score and by querying a social graph using
metadata associated with the content item;

computing, based on a model, a first user score for a pair of the first candidate user and the content item to evaluate a
probability that the content item appears in a stream of content of the first candidate user;

determining whether a threshold is satisfied based on a volume and a quality of other content items on a same topic as the
content item; and

determining whether to present the content item in the stream of content of the first candidate user based on the first user
score and whether the threshold is satisfied.

US Pat. No. 9,836,527

CUSTOMIZED QUERY-ACTION MAPPINGS FOR AN OFFLINE GRAMMAR MODEL

Google LLC, Mountain Vie...

1. A method, comprising:
semantically processing, by an online semantic processor, a long tail voice-based query issued at a first resource-constrained
device of a coordinated ecosystem of resource-constrained devices controlled by a user to identify one or more candidate responsive
actions that are performable by one or more of the resource-constrained devices, wherein the long tail voice-based query is
unique or occurs relatively infrequently in a search volume of queries;

providing, as output at one or more of the resource-constrained devices, one or more prompts suggesting performance of the
respective one or more candidate actions;

analyzing one or more responses by the user to the one or more prompts to select, from the one or more candidate responsive
actions, a qualifying responsive action; and

updating an offline grammar model stored in each of the coordinated ecosystem of resource-constrained devices to include a
mapping between the issued long tail voice-based query and the qualifying responsive action, wherein the offline grammar model
maps voice-based queries to actions that are performable by each resource-constrained device of the coordinated ecosystem
of resource-constrained devices while offline.

US Pat. No. 10,117,213

MULTIPLE CARRIER ATTACHMENT ESTABLISHMENT AND MAINTENANCE

Google LLC, Mountain Vie...

1. A method, executed by a mobile station (MS) attached to a first wireless wide area network (WWAN), for attaching to a second WWAN while maintaining the attachment to the first WWAN, the method comprising:prior to a handover request by the MS, transmitting, via a physical uplink channel with a radio access network (RAN) of the first WWAN, an attach request message addressed to a generic access network controller of a generic access network (GAN) of the second WWAN via a third separate network;
receiving, via a physical downlink channel with the RAN of the first WWAN, an attach accept message from the generic access network controller of the GAN of the second WWAN via the third separate network, the attach accept message including a packet data network (PDN) address; and
storing, at a computer readable storage medium, an association relationship between an identifier of a subscription with the second WWAN and the PDN address.

US Pat. No. 9,905,122

SMART-HOME CONTROL SYSTEM PROVIDING HVAC SYSTEM DEPENDENT RESPONSES TO HAZARD DETECTION EVENTS

Google LLC, Mountain Vie...

1. A method for controlling a climate control system of a smart-home environment, the smart-home environment including a plurality
of smart devices that comprises a plurality of hazard detectors, the method comprising:
detecting, with a hazard detector of the plurality of hazard detectors, a level of carbon monoxide (CO) at the hazard detector
that exceeds a threshold CO level at a location of the hazard detector;

transmitting, by the hazard detector of the plurality of hazard detectors, via a low-power wireless communication protocol
and a low-power wireless communication network, an indication of the detected level of CO at the hazard detector that exceeds
the threshold CO level to one or more other smart devices of the plurality of smart devices;

translating, by a spokesman node of the low-power wireless communication network, the indication of the detected level of
CO at the hazard detector that exceeds the threshold CO level from the low-power wireless communication protocol to a second
wireless communication protocol, wherein the one or more other smart devices of the plurality of smart devices comprises the
spokesman node;

transmitting, by the spokesman node of the low-power wireless communication network, the indication of the detected level
of CO at the hazard detector that exceeds the threshold CO level to a system controller via a high-power wireless communication
network and the second wireless communication protocol;

determining, by one of the smart devices, that the climate control system includes a combustion based heat source; and
in response to the detecting and the determination, transmitting, by the system controller of the climate control system,
a first signal to turn off at least one aspect of the climate control system.

US Pat. No. 9,870,199

GENERATING COMPACT REPRESENTATIONS OF HIGH-DIMENSIONAL DATA

Google LLC, Mountain Vie...

1. A computer-implemented method comprising:
receiving a plurality of high-dimensional data items;
generating a circulant embedding matrix for the high-dimensional data items, wherein the circulant embedding matrix is a matrix
that is fully specified by a single vector, and wherein generating the circulant embedding matrix comprises learning each
element of the single vector that fully specifies the circulant embedding matrix, comprising:

receiving a training data matrix which represents a set of training data;
determining a binary matrix by computing a binary map of the product of the training data matrix and an initial circulant
embedding matrix; and

optimizing an objective function that is dependent on the circulant embedding matrix, the training data matrix, and the binary
matrix such that a distortion due to binarization and correlation between the rows of the circulant embedding matrix are minimized;

for each high-dimensional data item, generating a compact representation of the high-dimensional data item, comprising:
computing a product of the circulant embedding matrix and the high dimensional data item by performing a circular convolution
of the single vector that fully specifies the circulant embedding matrix and the high dimensional data item using a Fast Fourier
Transform (FFT);

generating a compact representation of the high dimensional data item by computing a binary map of the computed product; and
providing the compact representations of the high-dimensional data items in place of the high-dimensional data items as input
to a machine learning system.

US Pat. No. 9,836,819

SYSTEMS AND METHODS FOR SELECTIVE RETENTION AND EDITING OF IMAGES CAPTURED BY MOBILE IMAGE CAPTURE DEVICE

Google LLC, Mountain Vie...

1. A system for selective retention and editing of images, the system comprising:
a continuous capture mobile image capture device designed for resource efficiency, the mobile image capture device comprising
a network interface, a power source, an image sensor, at least one processor, and a memory that stores at least one neural
network usable to determine a desirability of a scene depicted by an image, the memory comprising at least a temporary image
buffer and a non-volatile memory, the mobile image capture device operable to:

capture a first image that depicts a scene;
maintain a first copy of the first image in the temporary image buffer;
input the first image into the at least one neural network;
receive at least one descriptor of the desirability of the scene depicted by the first image as an output of the at least
one neural network;

determine, based at least in part on the at least one descriptor of the desirability of the scene of the first image, whether
to store a second copy of the first image in the non-volatile memory of the mobile image capture device or to discard the
first copy of the first image from the temporary image buffer without storing a second copy of the first image in the non-volatile
memory; and

transmit at least one of a plurality of images stored in the non-volatile memory to a user computing device.

US Pat. No. 9,832,138

METHOD FOR AUTOMATIC MANAGEMENT CAPACITY AND PLACEMENT FOR GLOBAL SERVICES

Google LLC, Mountain Vie...

1. A computer-implemented method for providing web service instances to support traffic demands for a particular web service
in a large-scale distributed system, the method comprising:
determining a peak historical service load for the web service;
determining service load capacity for each existing web service instance;
determining a sum of the service load capacities of the existing web service instances;
calculating a remaining service load after subtracting the sum of the service load capacities of the existing web service
instances from the peak historical service load for the web service;

determining a number of additional web service instances based on the remaining service load;
determining locations for the additional web service instances; and
creating the additional web service instances at the determined locations of the large-scale distributed system.

US Pat. No. 9,935,730

SYSTEMS AND METHODS FOR USING RADIO LAYER INFORMATION TO ENHANCE NETWORK TRANSFER PROTOCOLS

Google LLC, Mountain Vie...

1. A method of data communication rate control, comprising:obtaining, by a mobile device, from a radio layer in the mobile device, channel characteristics indicating quality of a connection between the mobile device and a base station, the channel characteristics including a value for a Discontinuous Transmission (DTX) and Discontinuous Reception (DRX) communication availability fraction (DTX/DRX), wherein the DTX/DRX fraction indicates an availability of a communication between the mobile device and the base station;
determining, at the mobile device based on the obtained channel characteristics, a bandwidth of the connection between the mobile device and the base station;
calculating, by the mobile device based on the determined bandwidth, a data rate for transmitting data from a server remote from the base station to the mobile device; and
sending, from the mobile device, an instruction to the server to transmit data to the mobile device at the calculated data rate.

US Pat. No. 9,910,997

SECURE CREDENTIAL STORAGE

Google LLC

1. A method for securing a credential, comprising:
storing in a credential store a reference to the credential that is to be utilized to prove an authorization to provide access
to a service and, in association with the reference, an encrypted version of the credential, wherein the reference is used
to identify the credential;

storing in a key storage an encrypted version of a decryption key of the encrypted version of the credential, wherein the
key storage includes a hardware security module and the decryption key is used to decrypt the encrypted version of the credential,
and wherein an encryption key utilized to encrypt the encrypted version of the credential is either exclusive to a specific
organization or exclusive to and scoped to a specific application execution environment;

providing the credential from the credential store to an application execution platform having access to the credential store,
wherein the application execution platform includes an interface to access the service using the credential;

storing in a code repository of the application execution platform, application code for a plurality of different applications,
wherein the application code references the credential stored in the credential store, and wherein the application execution
platform is configured to at least in part execute the plurality of different applications;

executing, in an application execution environment, the application code that includes the reference to the credential stored
in the credential store;

obtaining a request from the application execution environment for the credential in response to execution of a portion of
the application code that includes the reference to the credential stored in the credential store;

determining whether the request is from execution of some application code within the application execution platform;
in response to (i) obtaining the request from the application execution environment for the credential in response to execution
of a portion of the application code that includes the reference to the credential stored in the credential store and (ii)
determining that the request is valid because the request is from execution of some application code within the application
execution platform, obtaining the encrypted version of the credential from the credential store based at least on the reference
in the application code;

determining a scope of the application execution environment executing the application code that includes the reference to
the credential stored in the credential store;

identifying the decryption key of the encrypted version of the credential based at least on the scope of the application execution
environment executing the application code that includes the reference to the credential stored in the credential store;

decrypting the decryption key of the encrypted version of the credential that is identified using the hardware security module
and decrypting the encrypted version of the credential obtained from the credential store using the decrypted decryption key;
and

providing to the application execution environment of the application code the decrypted credential for access to the service
on behalf of the application code.

US Pat. No. 9,904,703

DETERMINING CONTENT OF INTEREST BASED ON SOCIAL NETWORK INTERACTIONS AND INFORMATION

Google LLC, Mountain Vie...

1. A method comprising:
receiving, by one or more processors, from a user computing device associated with a user, user input indicating only a request
for content and exclusive of a user entered search query, the user subscribing as a member to a social networking service;

in response to receiving the user input indicating only the request for content and that is exclusive of a user entered search
query, performing a search of web-based resources, comprising:

i) identifying one or more other members that subscribe to the social networking service;
ii) identifying one or more engagements with the web-based resources, wherein the one or more engagements are performed by
the one or more other members, the identifying including, for a subset of the one or more engagements, identifying an event
associated with the subset of the one or more engagements;

iii) associating, for each web-based resource of the web-based resources, a quantifiable value with the web-based resource
based on the one or more engagements performed by the one or more other members with the web-based resource, wherein, for
a subset of the web-based resources that each include content that is associated with the event, the quantifiable value is
associated with a pattern in which the subset of the web-based resources have been shared by the one or more other members
of the social networking service, the pattern based on, for each web-based resource of the subset of the web-based resources
that is shared, a number of shares of the web-based resource within a threshold period of time of the event and that is greater
than a threshold quantity of shares;

iv) generating, by the one or more processors, for each web-based resource of the web-based resources, a social engagement
signal based on a) the quantifiable value associated with the web-based resource and b) independent of the user input indicating
only the request for content;

in response to receiving the user input indicating only the request, generating a query based on one or more of the social
engagement signals, the query comprising one or more keywords that are absent from the request;

identifying, based on the query, one or more of the web-based resources likely to be of interest to the user providing the
request; and

providing search results to the user computing device, the search results identifying at least one of the one or more identified
web-based resources.

US Pat. No. 9,894,735

SYSTEMS AND METHODS OF DETERMINING A TYPE AND FEATURE SET OF A LIGHT SOURCE, AND THE CONTROL THEREOF

GOOGLE LLC, Mountain Vie...

1. A system comprising:
a light source to emit light;
a sensor to determine a spectral distribution of the light emitted by the light source; and
a controller to determine a type of the light source, from two or more types of light sources having different spectral distributions,
based on the detected spectral distribution of the light emitted by the light source, and to control a function of the light
source coupled to the controller based on the determined type of the light source.

US Pat. No. 9,872,276

SCHEDULING OF SOFTWARE PACKAGE TRANSMISSIONS ON A MULTIMEDIA BROADCAST MULTICAST SERVICE CHANNEL

Google LLC, Mountain Vie...

1. A method comprising:
scheduling, by a computing device, transmission of software packages on a broadcast/multicast downlink channel, wherein the
schedule also includes media transmissions on the broadcast/multicast downlink channel, wherein the software package transmissions
are scheduled for one or more of a plurality of time periods when the media transmissions are using less than or equal to
a threshold capacity level of the broadcast/multicast downlink channel, and wherein the threshold capacity level is less than
an entire capacity of the broadcast/multicast downlink channel;

determining a particular software package related to a wireless computing device, wherein the particular software package
is scheduled to begin transmission on the broadcast/multicast downlink channel during a particular time period of the plurality
of time periods in which the particular software package can be completely transmitted without exceeding the capacity of the
channel; and

transmitting, to the wireless computing device, at least an identifier of the broadcast/multicast downlink channel, and an
indication of the particular time period.

US Pat. No. 9,865,006

FOLLOWING CONTENT PROVIDERS IN A SOCIAL CONTEXT

Google LLC, Mountain Vie...

1. A computer-implemented method comprising:
receiving a request for a content item for display on a website and to a user;
selecting, based on the user and on the website, a content item from among one or more content items;
based on a social network that includes (i) first social networking data that indicates social network friends of the user
and (ii) second social networking data that indicates users who have expressed interest in the content item, generating a
social overlay that includes a selectable control that, upon selection by the user, updates the social network to indicate
that the user expressed interest in the content item;

generating a combined content item that includes the social overlay that is overlaid on the content item;
outputting, for display on the website, the combined content item;
receiving, from the user, a selection of the selectable control; and
in response to the selection of the selectable control by the user, providing, for display on the website, a dialog box that
includes (i) a selectable republish control that, upon selection by the user, republishes the content item in an interface
that displays a social network of the user or (ii) a selectable follow control that, upon selection by the user, updates the
social network to indicate that the user follows a content provider associated with the content item.

US Pat. No. 9,867,125

SYSTEMS FOR ENABLING MODULAR MOBILE ELECTRONIC DEVICES

Google LLC, Mountain Vie...

1. A system for enabling a modular mobile electronic device comprising:
a module communication network enabling data transfer between modules of the modular mobile electronic device;
a module power network enabling power transfer between modules of the modular mobile electronic device, wherein the module
power network comprises a power bus;

a set of module interfaces removably coupling modules of the modular mobile electronic device to the modular mobile electronic
device; and

a supervisory controller communicatively coupled to the module communication network and electrically coupled to the module
power network;

wherein the set of module interfaces electrically connects modules in parallel to the power bus, the set of module interfaces
is connected to the power bus by a set of power management units, and power transfer through the set of module interfaces
is controlled by the set of power management units;

wherein the set of power management units are controlled by the supervisory controller;
wherein the set of power management units control power transfer on the power bus according power states set by the supervisory
controller;

wherein a first power state for a first module connected to the modular mobile electronic device includes a maximum power
transfer level; and

wherein a first power management unit connected to the first module electrically isolates the first module from the module
power bus upon detecting a power transfer level greater than the maximum power transfer level.

US Pat. No. 9,858,295

RANKING AND SELECTING IMAGES FOR DISPLAY FROM A SET OF IMAGES

Google LLC, Mountain Vie...

1. A computer-implemented method to provide selected images for display, the method comprising:
examining characteristics of a plurality of images, wherein examining the characteristics includes examining visual content
characteristics and one or more of: visual capture characteristics and social popularity characteristics of the plurality
of images, wherein the visual content characteristics include one or more detected types of content features depicted in the
plurality of images, wherein examining the one or more visual content characteristics includes:

comparing the one or more detected types of content features to a list of one or more particular content types, wherein the
list includes a content type that includes human faces; and

designating for exclusion one or more particular images of the plurality of images depicting at least one type of content
feature that matches one or more of the particular content types in the list;

determining individual scores for respective examined characteristics of multiple images of the plurality of images, wherein
the multiple images are assigned one or more of the individual scores based on the one or more detected types of content features
depicted in the multiple images;

determining overall scores of the multiple images based on a combination of the individual scores for the examined characteristics
of the multiple images;

determining a ranking of the multiple images based on the overall scores;
selecting one or more images of the multiple images based on the ranking of the multiple images, wherein the one or more particular
images are excluded from the selecting; and

causing a display of the one or more selected images.

US Pat. No. 9,836,484

SYSTEMS AND METHODS THAT LEVERAGE DEEP LEARNING TO SELECTIVELY STORE IMAGES AT A MOBILE IMAGE CAPTURE DEVICE

Google LLC, Mountain Vie...

1. A continuous capture mobile image capture device designed for resource efficiency, the mobile image capture device comprising:
a network interface;
a power source;
an image sensor;
at least one processor; and
a memory that stores a plurality of deep neural networks usable to determine a desirability of a scene depicted by an image,
the memory comprising at least a temporary image buffer and a non-volatile memory;

wherein the plurality of deep neural networks comprise one or more of:
a face detection deep neural network that detects a presence of one or more faces in the scene of each input image;
a face recognition deep neural network that matches one or more faces in the scene of each input image to one or more other
faces;

a face attributes deep neural network that detects various facial characteristics of one or more faces in the scene of each
input image;

an image content deep neural network that outputs one or more semantic labels that describe the scene of each input image;
and

a photo quality deep neural network that outputs a photo score that describes various photographic quality characteristics
of each input image; and

wherein the mobile image capture device is operable to:
capture a first image that depicts a scene;
maintain a first copy of the first image in the temporary image buffer;
input the first image into at least one of the plurality of deep neural networks;
receive at least one descriptor of the desirability of the scene depicted by the first image as an output from the at least
one of the plurality of deep neural networks into which the first image is input; and

determine, based at least in part on the at least one descriptor of the desirability of the scene of the first image, whether
to store a second copy of the first image in the non-volatile memory of the mobile image capture device or to discard the
first copy of the first image without storing a second copy of the first image.

US Pat. No. 9,913,278

SYSTEMS AND METHODS FOR DYNAMICALLY ALLOCATING WIRELESS SERVICE RESOURCES CONSONANT WITH SERVICE DEMAND DENSITY

Google LLC, Mountain Vie...

1. A system comprising:
an antenna array configured to provide a wireless service to a service area by transmitting a plurality of downlink beams,
each downlink beam covering a respective service region of the service area;

a power supply configured to power the antenna array up to a maximum power level; and
an antenna management logic configured to execute instructions that, when executed, cause the antenna management logic to:
identify a high demand region of the service area serviced by one or more downlink beams transmitted from a first set of antennas
at a first power level;

identify a low demand region of the service area serviced by one or more downlink beams transmitted from a second set of antennas
at a second power level;

reconfigure the antenna array to:
provide the wireless service to the high demand region of the service area at a third power level higher than the first power
level; and

provide the wireless service to the low demand region of the service area at a fourth power level lower than the second power
level such that the antenna array has a total power requirement that does not exceed the maximum power level.

US Pat. No. 9,858,171

APPLICATION ANALYTICS REPORTING

Google LLC, Mountain Vie...

1. A method of providing analytics data for an application comprising:
generating, by a processor, metrics regarding use of the application on a device, the metrics including data indicative of
a plurality of states of the application and state transitions during execution of the application;

comparing the metrics to a usage model for the application that indicates an expected set of states of the application and
expected state transitions during execution of the application;

determining a first portion of the metrics for which a difference between the first portion of the metrics and the expected
states and expected state transitions indicated by the usage model exceeds a predetermined threshold and a second portion
of the metrics for which a difference between the second portion of the metrics and the expected states and expected state
transitions indicated by the usage model is within the predetermined threshold;

choosing the first portion of the metrics to be reported to an external device responsive to determining the difference between
the first portion of the metrics and the expected states and expected state transitions indicated by the usage model exceeds
the predetermined threshold; and

transmitting to the external device the first portion of the metrics.

US Pat. No. 9,847,661

EXTENDED BATTERY CYCLE LIFE THROUGH SMART CHARGING OF RECHARGEABLE BATTERIES

Google LLC, Mountain Vie...

1. A user device comprising:
a charging circuit configured to charge a battery at a maximum charge rate or a decreased charge rate; and
a processor, connected to the charging circuit, the processor configured to:
sense that the charging circuit is receiving power from an external power source; and
determine whether a user set alarm clock event will occur more than a minimum charge time of the battery in the future; and
responsive to a determination that the user set alarm clock event is set to occur more than the minimum charge time of the
battery in the future, charge the battery by the charging circuit at a reduced charge rate, the reduced charge rate being
from 1 to 99 percent of the maximum charge rate.

US Pat. No. 9,836,456

TECHNIQUES FOR PROVIDING USER IMAGE CAPTURE FEEDBACK FOR IMPROVED MACHINE LANGUAGE TRANSLATION

GOOGLE LLC, Mountain Vie...

1. A computer-implemented method, comprising:
capturing, by a camera in electronic communication with a computing system having one or more processors, a first image of
an object comprising a text in a source language;

receiving, at the computing system and from the camera, the first image;
performing, by the computing system, optical character recognition (OCR) on the first image to obtain an OCR text that is
a machine-encoded text representation of the text;

in response to obtaining the OCR text, automatically obtaining, by the computing system and from a machine translation system,
a first translated OCR text and a translation score indicative of a degree of likelihood that the first translated OCR text
is an appropriate translation of the OCR text to a target language; and

when the translation score is less than a translation score threshold indicative of an acceptable degree of likelihood:
outputting, by the computing system, a user instruction to capture a set of second images of at least a portion of the object
using the camera;

in response to outputting the user instruction, capturing, by the camera, the second set of images;
receiving, at the computing system and from the camera, the set of second images;
performing, by the computing system, OCR on at least one of the set of second images to obtain a modified OCR text corresponding
to the text;

in response to obtaining the modified OCR text, obtaining, by the computing system and from the machine translation system,
a second translated OCR text representing a translation of the modified OCR text from the source language to the target language;
and

outputting, by the computing system, the second translated OCR text.

US Pat. No. 9,832,187

MANAGING DISPLAY OF PRIVATE INFORMATION

Google LLC, Mountain Vie...

1. A method comprising:
receiving an incoming communication that includes an image;
determining, based at least in part on an object identified in the image being associated with private information, that the
incoming communication includes private information, wherein identifying that the object included in the image is associated
with private information comprises:

determining a portion of image data from the image;
determining an image signature that represents the portion of selected image data;
determining a confidence value that indicates a likelihood that the image signature matches an object signature associated
with private information; and

determining that the incoming communication includes private information in response to determining that the confidence value
is greater than a predetermined value;

receiving motion data generated by one or more motion sensors of a wearable computing device that corresponds to a movement
of the wearable computing device;

determining, based on the received motion data, whether a user of the wearable computing device is likely viewing a display
of the wearable computing device; and

responsive to determining that the user is likely viewing the display of the wearable computing device, outputting, for display
at the wearable computing device, the private information.

US Pat. No. 10,136,561

TARGETED COOLING FOR DATACENTERS

Google LLC, Mountain Vie...

1. A data center cooling system, comprising:a warm-air cooling system configured to cool a flow of ambient air that circulates in a human-occupiable workspace of a data center;
one or more fans positioned to circulate the cooled ambient air directly from the human-occupiable workspace of the data center across a plurality of rack-mounted electronic devices located in a rack that comprises a front that is open to the human-occupiable workspace, the plurality of rack-mounted electronic devices serviceably accessible in the rack, wherein a majority of the rack is open to the human-occupiable workspace through the open front of the rack that is open to the human-occupiable workspace of the data center;
a cold-air cooling system positioned to circulate cooler-than-ambient air to the plurality of rack-mounted electronic devices located in the rack; and
a control system communicably coupled to the first warm-air and cold-air cooling systems and operable to perform operations comprising:
monitoring a temperature at or near a first area of rack-mounted electronic devices of the plurality of rack-mounted electronic devices;
operating the cold-air cooling system to circulate cooler-than-ambient air, through at least one cooler-than-ambient air duct of a plurality of cooler-than-ambient air ducts of the cold-air cooling system, to the first area of rack-mounted electronic devices when the monitored temperature exceeds a threshold temperature; and
operating the warm-air cooling system, during circulation of the cooler-than-ambient air, to cool the ambient air circulated to a second area of rack-mounted electronic devices of the plurality of rack-mounted electronic devices that is different than the first area of rack-mounted electronic devices.

US Pat. No. 9,948,668

SECURE HOST COMMUNICATIONS

GOOGLE LLC, Mountain Vie...

1. A computer-implemented method to communicate securely between devices, comprising:receiving, by a first computing device associated with a first host computing device, a first communication from a first user, the first communication received through a secure interface of the first computing device, wherein the secure interface is isolated from a host interface of the first computing device;
encrypting, by the first computing device and in a first isolated environment of the first computing device, the received first communication, wherein the first isolated environment is not directly accessible to the first host computing device; and
communicating, by the first computing device, the encrypted first communication to a first read file of the host interface of the first computing device, wherein the encrypted first communication is available to the first host computing device in the first read file.

US Pat. No. 9,909,862

CURVED ARRAY OF LIGHT-EMITTING ELEMENTS FOR SWEEPING OUT AN ANGULAR RANGE

Google LLC, Mountain Vie...

1. A device comprising:
a curved optical element;
a curved array of individually addressable light emitters arranged to emit light towards the curved optical element, wherein
a curvature of the curved array is substantially concentric to at least a portion of the circumference of the curved optical
element, wherein the curved optical element is arranged to focus light emitted from each individually addressable light emitter
to produce a substantially linear illumination pattern at a different corresponding scan angle within an angular range;

a controller operable to sequentially activate the individually addressable light emitters such that the substantially linear
illumination pattern sweeps out the angular range;

a light detector configured to detect the substantially linear illumination pattern; and
a computer configured to determine an angular position of the light detector based upon the pattern sweep.

US Pat. No. 9,903,814

SYSTEMS AND METHODS FOR OPTICALLY COUPLING OPTOELECTRONIC COMPONENTS OF A HAZARD DETECTION SYSTEM TO DETERMINE A SMOKE CONDITION OF AN ENVIRONMENT

GOOGLE LLC, Mountain Vie...

1. A hazard detection system comprising:
a chamber body defining a chamber space;
a light emitting diode operative to emit light with an emitted magnitude;
a first light detecting diode;
an optical coupling structure operative to:
enable a first portion of the emitted light with a detected magnitude to be detected by the first light detecting diode;
enable a second portion of the emitted light to be emitted into the chamber space; and
maintain a constant ratio between the value of the emitted magnitude and the value of the detected magnitude despite variation
in the value of the emitted magnitude;

a second light detecting diode operative to detect the second portion of the emitted light; and
a processing subsystem operative to:
determine the current value of the detected magnitude based on the current value of a power characteristic of the first light
detecting diode;

compare the determined current value of the detected magnitude with a particular value;
dictate the value of a power characteristic of the light emitting diode based on the comparison; and
determine a current particular smoke condition within the chamber space based on the current amount of the second portion
of the emitted light detected by the second light detecting diode.

US Pat. No. 9,883,479

GENERATING AND PUBLISHING VALIDATED LOCATION INFORMATION

Google LLC, Mountain Vie...

1. A method, comprising:
receiving, by a cloud-based location provider and from a wireless access point, initial location information including a respective
location of each of a plurality of other wireless access points and data representative of respective distances between the
wireless access point and each of the plurality of other wireless access points;

determining, by the cloud-based location provider and based on the initial location information and location data stored at
a location information data store of the cloud-based location provider, a location of the wireless access point including
a latitude and a longitude, wherein the location data includes respective location data for each known wireless access point
from a plurality of known wireless access points, wherein one or more wireless access points from the plurality of other wireless
access points are included in the plurality of known wireless access points, and wherein the respective location data for
each known wireless access point includes a respective location of the known wireless access point and data representative
of a distance between the known wireless access point and at least one other known wireless access point from the plurality
of known wireless access points;

generating, by the cloud-based location provider, a tuple for the wireless access point, the tuple including a token, the
latitude, and the longitude, wherein the token includes a description of the location of the wireless access point;

storing, by the cloud-based location provider and in the location information data store, the tuple for the wireless access
point;

signing, by the cloud-based location provider, the tuple with a credential to form signed location information; and
communicating, by the cloud-based location provider and to the wireless access point, the signed location information.

US Pat. No. 9,858,231

OPERATING SYSTEM CARD FOR MULTIPLE DEVICES

Google LLC, Mountain Vie...

1. A main printed circuit board (PCB) card comprising:
a System on a Chip (SoC) configured to run an operating system (OS) stored on the main PCB card;
at least one dynamic random access memory (DRAM) device configured for use by the SoC;
at least one non-volatile memory device configured for use by the SoC; and
at least one connector being a Universal Serial Bus (USB) connector, the main PCB card configured to be interchangeably interfaced
with multiple types of shell computing devices by way of a slot included in a shell computing device, the slot being configured
to accommodate the main PCB card, each type of shell computing device being of a different form factor, each form factor being
representative of a different type of computing device, the at least one connector configured to be plugged into a mating
connector included in a shell computing device, and a width of the main PCB card being less than forty millimeters.

US Pat. No. 9,875,718

ELECTROCHROMIC TWO WAY DISPLAY FOR TWO IN ONE LAPTOP/TABLET FORM FACTORS

GOOGLE LLC, Mountain Vie...

1. A method of operating a computing device including a base portion and a lid portion, the method comprising:
determining, based on receiving one or more inputs indicating a position of the lid portion with respect to the base portion,
that the computing device is in a laptop mode of operation or a tablet mode of operation; and
based on determining that the computing device is in a laptop mode of operation,
not applying a first voltage to a first electrochromic material included in a first side of a display device included in the
lid portion of the computing device, the first electrochromic material changing from an opaque state to a transparent state
in response to not applying the first voltage;

applying a second voltage to a second electrochromic material included in a second side of the display device included in
the lid portion of the computing device, the second electrochromic material changing from a transparent state to an opaque
state in response to applying the second voltage; and

displaying, on an organic light emitting diode (OLED) display included in the display device and located between the first
side of the display device and the second side of the display device, content visible from the first side of the display device
and not visible from the second side of the display device.

US Pat. No. 9,864,655

METHODS AND APPARATUS FOR MOBILE COMPUTING DEVICE SECURITY IN TESTING FACILITIES

Google LLC, Mountain Vie...

1. A method, comprising:
receiving, by a loading computing device, a request to restore a testing computing device to a known software configuration
comprising a plurality of software components for the testing computing device, wherein the testing computing device comprises
testing computer-readable storage divisible into a plurality of partitions; and

after receiving the request to restore the testing computing device to the known software configuration, restoring the testing
computing device to the known software configuration by at least:

obtaining, by the loading computing device, a software image from computer-readable storage, the software image storing at
least part of the known software configuration, wherein the software image comprises security-context data having one or more
security contexts associated with the plurality of software components, and wherein a particular security context of the one
or more security contexts comprises an identity, a role, and a domain,

storing, by the loading computing device, at least the plurality of software components of the obtained software image onto
the testing computing device by at least:

determining, by the loading computing device, one or more first partitions of the plurality of partitions to be stored using
a first storage technique that comprises a byte-for-byte storage technique;

storing, by the loading computing device, the one or more first partitions as part of the software image using the first storage
technique;

determining, by the loading computing device, one or more second partitions of the plurality of partitions to be stored using
a second storage technique that comprises a file-by-file storage technique; and

storing the one or more storage partitions as part of the software image using the second storage technique, and
after storing the plurality of software components onto the testing computing device, setting one or more security contexts
for the plurality of software components stored on the testing computing device using the security-context data stored with
the software image.

US Pat. No. 9,851,868

MULTI-STORY VISUAL EXPERIENCE

Google LLC, Mountain Vie...

1. A method performed by an apparatus, the method comprising:
presenting, through a display, a visual experience capable of telling multiple stories, the visual experience in moving visual
form and including at least a first story and a second story, the first story being an authored first series of first events
and the second story being an authored second series of second events, the authored first series of first events and the authored
second series of second events sharing an inflection event connecting plots of the first story and the second story; and

receiving a view selection and, when the view selection presents an inflection view including the inflection event:
determining, based on information about the visual experience or prior viewing of the visual experience, that an event of
the first series of events of the first story or an event of the second series of events of the second story has not been
presented; and

in response to determining, presenting the determined first event or the determined second event.

US Pat. No. 9,854,315

SYSTEMS AND METHODS FOR BROADCAST AUDIENCE INTERACTION AND PARTICIPATION

Google LLC, Mountain Vie...

1. A method for broadcast audience interaction, comprising:
broadcasting, by a first device associated with a media output device to a portable device, a discovery signal, receipt of
the discovery signal causing the portable device to activate a microphone of the portable device;

receiving, by the first device, a segment of audio output by the media output device and an audio interaction of a user recorded
by the microphone of the portable device;

identifying, by the first device an existence of the portable device based on correlation between the segment of audio output
by the media output device and the audio interaction of the user;

determining, by the first device, that the audio interaction of the user is not output by the media output device based on
identifying the existence of the portable device;

generating, by the first device, a first identifier of the audio interaction of the user and a second identifier of the segment
of audio output by the media device; and

transmitting, by the first device to a measurement system, the first identifier and the second identifier, the measurement
system recording an identification of an item of content corresponding to the segment of audio output by the media device
and an interaction with the item of content.

US Pat. No. 9,894,078

LOCATION-BASED REGULATION OF ACCESS

GOOGLE LLC, Mountain Vie...

1. An apparatus for enabling a wireless device to access content, the apparatus comprising:
a processor; and
a non-transitory computer-readable medium storing instructions configured to cause the processor to:
receive, from the wireless device and across a wireless communications network, a content request from the wireless device
wherein the wireless device administers a content regulation system;

receive, in association with the content request and from the wireless device, a coordinate location of the wireless device;
determine whether the wireless device is permitted to access content associated with the content request;
enable the wireless device to access the content;
generate a permissible location for the wireless device to access the content;
store an association between the content and the permissible location, wherein the association enables identification of the
permissible location based on the content;

configure the content regulation system to identify, using the association, the permissible location so the content can be
accessed by the wireless device within the identified permissible location; and

when the coordinate location of the wireless device is not in the generated permissible location, prompt the wireless device
to enroll with the content regulation system to enable the wireless device to access the content.

US Pat. No. 9,866,520

METHOD AND APPARATUS FOR MANAGING INTERNET CONTENT

Google LLC, Mountain Vie...

1. A method comprising:
performing pattern recognition, by a processing system including a processor, on a group of content to apply classifications
to members of the group of content according to a certification policy to generate a group of certified content, wherein the
pattern recognition comprises performing image recognition on images of the group of content to generate the classifications,
wherein the performing pattern recognition on the group of content further includes analyzing other information that describes
a particular content of the group of content, wherein the other information is not included in the group of content, and wherein
the performing pattern recognition on the group of content further includes categorizing the content according to subject
matter;

receiving, by the processing system, a request for access to target content from a communication device;
blocking, by the processing system, the access to the target content by the communication device responsive to a determination
that the target content is not included in the group of certified content; and

enabling, by the processing system, selective access by the communication device to the target content responsive to a determination
that the target content is included in the group of certified content, wherein the selective access is subject to blocking
access to the target content according to the classifications.

US Pat. No. 9,858,711

EFFICIENT COMPUTATION OF SHADOWS FOR CIRCULAR LIGHT SOURCES

Google LLC, Mountain Vie...

1. A method, comprising:
determining a light source configured to emit light using a computing device, wherein the light source comprises a center
point;

determining an occluding polygon using the computing device, wherein the occluding polygon is between the light source and
a receiver surface, and wherein the occluding polygon comprises a plurality of occluding-polygon vertices connected by occluding-polygon
edges;

determining a shadow of the occluding polygon on the receiver surface using the computing device by at least:
for a particular occluding-polygon vertex in the plurality of occluding-polygon vertices, determining a projection vertex
on the receiver surface based on a ray projected from the center point through the particular occluding-polygon vertex;

determining a projection circle around the projection vertex;
determining a penumbra of the shadow of the occluding polygon based on one or more tangents to the projection circle; and
determining an umbra of the shadow of the occluding polygon based on one or more additional tangents to the projection circle;
and

providing at least a part of the shadow of the occluding polygon for display using the computing device.

US Pat. No. 9,852,348

DOCUMENT SCANNER

Google LLC, Mountain Vie...

1. A computer implemented method, the method comprising:
receiving a scan request, wherein the scan request includes a plurality of text images, each text image representing a portion
of a text document, wherein the plurality of text images includes a first text image and a second text image that at least
partially overlap;

for each text image of the plurality of text images:
rectifying the text image to generate a text image with parallel image lines,
generating a plurality of word bounding boxes that enclose one or more connected components in the text image, wherein each
word bounding box is associated with a respective word of the text image, and

generating, for each respective word bounding box in the text image, a vector that describes a shape of the respective word;
combining text images of the plurality of text images that at least partially overlap to form a single text document including
combining the first text image of the plurality of text images and the second text image of the plurality of text images by
matching one or more shape descriptors from a first set of vectors generated for each respective word in the first text image
and one or more shape descriptors from a second set of vectors generated for each respective word in the second text image;
and

providing the combined image as a scannable document.

US Pat. No. 9,910,885

AUTOMATIC CONTINUED SEARCH

Google LLC, Mountain Vie...

1. A method implemented by one or more processors, comprising:
determining a feature based on one or more entities associated with computer-based activity indications of a user;
determining a score for the feature, wherein the score is indicative of likelihood that the user has interest in the feature;
identifying one or more attributes of the user;
determining a collection of information indications, wherein each of the information indications of the collection identifies
information related to the feature, and wherein determining the collection of information indications comprises:

selecting one or more of the information indications of the collection based on the attributes of the user;
identifying a user interface activity indication that is initiated by a computing device of the user and that is unrelated
to a search query submission by the user; and

providing the collection of information indications for display on the computing device based on the score satisfying a threshold
and in response to the user interface activity indication.

US Pat. No. 9,858,588

METHODS AND SYSTEMS FOR DISPLAYING ATTRIBUTION CREDIT DATA BASED ON PARAMETERS

Google LLC, Mountain Vie...

1. A method of providing, for display, attribution data associated with a plurality of events, comprising:
identifying, by a processor, a plurality of paths, each of the plurality of paths including a plurality of events, each event
corresponding to one of a plurality of channels and to parameter data comprising a plurality of parameters, each channel corresponding
one or more event types, each parameter comprising at least one of:

a position of the event within the path in which the event appears; or
a relative time of occurrence of the event with respect to a time of occurrence of another event within the path in which
the event appears;

identifying, from the plurality of paths, a first channel of the plurality of channels for which attribution credits are to
be determined, the first channel corresponding to a first set of one or more event types;

identifying, by the processor, for the first channel, a first set of events from the plurality of events of the plurality
of paths such that an event type of each event of the first set of events belongs to the first set of event types;

determining using an attribution model, by the processor, for the first channel, an attribution credit assigned to each event
of the first set of events;

calculating, by the processor, a total attribution credit for the first channel by adding the attribution credits assigned
to the first set of events;

identifying, from the plurality of paths, a plurality of event-parameter pairs associated with the first channel, each event-parameter
pair corresponding to an event of the first set of events, and one of the parameters associated with the event;

for each event-parameter pair,
determining a first event type of the event associated with the event-parameter pair and a parameter associated with the event;
identifying a second set of events, each of the second set of events having the first event type and associated with the parameter;
determining an aggregate of the attribution credits assigned to each event within the second set of events
determining, by the processor, a weighting for the event-parameter pair of the first channel by calculating a ratio of the
aggregate of the attribution credits to the total attribution credit, the weighting indicating a relative amount of attribution
credits assigned to the event when the event occurs within the plurality of paths at the at least one of the position or the
time of the parameter for the event-parameter pair; and

providing, for display, a visual object representing determined weightings for each event-parameter pair of the plurality
of event-parameter pairs, the visual object including an indicator indicating the determined weighting for at least one of
the plurality of the event-parameter pairs.

US Pat. No. 9,853,931

PREDICTIVE FORWARDING OF NOTIFICATION DATA

Google LLC, Mountain Vie...

1. A method comprising:
outputting, by the mobile computing device, at a first particular time, an indication of notification data associated with
the user;

determining, by the mobile computing device, that the user is not interacting with the mobile computing device at a second
particular time, the second particular time occurring a threshold amount time after the first particular time; and

responsive to determining that the user is not interacting with the mobile computing device at the second particular time,
transmitting, by the mobile computing device and to a computerized watch, the notification data.

US Pat. No. 9,852,542

METHODS AND APPARATUS RELATED TO GEOREFERENCED POSE OF 3D MODELS

Google LLC, Mountain Vie...

1. A process comprising:
generating, with one or more processors, a three-dimensional model, relative to a model space, of an object in real-world
space wherein the model is associated with a plurality of images of the object;

determining, with the one or more processors, a plurality of model indicators, each model indicator being associated with
an image of the object and a location from which the image was captured relative to a model space, where the location is determined
based on one or more of the plurality of images;

selecting, with the one or more processors, a model indicator from the plurality of model indicators;
selecting, with the one or more processors, a user-specified indicator from a plurality of user-specified indicators, the
user-specified indicator being associated with an image of the object and a user-specified location within the real-world
space from which the image was captured;

determining, with the one or more processors and based on an alignment of the selected model indicator and the selected user-specified
indicator, an indicator of the altitude of the model in real-world space; and

determining, with the one or more processors and based on the indicator of the altitude, the placement of the model in the
real-world space relative to a ground plane associated with the ground surface of the real-world space.

US Pat. No. 10,123,461

COOLING ELECTRONIC DEVICES IN A DATA CENTER WITH COOLING UNITS MOUNTED IN BAYS OF A SERVER RACK FRAME ASSEMBLY

Google LLC, Mountain Vie...

1. A data center cooling system, comprising:a server rack frame assembly that comprises a plurality of bays defined along a lengthwise dimension of the frame assembly, each bay comprising a volume defined at least in part by a specified height that is orthogonal to the lengthwise dimension and a specified width that is parallel to the lengthwise dimension and sized to at least partially enclose at least one server rack configured to support a plurality of data center computing devices; and
at least one cooling unit sized for a bay of the plurality of bays of the server rack frame assembly and configured to circulate a heated airflow from an open back side of the at least one server rack, cool the heated air, and circulate a cooling airflow through an open front side of the at least one server rack, wherein at least one perimeter dimension of the cooling unit is based on a form factor of the at least one server rack.

US Pat. No. 9,858,036

AUTOMATIC AUDIO LEVEL ADJUSTMENT DURING MEDIA ITEM PRESENTATION

GOOGLE LLC, Mountain Vie...

1. A method comprising:
identifying a set of media items from a playlist that were presented in a plurality of media players of computing devices,
each of the plurality of media players having a corresponding user, the set of media items including a first media item and
a second media item presented sequentially to the corresponding user;

determining, for each of the plurality of media players,
a first audio level value corresponding to an amplitude setting selected by a user of a respective media player during playback
of the first media item and

a second audio level value corresponding to an amplitude setting selected by the user of the respective media player during
playback of the second media item;

determining an audio level difference (ALD) value for each of the plurality of media players based on a corresponding first
audio level value and a corresponding second audio level value;

determining an aggregate ALD value based on ALD values determined for the plurality of media players; and
determining, based on the aggregate ALD value, a second audio level value for an amplitude setting to be provided for the
second media item in response to a request of a new user to play the second media item in relation to the playlist.

US Pat. No. 9,860,605

METHOD AND APPARATUS FOR CONTROLLING SOURCE TRANSMISSION RATE FOR VIDEO STREAMING BASED ON QUEUING DELAY

Google LLC, Mountain Vie...

1. A method for controlling transmission rate for video streaming from a source to a destination based on a receive queuing
delay, the method comprising:
determining a peak destination receive rate (B_dest_max);
determining a most recent source transmission bitrate (B_source);
determining the receive queuing delay (T_delay) for a packet transmitted from the source to the destination over a packet
switched network; and

adjusting a source transmission rate by lowering the source transmission rate to a predetermined value (B_source_min) for
a time period equal to:

T_delay*(B_source/(B_dest_max?B_source_min)).

US Pat. No. 9,948,592

MANAGING NOTIFICATIONS ACROSS SERVICES

GOOGLE LLC, Mountain Vie...

1. A method comprising:receiving an indication of a network message about activity that is of interest to a user;
generating first notification data and second notification data based on the indication of the network message;
sending the first notification data to a first client service and the second notification data to a second client service, wherein the first client service and the second client service are hosted by one or more client devices of the user, and wherein the first notification data and the second notification data notify the user of the activity from the network message;
receiving a read notification message indicating that the first notification data to the first client service has been interacted with by the user;
updating, by a processing device, a first read status associated with the first notification data and a second read status associated with the second notification data in response to receiving the read notification message indicating that the first notification data to the first client service has been interacted with by the user;
receiving, from the second client service, a request for the read status associated with the second notification data that has not been interacted with by the user; and
responsive to receiving the request from the second client service, sending a response to the second client service indicating that the read status associated with the second notification data has been modified.

US Pat. No. 10,085,357

GLASS ENCLOSURES FOR ELECTRONIC DEVICES

Google LLC, Mountain Vie...

1. An enclosure for an electronic device, comprising:an enclosure structure that has a first end, a second end, an outer surface, and an inner surface that encloses an inner region of the enclosure structure, the enclosure structure comprising a plurality of components that include:
(i) a first elongated enclosure plate formed of glass that is electromagnetically transparent to radio-frequency (RF) signals,
(ii) a second elongated enclosure plate formed of glass that is electromagnetically transparent to RF signals,
(iii) a first elongated support member formed of glass that is electromagnetically transparent to RF signals, the first elongated support member being joined to the first elongated enclosure plate at a first interface and being joined to the second elongated enclosure plate at a second interface, and
(iv) a second elongated support member formed of glass that is electromagnetically transparent to RF signals, the second elongated support member being joined to the first elongated enclosure plate at a third interface and being joined to the second elongated enclosure plate at a fourth interface,
wherein the first elongated enclosure plate, the second elongated enclosure plate, the first elongated support member, and the second elongated support member define the inner surface of the enclosure structure that forms the inner region of the enclosure structure; and
a first cap component disposed at the first end.

US Pat. No. 9,813,621

OMNISTEREO CAPTURE FOR MOBILE DEVICES

Google LLC, Mountain Vie...

1. A computer-implemented method comprising:
obtaining, at a computing device, images captured with a mobile device, the images including content captured from multiple
points around a circular path;

adjusting, with the computing device, one or more of the images for rendering a scene in 3D space, the adjusting including:
in response to determining at least one overlap between at least two of the images, the overlap including a match between
pixels in the at least two images, selecting, for each overlap, a portion of the pixels included in the respective overlap
and combining the portions so that each portion of pixels is vertically aligned to generate a 3D segment of the scene; and

in response to determining that there is not an overlap between the at least two images, generating additional image content
to be placed between the at least two images by sampling a plurality of pixels from the at least two images and combining
the additional image content to generate a 3D segment of the scene; and

rendering, in a head-mounted display, at least one of the 3D segments as part of the scene.

US Pat. No. 10,149,311

CONSTRUCTING A SELF-ORGANIZING MESH NETWORK USING 802.11AD TECHNOLOGY

Google LLC, Mountain Vie...

1. A method comprising:receiving, at data processing hardware, one or more node connections from a mesh network external to the data processing hardware, the mesh network including a network of nodes, each node operating in a station mode, the station mode non-communicative with any direct access point within the mesh network;
identifying, using the data processing hardware, a route within the mesh network for providing a data packet from a source to a destination;
determining, using the data processing hardware, schedule information associated with the identified route, the schedule information coordinating wireless communication between at least a first node and a second node along the route to transfer the data packet, the schedule information specifying a first beacon transmission interval and a first communication period for transmitting the data packet from the first node to the second node; and
providing, using the data processing hardware, the schedule information to the first node and the second node, the scheduling information, when provided to the first node and the second node, instructing a first media access control layer of the first node to operate in a transmitter mode and a second media access control layer of the second node to operate in a receiving mode to execute beam tracking during the first beacon transmission interval to determine a first directional beam for transmitting the data packet from the first node to the second node during the first communication period.

US Pat. No. 9,948,622

AUTHENTICATED SESSION ESTABLISHMENT

Google LLC, Mountain Vie...

1. A method for establishing a secure communications session between an initiator electronic device and a responder electronic device, comprising:providing to the responder electronic device, from the initiator electronic device, a request to begin a secure communication session, the request comprising:
initiator password-authenticated key agreement protocol data for security key establishment via password authentication at the responder electronic device;
a list of available parameters of the initiator electronic device;
a password source in a password source sub-field; and
one or more proposed parameters from the list of available parameters; and
establishing a initiator electronic device side of the secure communications session only when the one or more proposed parameters match one or more prioritized parameters.

US Pat. No. 9,860,441

TILE-BASED DIGITAL IMAGE CORRESPONDENCE

Google LLC, Mountain Vie...

1. A method comprising:
capturing, by an image sensor of a camera device, a first captured image of a scene and a second captured image of the scene;
for a plurality of m×n pixel tiles of the first captured image, determining, by a processor of the camera device, respective
distance matrixes, wherein the distance matrixes represent respective fit confidences between the m×n pixel tiles and pluralities
of target p×q pixel tiles in the second captured image;

approximating, by the processor, the distance matrixes with respective bivariate surfaces;
upsampling, by the processor, the bivariate surfaces to obtain respective offsets for pixels in the plurality of m×n pixel
tiles, such that the respective offsets, when applied to pixels in the plurality of m×n pixel tiles, cause parts of the first
captured image to estimate locations in the second captured image; and

based on the first captured image, the second captured image, and the respective offsets, generating, by the processor, an
intermediate image with intermediate locations of the pixels from the first captured image and the second captured image,
wherein the intermediate image represents an intermediate version of the scene that is temporally or physically between those
of the first captured image and the second captured image.

US Pat. No. 9,854,160

SYSTEMS AND METHODS FOR AUTONOMOUSLY GENERATING PHOTO SUMMARIES

Google LLC, Mountain Vie...

1. A method comprising:
storing, by a computing device in a first buffer, a set of images based on a live stream of image data captured by an image
capture device;

selecting, by the computing device, a subset of images from the set of images stored in the first buffer to include as part
of an image object representing a summary of the live stream of image data based on a determination that at least one image
in the subset of images exceeds a predetermined sharpness threshold;

generating, by the computing device, based on the subset of images, the image object representing the summary of the live
stream of image data; and

outputting, by the computing device, for display at a display device, an indication of the image object.

US Pat. No. 9,854,080

SPEAKERPHONE CONFIGURATION FOR CONFERENCING

Google LLC, Mountain Vie...

1. A device comprising:
a speaker;
a microphone; and
a housing at least partly enclosing the speaker and the microphone including:
a top face including a plurality of input buttons;
at least one side wall including one or more lights; and
a bottom face opposite the top face, the bottom face including a cavity, the cavity comprising a well that has:
a first wall having a first port,
a second wall adjacent to the first wall, the second wall having a second port,
a third wall adjacent to the second wall and parallel to the first wall, and
a fourth wall adjacent to the first wall and the third wall and parallel to the second wall;
wherein the first port is inaccessible when a first cable is connected to the second port, and the second port is inaccessible
when a second cable is connected to the first port.

US Pat. No. 9,864,967

MACHINE-READABLE DELIVERY PLATFORM FOR AUTOMATED PACKAGE DELIVERY

GOOGLE LLC, Mountain Vie...

1. A computer-implemented method to automate package deliveries, comprising:
associating, by one or more computing devices, delivery information with a delivery location for a package, wherein the delivery
information comprises an image to be printed for display in a particular location for the package to be deposited at the delivery
location; and

transmitting, by the one or more computing devices, the delivery information associated with the delivery location to a delivery
device for the delivery device to deliver the package to the particular location displaying the printed image at the delivery
location.

US Pat. No. 9,854,013

SYNCHRONOUS COMMUNICATION SYSTEM AND METHOD

GOOGLE LLC, Mountain Vie...

1. A computer-implemented method comprising:
providing, using one or more computing devices, a synchronous communication session for a plurality of users of a social network;
rendering a first video stream of a first user of the plurality of users within a primary viewing field associated with the
synchronous communication session;

rendering a placeholder for the first user of the plurality of users within a first portion of a secondary viewing field associated
with the synchronous communication session, wherein the secondary viewing field includes a plurality of portions; and

rendering video streams of the remaining users of the plurality of users within the remaining portions of the secondary viewing
field, wherein the first video stream of the first user within the primary viewing field, the placeholder for the first user
within the first portion of the secondary viewing field, and the video stream of the remaining users within the remaining
portions of the secondary viewing field are rendered simultaneously and such that the rendered first video stream within the
primary viewing field is larger in size than each of the rendered placeholder and the rendered video streams within the secondary
viewing field, and wherein the placeholder for the first user of the plurality of users is fully visible and includes one
or more of:

information concerning the first user of the plurality of users, and
a grayed-out version of the first video stream of the first user.

US Pat. No. 10,089,304

ENCODING AND ADAPTIVE, SCALABLE ACCESSING OF DISTRIBUTED MODELS

Google LLC, Mountain Vie...

1. A method for translating a text, comprising:receiving the text in a source language;
partitioning the text into a plurality of segments;
obtaining, for each segment, one or more candidate translations in a target language;
for each of a plurality of possible n grams in each candidate translation:
identifying a respective partition of a language model containing the n gram, wherein each partition includes a subset of all n grams in the target language and statistical data for the same subset of n grams, each n gram being a sequence of n tokens in the target language, wherein n is a positive integer, and wherein each partition is maintained by a different server of a plurality of servers;
sending a lookup request to the server maintaining the respective partition containing the n-gram;
obtaining, from the server maintaining the respective partition containing the n-gram, statistical data for the n gram; and
determining, for each segment of the text, a best candidate translation of the one or more candidate translations based on the obtained statistical data.

US Pat. No. 10,015,825

SMART-HOME DEVICE FACILITATING CONVENIENT SETUP OF PLURAL INSTANCES THEREOF IN THE SMART HOME

Google LLC, Mountain Vie...

1. A method for using a first smart-home device to pair a second smart-home device to a user account, the method comprising:receiving, by the first smart-home device, first wireless communications, wherein the first wireless communications use a first wireless protocol, and wherein the first smart-home device has previously been paired with the user account;
receiving, by the first smart-home device, a transmission that instructs the first smart-home device to establish second wireless communications between the first smart-home device and the second smart-home device;
establishing, between the first smart-home device and the second smart-home device, the second wireless communications, wherein the second wireless communications use a second wireless protocol;
receiving, by the first smart-home device, and using the first wireless protocol, information allowing the second smart-home device to use the first wireless protocol; and
sending, by the first smart-home device to the second smart-home device, and using the second wireless protocol, the information allowing the second smart-home device to use the first wireless protocol;
whereby a new pairing between the second smart-home device and the user account is established using the first wireless protocol.

US Pat. No. 9,864,738

METHODS AND APPARATUS RELATED TO AUTOMATICALLY REWRITING STRINGS OF TEXT

GOOGLE LLC, Mountain Vie...

1. A computer-implemented method, comprising:
identifying a string of text from a first electronic resource, wherein the string includes one or more tokens;
identifying one or more rewrite rules;
identifying a set of the rewrite rules for the string;
generating a rewrite of the string based on the tokens and the set of the rewrite rules;
providing, via one or more networks, the rewrite to computing devices, the rewrite being provided to the computing devices
for presentation, via applications executing on the computing devices, of the rewrite to users of the computing devices, and
the rewrite being provided for potential interaction, by the users via the applications, with content associated with the
rewrite;

identifying one or more interactions with the rewrite, of the string from the first electronic resource, in response to the
providing,

wherein each of the interactions indicates user interest in the content associated with the rewrite, and wherein each of the
interactions are identified in response to corresponding user interface input provided via a corresponding one of the applications;

scoring the set of the rewrite rules based on the one or more interactions with the rewrite of the string from the first electronic
resource;

after the scoring of the set of the rewrite rules, identifying an additional string of text from an additional electronic
resource;

based on the scoring of the set of the rewrite rules, that is based on the one or more interactions with the rewrite of the
string from the first electronic resource, selecting the set of the rewrite rules for generating an additional string rewrite
of the additional string that is from the additional electronic resource, the selecting comprising selecting the set of the
rewrite rules in lieu of other sets of the rewrite rules;

generating the additional string rewrite of the additional string, that is from the additional electronic resource, based
on the set of the rewrite rules; and

providing the additional string rewrite to one or more additional computing devices for presentation of the additional string
rewrite to additional users of the additional computing devices.

US Pat. No. 9,864,041

SYSTEMS AND METHODS FOR BEACON DEVICE FLEET MANAGEMENT

Google LLC, Mountain Vie...

1. A computer-implemented method to enable beacon device fleet management, the method comprising:
receiving, by a fleet management system, a plurality of observation reports respectively from a plurality of mobile computing
devices, each observation report identifying at least one of a plurality of beacon devices observed by a reporting mobile
computing device and describing a location of the reporting mobile computing device when the reporting mobile computing device
observed the identified at least one beacon device, wherein one or more of the plurality of observation reports identify a
plurality of simultaneously observed beacon devices, the plurality of simultaneously observed beacon devices including at
least a first beacon device and a second beacon device, and wherein the first beacon device is non-stationary;

receiving, by the fleet, management system from a fleet owner computing device, a device status request that requests an operational
status of at least the first beacon device of the plurality of beacon devices;

determining, by the fleet management system, a current location of the first beacon device based at least in part on the respective
locations indicated by the one or more of the plurality of observation reports and based at least in part on respective current
locations of the plurality of simultaneously observed beacon devices, such that the current location of the first beacon device
is determined based at least in part on a second location that is associated with the second beacon device that was simultaneously
observed with the first beacon device;

determining, by the fleet management system, a location status of the first beacon device based at least in part on the current
location of the first beacon device; and

transmitting, by the fleet management system, data that describes the determined location status of the first beacon device
to the fleet owner computing device.

US Pat. No. 9,851,699

COMPONENT INTERFACING IN HAZARD SAFETY SYSTEMS

GOOGLE LLC, Mountain Vie...

1. A dongle for interfacing a control panel system with a hazard detection device, the control panel system comprising a control
panel and at least one wired detection string, wherein the control panel monitors a current level provided to each wired detection
string to determine whether an alarm condition exists on the at least one wired detection string, and wherein the hazard detection
device would cause a false alarm condition to exist for the wired detection string if it were directly electrically coupled
to that wired detection string, the dongle comprising:
a first connector configured to be electrically coupled to a wired detection string of the control panel system;
a second connector configured to be electrically coupled to the hazard detection device; and
a first module configured to:
receive a control signal from the hazard detection device via the second connector;
pull a first amount of current from the control panel system via the first connector when the received control signal is a
first value, the first amount of current having a current level that does not indicate an alarm condition exists on the wired
detection string; and

pull a second amount of current from the control panel system via the first connector when the received control signal is
a second value, the second amount of current having a current level that does indicate an alarm condition exists on the wired
detection string.

US Pat. No. 10,037,310

EVALUATING CONTENT IN A COMPUTER NETWORKED ENVIRONMENT

GOOGLE LLC, Mountain Vie...

1. A computer-implemented method comprising:providing, by a data processing system, a first link to content for display on a first website, the first link having a first thumbnail associated with the content;
providing, by the data processing system, a second link to the content for display on a second website, the second link having a second thumbnail associated with the content, the second thumbnail being different from the first thumbnail;
monitoring at least one of a first number of views and a first number of conversions of the first link and at least one of a second number of views and a second number of conversions of the second link;
determining a quality metric of the first thumbnail based on at least one of the first number of views and the first number of conversions of the first link, and a quality metric of the second thumbnail based on at least one of the second number of views and the second number of conversions of the second link;
selecting, by the data processing system, the first thumbnail based on the quality metric of the first thumbnail being higher than the quality metric of the second thumbnail; and
automatically changing, by the data processing system in response to the selecting, a respective thumbnail of the second link displayed on a respective webpage to the selected first thumbnail for display in connection with a future rendering of the second link on the respective website.

US Pat. No. 10,031,920

THIRD-PARTY INDEXABLE TEXT

GOOGLE LLC, Mountain Vie...

1. A network system, comprising:a processor in communication with a data storage device and configured to:
identify a user-accessible resource associated with a third-party server, the user-accessible resource to be included in data searchable by a search component of the network system, the third-party server being separate from the network system;
communicate, to the third-party server, user-accessible resource access control information to obtain indexable metadata describing at least a portion of content of the user-accessible resource, the user-accessible resource access control information being different than access control information for the network system;
receive, from the third-party server, an amount of the indexable metadata describing at least a portion of content of the user-accessible resource; and
in response to determining that the received amount of indexable metadata is less than a threshold amount indicative of a maximum amount of indexable metadata to be stored on the network system, arrange the indexable metadata on the data storage device to cause the user-accessible resource to be included in the data searchable by the search component of the network system.

US Pat. No. 9,865,260

PROACTIVE INCORPORATION OF UNSOLICITED CONTENT INTO HUMAN-TO-COMPUTER DIALOGS

GOOGLE LLC, Mountain Vie...

1. A method, comprising:
identifying, by one or more processors, based on content of an existing human-to-computer dialog session between a user and
an automated assistant, an entity mentioned by the user or the automated assistant;

determining, by one or more of the processors, that the automated assistant has fulfilled one or more outstanding obligations
of the automated assistant to the user;

identifying, by one or more of the processors, based on entity data contained in one or more databases, one or more facts
about the entity, wherein the entity is associated with an entity class in one or more of the databases;

determining, by one or more of the processors, for each of the one or more facts, a corresponding measure of potential interest
to the user, wherein the corresponding measure of potential interest for each fact is determined based on:

a relationship between the entity and the fact, and
interests of other users in the same relationship between other entities that share the same entity class as the entity and
respective facts about the other entities;

generating, by one or more of the processors, unsolicited natural language content, wherein the unsolicited natural language
content includes one or more of the facts selected based on the corresponding one or more measures of potential interest;
and

after the determination that the automated assistant has fulfilled one or more outstanding obligations of the automated assistant
to the user, incorporating, by the automated assistant into the existing human-to-computer dialog session, the unsolicited
natural language content, wherein the incorporating causes the unsolicited natural language content to be automatically output
to the user as part of the existing human-to-computer dialog session.

US Pat. No. 9,865,897

STACKED ELECTROCHEMICAL CELL WITH INCREASED ENERGY DENSITY

Google LLC, Mountain Vie...

1. An electrochemical cell assembly, comprising:
a first cell; and
a second cell;
the first cell having a first width, the first cell comprising a first anode and a first cathode wound in a first jellyroll
assembly with a first jellyroll assembly exterior defined by the first cathode, a portion of the first cathode extending along
one or more turns of the first jellyroll assembly;

the second cell having a second width being greater than the first width, the second cell comprising a second anode and a
second cathode, wound in a second jellyroll assembly with a second jellyroll assembly exterior defined by the second anode;
and

the first cell and the second cell arranged in a housing with the first jellyroll assembly exterior adjacent to the second
jellyroll assembly exterior such that the second anode includes an anode area of electrochemically active material on the
second jellyroll assembly exterior that is greater than a cathode area of the first cathode on the first jellyroll assembly
exterior at a cathode to anode abutment.

US Pat. No. 9,851,471

WEATHER FORECASTS BASED ON EXPECTED LOCATION

Google LLC, Mountain Vie...

1. A method comprising:
maintaining a location history associated with a computing device;
identifying, from the location history associated with the computing device, locations visited by a user of the computing
device and respective visit times associated with each of the locations;

determining, based on the locations visited by the user and the respective visit times, a travel pattern associated with the
user;

generating, by a computing system, based at least in part on the travel pattern, a probabilistic model configured to predict
where the user of the computing device is likely to be at future times;

determining, by a computing system, using the probabilistic model, a future time at which a user of the computing device is
predicted to engage in an outdoor activity;

responsive to determining the future time at which the user of the computing device is predicted to engage in the outdoor
activity, retrieving, by the computing system, from a weather information source, a predicted weather forecast for a location
associated with the outdoor activity at the future time;

determining, by the computing system, one or more differences between usual weather conditions associated with the outdoor
activity and the predicted weather forecast for the location associated with the outdoor activity at the future time;

determining whether at least one of the one or more differences satisfy a threshold; and
responsive to determining that at least one of the one or more differences satisfies the threshold, automatically sending,
by the computing system, to the computing device and prior to the future time, notification data based on the predicted weather
forecast.

US Pat. No. 9,841,205

SYSTEMS AND METHODS OF DETECTION WITH ACTIVE INFRARED SENSORS

GOOGLE LLC, Mountain Vie...

1. A method comprising:
outputting infrared (IR) light from an IR light source of an active infrared (AIR) sensor;
receiving reflected IR light with a light sensor;
mapping, by the processor, features of a room according to the received reflected IR light; and
determining, with a processor coupled to the light sensor, whether an exterior portal of a room is open according to the received
reflected IR light and the mapped features of the room.

US Pat. No. 9,836,442

SYNCHRONIZATION AND PLAYBACK OF RELATED MEDIA ITEMS OF DIFFERENT FORMATS

Google LLC, Mountain Vie...

1. A computer-implemented method comprising:
receiving a synchronization point including a location identifier that identifies a location within an e-book linked to a
respective location of each of a plurality of related media items, and a plurality of media identifiers that each uniquely
identify a respective one of the plurality of related media items, wherein each media item of the plurality of related media
items is directed to a same story as the e-book and has a different media format than the e-book and other related media items,
wherein the e-book includes text, and wherein the plurality of related media items includes a video;

inserting, within the text of the e-book, a image of the video, the image being extracted from a linked-to location within
the video, the image of the video being a visible marker indicating a presence of the synchronization point at the location
within the e-book;

presenting a synchronization point interface element that includes at least a portion of the e-book that includes text at
the location of the e-book linked to the location of the video and the image of the video extracted from the linked-to location
within the video;

detecting activation of the synchronization point interface element; and
responsive to detecting the activation of the synchronization point interface element:
identifying, based on the plurality of related media identifiers, the plurality of related media items;
prompting a selection of one of the plurality of related media items; and
responsive to receiving the selection of the one of the plurality of related media items, presenting content of the one of
the one of the plurality of related media items included at the respective location of the one of the plurality of related
media items specified by the synchronization point.

US Pat. No. 10,349,561

COOLING ELECTRONIC DEVICES IN A DATA CENTER

Google LLC, Mountain Vie...

14. A method for cooling data center electronic devices, comprising:vaporizing at least a portion of a working fluid in an evaporator of a modular heat sink with heat from a heat-generating electronic device in thermal contact with the evaporator;
circulating a vapor phase of the working fluid from the evaporator through respective open ends of a plurality of transport tubes that fluidly couple the evaporator to a condenser of the modular heat sink, the respective open ends positioned in the evaporator;
condensing at least a portion of the vapor phase of the working fluid, in respective closed portions of the plurality of transport tubes that extend into an interior volume of the condenser and from a housing of the condenser such that the plurality of transport tubes are structurally independent from a structure of the condenser, the plurality of transport tubes terminating in closed ends within the interior volume of the condenser, to a liquid phase of the working fluid, the closed ends of the plurality of transport tubes positioned in respective areas of the condenser that comprise distinct thermal areas of the condenser such that the plurality of transport tubes have distinct effective lengths measured from the respective open ends of the portion of the plurality of transport tubes to the respective closed ends of the portion of the plurality of transport tubes; and
circulating the liquid phase of the working fluid to the evaporator through the plurality of transport tubes such that the working fluid inside each of the transport tubes is fluidly decoupled from the working fluid inside the other transport tubes.

US Pat. No. 10,037,145

PERFORMANT MEMORY MANAGER FOR CLOUD APPLICATIONS

Google LLC, Mountain Vie...

1. A method, comprising:executing, with one or more processors, a plurality of threads;
determining, with the one or more processors, whether one of the plurality of threads has terminated;
if one of the plurality of threads has terminated, removing, with the one or more processors, from a memory associated with the terminated thread, objects no longer in use by any of the plurality of threads, while continuing execution of other threads in the plurality of threads;
walking a heap, the heap including a plurality of spans, where each of the plurality of threads owns one or more of the plurality of spans, each span including a plurality of objects used by its associated thread;
marking reachable objects in the heap;
generating a mark bitmap identifying the reachable objects in the heap; and
sweeping the mark bitmap without clearing mark bits.

US Pat. No. 9,865,264

SELECTIVE SPEECH RECOGNITION FOR CHAT AND DIGITAL PERSONAL ASSISTANT SYSTEMS

GOOGLE LLC, Mountain Vie...

1. A method for speech recognition in a Chat Information System (CIS), the method comprising:
receiving, by a processor operatively coupled with a memory, a first audio input, the first audio input captured by a microphone
of a device of a user;

recognizing, by a first speech recognizer of a plurality of speech recognizers, at least a part of the first audio input to
generate a first recognized input, wherein each of the plurality of speech recognizers is configured to generate a plurality
of outputs provided with corresponding confidence levels, the processor being configured to select an output from the plurality
of outputs based on the confidence levels;

providing, by the processor, a response to the first recognized input utilizing the CIS, the response being provided for presentation
to the user via the device of the user;

determining, by the processor, a response type of the response provided utilizing the CIS, the response type predicting a
type of input of the user that will follow the response;

receiving, by the processor, a second audio input that follows the response;
based on the determined response type of the response provided utilizing the CIS, selecting, by the processor, a second speech
recognizer, of the plurality of speech recognizers, for use in recognizing the second audio input that follows the response;

recognizing, by the second speech recognizer, at least a part of the second audio input to generate a second recognized input;
and

providing, by the processor, a second response based on the second recognized input utilizing the CIS, the second response
being provided for presentation to the user via the device.

US Pat. No. 9,865,008

DETERMINING A CONFIGURATION OF A CONTENT ITEM DISPLAY ENVIRONMENT

Google LLC, Mountain Vie...

1. A method comprising:
receiving, by a content server from a client device, a first content item request for content for inclusion in a content item
display environment of a resource hosted from a first network domain, the content item display environment hosted from a second
network domain different from the first network domain;

providing, by the content server, responsive to receiving the first content item request, a first content item and instructions
causing the client device to generate a child display environment of the content item display environment by interacting with
a publisher side file hosted by a device in the first network domain,

the instructions further causing the client device to transmit a parameterized request from the client device to the device
in the first network domain, the parameterized request passing parameters to access configuration determination instructions
that cause the client device to generate, using the child display environment, measurement data for the resource and for the
content item display environment;

receiving, from the client device, the generated measurement data specifying a configuration of the content item display environment
and the resource;

determining that a position of the content item display environment permits an expandable advertisement to be expanded without
intersecting a boundary of the resource;

receiving, by the content server, a second content item request for content to display in the content item display environment,
the second content item request received subsequent to the first content item request;

selecting, by the content server, a second content item from a plurality of second content items based at least in part on
the measurement data, and based at least on the determination that a position of the content item display environment permits
an expandable advertisement to be expanded without intersecting a boundary of the resource, wherein the second content item
is an expandable advertisement; and

providing, by a content server, data specifying the selected second content item responsive to the second content item request,
the data specifying the selected second content item causing the client device to display the selected second content item.

US Pat. No. 9,851,567

INTERCHANGEABLE EYEWEAR/HEAD-MOUNTED DEVICE ASSEMBLY WITH QUICK RELEASE MECHANISM

Google LLC, Mountain Vie...

1. Eyewear comprising:
an eyeglass frame unit comprising a central frame support having first and second ends, a frame side arm extending away from
the first end, and a first connector mechanism adjacent the first end of the central frame support, the first connector mechanism
including a cap aligned along an axis, wherein the first and second ends of the central frame support are positioned along
a first plane and the first connector mechanism is positioned along a second plane parallel to the first plane;

a first eyeglass temple side arm removably connected to the first connector mechanism and rotatably connected to the eyeglass
frame unit, the first eyeglass temple side arm comprising a side arm body and a second connector mechanism constructed and
arranged to fit into the cap of the first connector mechanism and interlock with the first connector mechanism, wherein the
second connector mechanism is aligned along the axis about which the first eyeglass temple side arm is configured to rotate
relative to the eyeglass frame unit, the second connector mechanism being positioned along the second plane; and

a second eyeglass temple side arm connected adjacent to the second end of the central frame support along a third plane parallel
to the first and second planes;

wherein the second connector mechanism further comprises a tab constructed and arranged to be manipulated by a user between
a first position and a second position, wherein the tab is configured to rotate relative to the side arm body when the first
and second connector mechanisms are joined together, wherein when the tab moves from the first position to the second position,
the second connector mechanism moves relative to the first connector mechanism within the cap of the first connector mechanism
to interlock the first and second connector mechanisms together.

US Pat. No. 9,852,440

METHODS AND SYSTEMS FOR SELECTING CONTENT FOR DISPLAY BASED ON CONVERSION PROBABILITIES OF PATHS

Google LLC, Mountain Vie...

1. A method for selecting content for display at a device, comprising:
identifying, by a processor, a visitor identifier associated with a device on which to display content;
identifying a path associated with the visitor identifier, the path corresponding to a sequence of events through which the
visitor identifier has visited the website, each of the events:

associated with an index position indicating a position of the event within the path; and
having an event type from among a plurality of event types;
defining a plurality of path types, each path type defined as a path comprising a number of events, the events comprising
a series of event types occurring in a particular order at particular index positions within the path;

determining, by the processor, a path type from the plurality of path types for the identified path by identifying the path
type having the same number of event as the identified path and series of events in the order and the index positions as the
identified path;

identifying, by the processor, a conversion probability of the path type, the conversion probability of the path type indicating
a likelihood that the visitor identifier will convert at the web site after the sequence of events associated with the path
type, the conversion probability of the path type is a ratio of a number of paths that matches the path type and led to conversions
at the website to a total number of paths that matches the path type over a given time period;

determining, by the processor, a plurality of possible paths by adding one or more additional events at the end of the sequence
of events of the identified path;

for each possible path,
determining, by the processor, a path type of the possible path from the plurality of path types; and
identifying, by the processor, a conversion probability of the path type of the possible path;
selecting a possible path based on the conversion probabilities associated with the plurality of possible paths; and
selecting, by the processor, content for display on the device, the content selected based on the one or more additional events
associated with the selected possible path.

US Pat. No. 9,841,291

GENERATING TURN-BY-TURN DIRECTION PREVIEWS

Google LLC, Mountain Vie...

1. A method for generating turn-by-turn direction previews, the method comprising:
receiving, using one or more computing devices, a request for a turn-by-turn direction preview;
generating, using the one or more computing devices, a set of turn-by-turn directions based on a series of road segments between
a first geographic location and a second geographic location, each road segment of the series being defined by two waypoints
along a route between the first geographic location and the second geographic location and portions of roadway between the
two waypoints;

identifying, using the one or more computing devices, a set of images for each road segment of the series;
filtering each given set of images of the sets of images, using the one or more computing devices, to remove any images that
exceed a predetermined quantity of images designated for that given set of images; and

generating, using the one or more computing devices, the turn-by-turn direction preview based on at least in part on each
of the filtered sets of images.

US Pat. No. 10,178,527

PERSONALIZED ENTITY REPOSITORY

GOOGLE LLC, Mountain Vie...

1. A mobile device comprising:a display device;
a personalized entity repository stored in memory of the mobile device, the personalized entity repository including a plurality of fixed sets of entities from an entity repository stored at a server, wherein each fixed set is computed independently of a particular user or query, has a respective identifier, and includes information about the entities in the set;
at least one processor; and
memory storing instructions that, when executed by the at least one processor, cause the mobile device to:
identify fixed sets of entities in the entity repository stored at the server that are relevant to a user of the mobile device based on context associated with the mobile device,
rank the sets in the identified fixed sets by relevancy;
determine selected sets from the identified fixed sets using the rank and set usage parameters applicable to the user;
update, using the selected sets, the personalized entity repository stored in the memory of the mobile device;
subsequent to the personalized entity repository being updated using the selected sets:
use the updated personalized entity repository, stored in the memory of the mobile device, to determine that content generated for display on the display device includes an entity that is in the updated personalized entity repository; and
provide, for presentation at the mobile device, a suggestion related to the entity based on determining that the content includes the entity that is in the personalized entity repository, stored in the memory of the mobile device.

US Pat. No. 10,175,781

INTERACTIVE OBJECT WITH MULTIPLE ELECTRONICS MODULES

Google LLC, Mountain Vie...

1. A system comprising:an interactive object comprising:
a grid of conductive thread woven into the interactive object;
an internal electronics module coupled to the grid of conductive thread, the internal electronics module comprising sensing circuitry configured to detect touch-input to the grid of conductive thread;
an external electronics module comprising one or more electronic components, the external electronics module removably coupled to the interactive object, the external electronics module including an anisotropic conducting polymer configured to enable electrical connections between the one or more electronic components of the external electronics module and the sensing circuitry of the internal electronics module; and
a communication interface configured to enable communication between the internal electronics module and the external electronics module when the external electronics module is coupled to the interactive object.

US Pat. No. 10,032,429

DEVICE CONTROL UTILIZING OPTICAL FLOW

Google LLC, Mountain Vie...

1. A computing device comprising:a camera configured to capture image data indicative of a wearer field-of-view associated with a wearable computing device when worn; and
a computing system configured to:
determine optical flow from the image data;
determine, based on the optical flow, that the wearable computing device is associated with movement of a vehicle;
responsive to the determination that the wearable computing device is associated with movement of the vehicle:
detect, from the image data, one or more objects in the wearer field-of-view that are indicative of an operator location in the vehicle;
detect gaze data from a gaze tracking sensor that is indicative of focus on a side-view mirror, a rear-view mirror, a speedometer, or other operator-side instrument of the vehicle;
determine, based at least in part on the detection of the one or more objects in the wearer field-of-view and the detection of gaze data indicative of focus on the side-view mirror, the rear-view mirror, the speedometer, or the other operator-side instrument of the vehicle, that the wearable computing device is positioned at the operator location in the vehicle;
control a display to display information in a first mode, when the wearable computing device is associated with the operation of the vehicle; and
control the display to display information in a second mode different from the first mode, when the wearable computing device is not associated with the operation of the vehicle.

US Pat. No. 9,852,131

TECHNIQUES FOR PROVIDING VISUAL TRANSLATION CARDS INCLUDING CONTEXTUALLY RELEVANT DEFINITIONS AND EXAMPLES

GOOGLE LLC, Mountain Vie...

1. A computer-implemented method, comprising:
receiving, at a server having one or more processors and from a computing device via a network, a selected word in a source
language, the computing device being associated with a user;

obtaining, by the server, parts-of-speech for the selected word;
for each of the parts-of-speech for the selected word:
(i) obtaining, by the server, candidate translations of the selected word to a different target language, each candidate translation
corresponding to a particular semantic meaning of a plurality of semantic meanings of the selected word; and

(ii) for each particular semantic meaning of the selected word:
(a) obtaining, by the server, an image corresponding to the particular semantic meaning of the selected word by utilizing
a machine-trained database of images associated with various semantic meanings,

(b) obtaining an example sentence in the source language that includes a form of the selected word and is descriptive of a
context of the corresponding image,

(c) compiling, by the server, translation information including (i) the particular semantic meaning, (ii) a corresponding
part-of-speech, (iii) the image, (iv) the example sentence, and (v) at least one corresponding candidate translation, and

(d) generating, by the server, a translation card or an instruction to generate the translation card, the translation card
comprising the translation information; and

outputting, by the server and to the computing device via the network, the plurality of translation cards or the plurality
of instructions, wherein receipt of the plurality of translation cards or the plurality of instructions causes the computing
device to:

render at least one of a first set of the plurality of translation cards on a display of the computing device, the first set
of the plurality of translation cards including at least one translation card for a first part-of-speech of the parts-of-speech,
each translation card of the first set of the plurality of translation cards corresponding to a different semantic meaning
of the selected word; and

render a first selectable icon on the display, the first selectable icon being configured to, upon its selection, render at
least one of a different second set of the plurality of translation cards on the display, the second set of the plurality
of translation cards including at least one translation card for a second part-of-speech of the parts-of-speech.

US Pat. No. 9,836,725

DETERMINING TRANSPORTATION STATUS USING NETWORK CONNECTIONS

GOOGLE LLC, Mountain Vie...

1. A method to provide flight status information, comprising:
obtaining flight information for each of a plurality of users, wherein each user of the plurality of users is associated with
a particular flight, the flight having a flight identifier and associated with a particular scheduled departure time and departure
location;

based on the scheduled departure time, obtaining location information for user computing devices associated with each user
of the plurality of users;

determining that the respective user computing devices associated with a first group of users of the plurality of users have
a location associated with the departure location;

determining that at least a threshold percentage of the respective user computing devices associated with users of the first
group of users having a location associated with the departure location are no longer in communication with a mobile network,
the threshold percentage being less than one hundred percent;

determining a disconnection time at which a last user computing device of the at least the threshold percentage of the respective
user computing devices is no longer in communication with the mobile network;

designating the disconnection time as a departure time for the particular flight; and
in response to a received query, providing flight status information based on the determined departure time comprising the
disconnection time.

US Pat. No. 9,838,846

EXTRACTION OF WALKING DIRECTION FROM DEVICE ORIENTATION AND RECONSTRUCTION OF DEVICE ORIENTATION DURING OPTIMIZATION OF WALKING DIRECTION

Google LLC, Mountain Vie...

1. A method comprising:
determining, by one or more processors of a computing device, a rotation between a client device coordinate frame defined
with respect to a client device and a world coordinate frame defined with respect to a world;

determining, by the one or more processors, a rotation between an average gravity aligned (AGA) coordinate frame defined with
respect to an average gravity measurement of the client device and the client device coordinate frame;

performing, by the one or more processors, step detection associated with the client device;
determining, by the one or more processors, a change in orientation associated with the client device from a first detected
step to a second detected step, wherein computing the change in orientation includes:

determining a rotation between a horizontally projected AGA (HPAGA) coordinate frame that corresponds to the AGA coordinate
frame when a vertically oriented Z-axis of the AGA coordinate frame is aligned with a vertically oriented Z-axis of the world
coordinate frame and the AGA coordinate frame, wherein a horizontally oriented X-axis of the HPAGA coordinate frame represents
an orientation associated with the device;

determining a rotation between the world coordinate frame and the HPAGA coordinate frame, wherein determining the rotation
between the world coordinate frame and the HPAGA coordinate frame uses the rotation between the client device coordinate frame
and the world coordinate frame, the rotation between the AGA coordinate frame and the client device coordinate frame, and
the rotation between the HPAGA coordinate frame and the AGA coordinate frame; and

determining the change in orientation associated with the client device from the first detected step to the second detected
step by using the rotation between the world coordinate frame and the HPAGA coordinate frame;

determining, by the one or more processors and using the computed change in orientation, pedestrian dead reckoning data of
the client device over a time period; and

determining, by the one or more processors, an output location estimate of the client device using the pedestrian dead reckoning
data.

US Pat. No. 10,088,242

VARIABLE THICKNESS HEAT PIPE

Google LLC, Mountain Vie...

1. A cooling assembly, comprising:a discrete heat spreader;
a radiator;
and a heat pipe coupling the heat spreader and the radiator, the heat pipe including:
a first end portion connected to the heat spreader, the first end portion having a first substantially uniform thickness,
a second end portion connected to the radiator, the second end portion having a second substantially uniform thickness, and
a mid-portion located between the first end portion and the second-end portion, the mid-portion having a third substantially uniform thickness that is greater than the first thickness and the second thickness,
wherein the first end portion, the second end portion, and the mid-portion have a substantially uniform width.

US Pat. No. 10,089,154

MANAGING METADATA FOR A DISTRIBUTED PROCESSING SYSTEM WITH MANAGER AGENTS AND WORKER AGENTS

Google LLC, Mountain Vie...

1. A method implemented by data processing apparatus, the method comprising:accessing, by a manager agent executing in data processor, a grain hierarchy that represents a state for a computation that is to be performed by a distributed processing system that includes a plurality of data processors, the grain hierarchy organizing a set of grains according to a tree structure, and wherein each grain included in the set of grains comprises metadata that specifies a portion of the state for the computation, wherein the grain hierarchy comprises:
manager agent grains including metadata for manager agent processes that manage the performance of the computation by the distributed processing system;
worker agent grains including, for tasks to be performed by the distributed processing system, metadata for worker agents that each correspond to a subset of the plurality of data processors for performing the task; and
subscription grains defining subscriptions for the grain hierarchy, each subscription corresponding to one or more grains included in the grain hierarchy and specifying an interest in the grain by a subscribing agent, and wherein each subscribing agent is a i) manager agent having a corresponding grain included in the grain hierarchy, or ii) a worker agent having a corresponding grain included in the grain hierarchy;
performing, by the manager agent, manager agent processes defined by a manager agent grain to manage the computation by worker agents and storing, within the grain, metadata describing the manager agent process performed by the manager agent; and
performing, by each of a plurality of worker agents, tasks assigned to the worker agents, each task assigned to a worker agent based on an assignment of a respective worker agent grain to the worker agent;
wherein one of the one or more subscriptions is an observe subscription that results in a notification to a subscribing agent of the observe subscription of a specified change in the portion of the state specified by the one or more grains of the grain hierarchy to which the observe subscription corresponds.

US Pat. No. 9,864,735

IN-DOMAIN WEBPAGE EDITING

Google LLC, Mountain Vie...

1. A method of editing content of a webpage, comprising:
receiving, by one or more processors, an identifier of a webpage to be edited, the identifier comprising a uniform resource
locator (URL) of the webpage;

determining, by the one or more processors, whether a current webpage to which a browser application has navigated is the
webpage to be edited based on comparing the URL of the webpage to the identifier, wherein the current webpage is determined
to be the webpage to be edited in response to determining at least the domain of the URL matches the identifier;

in response to determining the current webpage is the webpage to be edited, generating, by the one or more processors, an
interface configured to receive revisions to content of the webpage, the interface provided within a domain of the webpage;

receiving, by the one or more processors, the revisions to the webpage;
generating, by the one or more processors, revision data including the received revisions; and
storing, by the one or more processors, the revision data to a database for subsequent implementation within the webpage.

US Pat. No. 9,852,439

METHODS AND SYSTEMS FOR MEASURING CONVERSION PROBABILITIES OF PATHS FOR AN ATTRIBUTION MODEL

Google LLC, Mountain Vie...

1. A method for measuring conversion probabilities of a plurality of path types for an attribution model, comprising:
identifying, by a processor, a first plurality of paths taken by visitors to a website, each path comprising one or more events,
each event:

corresponding to a previous visit to the website;
associated with an index position indicating a position of the event within the path; and
having an event type from among a plurality of event types;
for each of the first plurality of paths:
determining, by the processor, a path length indicating a number of events within the path;
comparing the path length with a path length threshold;
in response to determining that the path length is greater than the path length threshold, rewriting, by the processor, the
path to disregard one or more events of the path; and

deriving, by the processor, one or more subpaths from the path, each subpath comprising a subset of the events of the path;
determining, by the processor, a second plurality of paths including the first plurality of paths and the subpaths derived
from the first plurality of paths;

classifying a first set of paths from the second plurality of paths as a first path type by:
defining the first path type as a path comprising a number of events, the events comprising a series of event types occurring
in a particular order at particular index positions within the path; and

identifying one or more paths, from among the second plurality of paths, to be included in the first set of paths by identifying
paths having the same number of events as the first path type and the series of event types in the order and the index positions
of the first path type;

determining, by the processor, for each of the first set of paths, that the path is converting or non-converting;
computing, by the processor, a total path count for the first set of paths;
identifying, for the first set of paths, a conversion path count indicating a number of paths taken by visitors that resulted
in a conversion at the website;

calculating, by the processor, for the first set of paths, a probability of conversion based on the ratio of the conversion
path count and the total path count corresponding to the path type; and

providing the calculated probability of conversion for the first set of paths for an attribution model used in assigning attribution
credit to events of a path relating to the first path type.

US Pat. No. 9,852,224

PROMOTING PREFERRED CONTENT IN A SEARCH QUERY

Google LLC, Mountain Vie...

1. A method comprising:
obtaining a search result set of content items from a corpus of content items of a content sharing platform, the search result
set responsive to a search query and comprising a rank of the content items;

identifying content items in the search result set, the identified content items comprising at least:
a preferred content item of a user, the preferred content item uploaded by the user; and
a claimed content item of the user, the claimed content item is identified as claimed by the user and uploaded by another
user, wherein use of the claimed content item is monitored based on a claimed content policy of the content sharing platform;

adjusting, by a processing device, a position of the preferred content item with respect to a position of the claimed content
item in the rank of the content items within the search result set, wherein adjusting the position comprises:

determining that a difference in relevancy score attributed to each of the preferred content item and the claimed content
item for the rank is less than or equal to a threshold difference value; and

improving, based on determining that the difference is less than or equal to the threshold difference value, a first position
of the preferred content item in the rank relative to a second position of the claimed content item in the rank.

US Pat. No. 9,847,012

MEAL-BASED MEDICATION REMINDER SYSTEM

Google LLC, Mountain Vie...

1. A computing device for reminding a user to consume at least one particular ingestible substance based on a determination
that the user is currently eating, the computing device comprising:
at least one processor; and
at least one module, operable by the at least one processor to:
generate, based on motion data received from one or more sensors operably coupled to the computing device, and at a time that
the user is eating, at least one indication of user activity indicating one or more motions of an arm of the user, wherein
the one or more sensors are located on the arm of the user;

determine, based on pre-defined motion data that is indicative of an act of a human consuming an ingestible substance and
the at least one indication of user activity, a degree of confidence that indicates a confidence that the user is currently
consuming the ingestible substance;

compare the degree of confidence to a threshold to determine whether the degree of confidence satisfies the threshold;
responsive to determining that the degree of confidence satisfies the threshold, determine that the user is currently consuming
the ingestible substance; and

responsive to determining that the user is currently consuming the ingestible substance, output a reminder to consume the
at least one particular ingestible substance.

US Pat. No. 9,836,437

SCREENCASTING FOR MULTI-SCREEN APPLICATIONS

GOOGLE LLC, Mountain Vie...

1. A method comprising:
receiving at a local computing device a web page in response to a user of the local computing device requesting the web page,
the local computing device including a first renderer and a second renderer;

first rendering, by the first renderer, the web page on a display of the local computing device, wherein the rendering is
based upon at least one first visual presentation characteristic of the display of the local device;

receiving, at the local computing device, at least one second visual presentation characteristic of a display of a remote
device, the at least one first visual presentation characteristic being different than the at least one second visual presentation
characteristic;

receiving an indication of an action by the user of the local computing device;
in response to the action by the user of the local computing device, determining, by a processor of the local computing device,
a portion of the web page to render for display via the display of the remote device;

second rendering, by the second renderer, the portion of the web page, wherein
the second rendering is based upon the received at least one second visual presentation characteristic of the display of the
remote device,

the portion of the web page is visually the same on the display of the local device and the display of the remote device,
and

the second rendering is synchronized with the first rendering to display the second rendering on the display of the remote
device at a same time as the first rendering is displayed on the display of the local computing device;

generating, by the processor of the local computing device, rendered presentation information based upon the second rendering;
and

transmitting, by the processor of the local computing device, the rendered presentation information and the second rendered
portion of the web page from the local device to the remote device.

US Pat. No. 9,830,360

DETERMINING CONTENT CLASSIFICATIONS USING FEATURE FREQUENCY

Google LLC, Mountain Vie...

1. A method comprising: receiving, using at least one computing device, user-generated content items in an online community;
determining, using the at least one computing device, a signal from the user-generated content items;
calculating, using the at least one computing device, a first frequency indicating a first number of times the signal has
occurred in a first window of a pre-determined period of time and a second frequency indicating a second number of times the
signal has occurred in a second window of the pre-determined period of time, the second window being consecutive to the first
window;

determining, using the at least one computing device, whether the first frequency satisfies a pre-defined frequency threshold;
calculating, using the at least one computing device, a rate of change between the first frequency and the second frequency
based on a first derivative difference between the first frequency of the signal occurring in the first window and the second
frequency of the signal occurring in the second window;

identifying, using the at least one computing device, a fast-rising occurrence of the signal by determining that the second
frequency of the signal occurring in the second window is greater than the first frequency of the signal occurring in the
first window;

in response to the first frequency satisfying the pre-defined frequency threshold and the fast-rising occurrence of the signal
being identified, determining, using the at least one computing device, a priority level for a content item including the
signal in the user-generated content items based upon the rate of change between the first frequency and the second frequency;

classifying, using the at least one computing device, the user-generated content items in an order of the priority level,
the user-generated content items being classified into a first category and a second category; and

automatically removing, using the at least one computing device, first content items classified into the first category from
the user-generated content items.

US Pat. No. 10,030,981

VARYING MAP INFORMATION DENSITY BASED ON THE SPEED OF THE VEHICLE

GOOGLE LLC, Mountain Vie...

1. A method for dynamically varying map content based on the speed of a portable device, the method comprising:generating, by the one or more processors, a map data request for a geographic area;
receiving, from a remotely located server, map data corresponding to the geographic area;
determining, by the one or more processors, a speed of the portable device;
when the speed is below a predetermined threshold value:
generating, by the one or more processors, a first version of the map data corresponding to the geographic area, the first version including a geographic feature; and
displaying, by the one or more processors, the first version of map data corresponding to the geographic area;
when the speed is equal to or above the predetermined threshold value:
generating, by the one or more processors, a second version of the map data corresponding to the same geographic area, the second version omitting the geographic feature, wherein the second version is for a same zoom level as the first version and includes a different amount of detail; and
displaying, by the one or more processors, the second version of the map data corresponding to the same geographic area.

US Pat. No. 10,004,125

AUTOMATICALLY ADJUST SENSOR SAMPLE RATES AND MODES BASED ON SENSOR FEEDBACK AND SYSTEM STATE

Google LLC, Mountian Vie...

1. A device for control of path light illumination and motion detection systems, comprising:an ambient light sensor configured to detect an ambient light level in a first area monitored by the device;
a path light source; and
a processor communicatively coupled to the ambient light sensor and the path light source, the processor configured to:
determine an ambient light sensor sampling mode based on the ambient light level, the ambient light sensor sampling mode comprising a sampling integration time,
determine an ambient light sensor sampling period based on the ambient light level and detected motion in a second area monitored by the device, and
control the path light source based on sensor data obtained at the ambient light sensor sampling mode and the ambient light sensor sampling period.

US Pat. No. 9,972,323

DYNAMIC THRESHOLD FOR SPEAKER VERIFICATION

Google LLC, Mountain Vie...

1. A computer-implemented method comprising:receiving, by a computing device that uses voice-based speaker identification, data identifying an utterance previously received by the computing device and data indicating that a user likely did speak the utterance;
prompting the user to confirm that the user did speak the utterance;
receiving, from the user, data indicating that the user has confirmed that the user did speak the utterance; and
in response to receiving the data indicating that the user has confirmed that the user did speak the utterance, using audio data corresponding to the utterance previously received by the computing device to perform voice-based speaker identification on a subsequently received utterance that has a shared characteristic with the utterance previously received, wherein the shared characteristic is (i) an amount of background noise within a same background noise range, (ii) an amount of loudness within a same loudness range, or (iii) a signal-to-noise ratio within a same signal-to-noise ratio range.

US Pat. No. 9,875,228

SYSTEMS AND METHODS FOR PRESERVING CONDITIONAL STYLES WHEN COPYING AND PASTING BETWEEN APPLICATIONS

GOOGLE LLC, Mountain Vie...

1. A method comprising:
receiving, by at least one processor executing a source application, a user input to copy a first source child element of
a source electronic document that is edited by the source application, wherein a source file type of the source electronic
document supports a first raw property for the first source child element, wherein the first raw property has a conditional
or an inheritance behavior that is based on a first source parent element of the source electronic document, and wherein the
conditional or the inheritance behavior of the first raw property is used to determine a first concrete property of the first
source child element for rendering the source electronic document on a display;

in response to receiving the user input to copy the first source child element, placing, by the processor executing the source
application, first clipboard data on a clipboard without placing the first concrete property of the first source child element
on the clipboard, wherein the first clipboard data comprises the first raw property and the source file type;

receiving, by the processor executing a destination application, a user input to paste the first source child element as a
first destination child element into a destination electronic document that is edited by the destination application;

determining, by the processor executing the destination application, that a destination file type of the destination electronic
document supports the first raw property for the first destination child element, wherein the first raw property has a conditional
or an inheritance behavior that is based on a first destination parent element of the destination electronic document, wherein
the conditional or the inheritance behavior of the first raw property is used to determine a first concrete property of the
first destination child element for rendering the destination electronic document on the display, and wherein the destination
file type is different from the source file type;

pasting, by the processor executing the destination application, the first clipboard data into the destination electronic
document for the first destination child element, wherein the pasted first clipboard data preserves the conditional or the
inheritance behavior of the first raw property for the first destination child element;

executing, by the processor executing the destination application without embedding a full version of the source application
in the destination application, instructions of the first raw property from the pasted first clipboard data to determine the
first concrete property of the first destination child element;

rendering, based on the determined first concrete property of the first destination child element, the destination electronic
document on the display;

receiving, by the processor executing the source application, a user input to copy a second source child element of the source
electronic document, wherein the source file type of the source electronic document supports a second raw property for the
second source child element, wherein the second raw property has a conditional or an inheritance behavior that is based on
a second source parent element of the source electronic document, and wherein the conditional or the inheritance behavior
of the second raw property is used to determine a second concrete property of the second source child element for rendering
the source electronic document on the display;

in response to receiving the user input to copy the second source child element, placing, by the processor executing the source
application, second clipboard data on the clipboard without placing the second concrete property of the second source child
element on the clipboard, wherein the second clipboard data comprises the second raw property and the source file type;

receiving, by the processor executing the destination application, a user input to paste the second source child element as
a second destination child element into the destination electronic document;

determining, by the processor executing the destination application, that the destination file type of the destination electronic
document does not support the second raw property for the second destination child element;

in response to determining that the destination file type of the destination electronic document does not support the second
raw property for the second destination child element, retrieving, by the processor executing the destination application,
instructions to determine the second concrete property of the second source child element based on the second raw property
from the second clipboard data on the clipboard;

pasting, by the processor executing the destination application, the retrieved second concrete property into the destination
electronic document for the second destination child element; and

rendering, based on the pasted second concrete property of the second destination child element, the destination electronic
document on the display.

US Pat. No. 9,858,273

SPECULATIVE RENDERING DURING CACHE REVALIDATION

Google LLC, Mountain Vie...

1. A method comprising:
determining, by a computer device, a content change probability score that measures a likelihood of change associated with
a first document, wherein the content change probability score is computed as a sum of two or more parameter values associated
with the first document;

storing, by the computer device, the content change probability score in a record associated with the first document;
receiving, by the computer device, a request for the first document;
sending, by the computer device, a request for revalidated content associated with the first document;
retrieving, by the computer device, the content change probability score for the first document from the record;
determining, by the computer device, a relationship between the content change probability score and a particular threshold;
using, by the computer device, a speculative rendering to render the first document after determining the relationship between
the content change probability score and the particular threshold and before receiving the revalidated content associated
with the first document;

receiving a request for a second document;
sending a request for revalidated content associated with the second document;
determining a period of time that the computer device is waiting for the revalidated content associated with the second document;
determining that the period of time satisfies a threshold; and
performing, based on determining that the period of time satisfies the threshold, a speculative rendering to render the second
document.

US Pat. No. 9,860,839

WIRELESS TRANSCEIVER

Google LLC, Mountain Vie...

1. A method for monitoring and reporting environmental conditions within a building, comprising:
receiving, with a monitoring station configured to communicate using wireless communication and power-line communication,
a message that includes a smoke indication and a checksum, the smoke indication indicating the existence of an emergency condition,
the message including the smoke indication being generated by, and communicated using the wireless communication from, a sensor
unit in response to the sensor unit detecting, with a smoke sensor, an amount of smoke within the building that is above a
threshold value for the amount of smoke, the sensor unit including a location identifier that identifies a location of the
sensor unit within the building;

receiving, by the monitoring station, the location identifier from the sensor unit when the message is generated by and communicated
from the sensor unit, wherein an indication of the location of the sensor unit is associated with the received location identifier;

generating a notification of the emergency condition, the notification including the indication of the location of the sensor
unit; and

causing, by the monitoring station and via the power-line communication, the notification of the emergency condition for the
amount of smoke to be communicated, via the Internet, to a user device.

US Pat. No. 9,858,686

DYNAMIC COLOR DETERMINATION FOR USER INTERFACE COMPONENTS OF A VIDEO PLAYER

Google LLC, Mountain Vie...

1. A computer-implemented method comprising:
identifying a first dominant color of a first frame of a video and a second dominant color of a second frame of the video;
generating a first plurality of color variants based on the first dominant color and a second plurality of color variants
based on the second dominant color;

causing the first frame of the video to be presented, on a user device, within a video user interface, wherein the video user
interface has user interface components each having a color selected based on the first plurality of color variants;

identifying a playing state of the video on the user device;
selecting one of the color variants of the second plurality of color variants based on the playing state;
causing the colors of the user interface components of the video user interface to be modified to be the selected color variants
of the second plurality of color variants; and

causing the second frame of the video to be presented on the user device within the video user interface.

US Pat. No. 9,854,573

RECEPTION AND CONFIGURATION OF DOWNLINK CONTROL CHANNEL

Google LLC, Mountain Vie...

1. A method of receiving a downlink control channel located in a data region, in user equipment (UE), the method comprising:
receiving an enhanced physical downlink control channel (EPDCCH) from a transmission/reception point, wherein the EPDCCH includes
a data region of one or more physical resource-block (PRB) pairs forming each of a plurality of EPDCCH sets in a subframe,
and wherein (i) each PRB pair includes a plurality of enhanced resource element groups (EREGs), and (ii) an enhanced control
channel element (ECCE) corresponding to a basic unit of an EPDCCH transmission includes a plurality of EREGs; and

decoding the EPDCCH in a corresponding EPDCCH set according to a downlink control information (DCI) format in an EPDCCH UE-specific
search space, wherein ECCEs monitored by the user equipment for the decoding of the EPDCCH are defined by a function of (i)
a radio network temporary identifier (RNTI) of the user equipment, (ii) an index of the subframe, (iii) an aggregation level,
and (iv) a total number of ECCEs of the corresponding EPDCCH set,

wherein in the case that each PRB pair includes an M number of EREGs,
the ECCE includes an M/4 number of EREGs or an M/2 number of EREGs, wherein the M is a natural number.

US Pat. No. 9,852,053

DYNAMIC SOFTWARE INSPECTION TOOL

Google LLC, Mountain Vie...

1. A system comprising:
a processor; and
non-transient memory, operatively connected to the processor, the non-transient memory comprising instructions which, when
executed by the processor, cause the processor to execute a method comprising:

obtaining a status for at least one graphical object from at least one first inspection hook inserted within the at least
one graphical object, the at least one graphical object being associated with a selected software process running on a computing
device, where the status for the at least one graphical object comprises information indicating one or more properties assigned
to the at least one graphical object;

outputting information contained within the status for the at least one graphical object for display on a graphical user interface
(GUI);

receiving an indication of a user input to change the at least one graphical object;
effectuating modification of the at least one graphical object in accordance with the user input by transmitting a command
to at least one input hook inserted within one or more actors assigned to the at least one graphical object, the one or more
actors being configured to control one or more properties of the graphical object by executing one or more instructions, and
where the command modifies the one or more instructions;

obtaining a status for the one or more instructions from at least one second inspection hook inserted within the one or more
actors assigned to the at least one graphical object;

detecting a discrepancy between the status for the one or more instructions and the one or more properties assigned to the
at least one graphical object; and

outputting information indicating the detected discrepancy for display on the GUI.

US Pat. No. 9,836,606

SECURE RECOVERY APPARATUS AND METHOD

Google LLC, Mountain Vie...

1. A computing device, comprising:
one or more processors;
a storage location for storing valid boot code; and
a memory including instructions for initiating a boot cycle at, when executed by one or more processors, cause the computing
device to:

initiate loading of multiple portions of boot code;
determine, during the boot cycle, whether each portion of boot code is valid; and
in response to determining a respective portion of boot code is invalid, stop the boot cycle, load a corresponding valid portion
of boot code from the storage location, replace the invalid portion of boot code using the valid portion of boot code, and
resume the same boot cycle at a last known portion of boot code determined to be valid.

US Pat. No. 9,830,062

AUTOMATED CLICK TYPE SELECTION FOR CONTENT PERFORMANCE OPTIMIZATION

Google LLC, Mountain Vie...

1. A method for optimizing content performance, the method comprising:
receiving, at a processing circuit, a request for third-party content for presentation on a client device, the request comprising
an indication of a serving context for the third-party content;

identifying, by the processing circuit, based on the serving context, a plurality of potential click types that are available
to a content item selected for serving responsive to the request, each identified potential click type defines different criteria
for triggering an event that occurs in response to a user interaction with the content item that satisfies the defined criteria
of the identified click type;

using a click type performance model and the serving context for the content item to calculate, by the processing circuit,
a predicted performance metric of the content item for each of the plurality of identified potential click types;

selecting, by the processing circuit, a click type of the plurality of identified potential click types based on the predicted
performance metrics;

generating, by the processing circuit, responsive to the request, a content item having the selected click type, the generated
content item configured to trigger the event responsive to a user interaction that satisfies criteria defined by the selected
click type; and

serving the generated content item for presentation on the client device.

US Pat. No. 10,205,746

ANTI-SPOOFING PROTECTION IN AN AUTOMOTIVE ENVIRONMENT

GOOGLE LLC, Mountain Vie...

1. A method for automatically identifying attempts at presenting falsified vehicle identifiers to portable devices to establish unauthorized communication links, the method comprising:receiving, by one or more computing devices from a portable device, (i) a vehicle identifier reported by a vehicle with which the portable device is establishing a short-range communication link, and (ii) an indication of a current location of the portable device, at a first time;
obtaining, by the one or more computing devices, an indication of a recent location at which the vehicle identifier was reported at a second time;
comparing, by the one or more computing devices, the current location of the portable device to the recent location of the vehicle, in view of the first time and the second time; and
in response to determining that the current location is not proximate to the recent reported location of the vehicle, generating, by the one or more computing devices, an indication that the reported identifier is likely falsified.

US Pat. No. 10,111,304

INTERACTIVE CORD WITH INTEGRATED LIGHT SOURCES

Google LLC, Mountain Vie...

1. An interactive cord comprising:a cable;
a cover that covers the cable, the cover comprising:
a plurality of capacitive touchpoints configured to enable reception of touch input that causes a change in capacitance to one or more conductive threads effective to trigger one or more functions at a computing device;
one or more first conductive threads woven into the cover and exposed at one or more first capacitive touchpoints of the plurality of capacitive touchpoints; and
one or more second conductive threads woven into the cover and exposed at one or more second capacitive touchpoints of the plurality of capacitive touchpoints that are different than the one or more first capacitive touchpoints; and
a plurality of light sources integrated into the cover, each of the plurality of light sources configured to indicate a position of a respective capacitive touchpoint of the plurality of capacitive touchpoints.

US Pat. No. 10,049,170

METHODS AND SYSTEMS FOR SELECTIVELY PREVENTING THIRD-PARTY CONTENT FROM BEING DISPLAYED USING UNDEFINED PUBLISHER IDENTIFIER

Google LLC, Mountain Vie...

15. A method comprising:transmitting, by a client device comprising one or more processors, a request for an information resource having a plurality of content slots in which third-party content items are displayed when the information resource is displayed at the client device, the plurality of content slots located at different locations of the information resource;
receiving, by the client device, a modified version of the information resource, wherein a first content slot among the plurality of content slots of the modified version of the information resource is identified as a content slot to be prevented from displaying a third-party content item based at least in part on (i) a total number of the plurality of content slots of the information resource, (ii) a location of the first content slot within the information resource, and (iii) a size of the first content slot, the first content slot associated with a first executable code to be executed by the first client device, and the first executable code including a client identifier identifying a content publisher;
executing, by the client device, prior to executing the first executable code associated with the first content slot, a second executable code configured to replace, in the first executable code, the client identifier with an undefined identifier that does not identify a content publisher, wherein the second executable code is inserted at a portion of the information resource that is executed prior to executing the first executable code associated with the first content slot;
executing, by the client device, after executing the second executable code, the first executable code associated with the first content slot, execution of the first executable code with the client identifier replaced with the undefined identifier causing a content distribution server to ignore a request for content for the first content slot from the client device; and
displaying, by the client device, third-party content items in the plurality of content slots other than the first content slot.

US Pat. No. 9,866,336

PHASED ARRAY ANTENNA SELF-CALIBRATION

Google LLC, Mountain Vie...

1. A phased array antenna system comprising:
an array of antennas having a first antenna and a second antenna disposed equidistantly from a third antenna;
a first receiver module connected to the first antenna, the first antenna associated with a first gain and a first phase;
a second receiver module connected to the second antenna, the second antenna associated with a second gain and a second phase;
a transmit module in communication with the third antenna; and
a signal generator in communication with the transmit module and configured to generate a calibration reference signal,
wherein when the signal generator generates the calibration reference signal, the third antenna transmits the calibration
reference signal, the first antenna receives a first reference signal corresponding to the calibration reference signal transmitted
by the third antenna, and the second antenna receives a second reference signal corresponding to the calibration reference
signal transmitted by the third antenna, and

wherein the second receiver module is configured to adjust the second gain and the second phase associated with the second
antenna to match the first gain and the first phase associated with the first antenna by comparing the first reference signal
received by the first antenna with the second reference signal received by the second antenna.

US Pat. No. 9,864,812

CONVERTING SPREADSHEET APPLICATIONS TO WEB-BASED APPLICATIONS

GOOGLE LLC, Mountain Vie...

1. A method comprising:
receiving a spreadsheet application designed to execute using a spreadsheet program; converting the spreadsheet application
into a data file, wherein the spreadsheet application includes one or more cells and wherein at least some of the cells implement
logical functions,

the data file defining characteristics of a networked version of the spreadsheet application that was converted from the spreadsheet
application, wherein the networked version of the spreadsheet application is converted from the spreadsheet application by
applying permissions that are set in the spreadsheet application, the permissions not being applied in the spreadsheet application,
wherein the characteristics defined by the data file are defined based on the permissions,

the characteristics including information defining cells of the networked version of the spreadsheet application that are
to be displayable to a user of the networked version of the spreadsheet application;

transmitting the data file to a server to make the data file available to network users as the networked version of the spreadsheet
application;

executing, by the server, a computer program that includes an engine component;
converting, by the engine component, the data file into a spreadsheet application component and a data component, wherein
the spreadsheet application component and the data component include information defining logical functions implemented by
at least some of cells included in the spreadsheet application;

constructing, by the engine component, at least one abstract syntax tree using the spreadsheet application component and the
data component, wherein the at least one abstract syntax tree includes, based on the information included in the spreadsheet
application component and the data component, at least one of a constant, a function, or a pointer; and

generating, by the computer program, an HTML document using the at least one abstract syntax tree, wherein the HTML document
includes information that represents the defined characteristics of the networked version of the spreadsheet application.

US Pat. No. 9,858,586

METHODS AND SYSTEMS FOR CREATING RULES FOR ASSIGNING ATTRIBUTION CREDIT ACROSS A PLURALITY OF EVENTS

Google LLC, Mountain Vie...

1. A method for creating rules for assigning attribution credit across a plurality of events, comprising:
identifying, by a processor, a plurality of conversions at a particular website;
identifying, by the processor, a plurality of paths that lead to the plurality of conversions, each path comprising one or
more events, each event:

corresponding to a previous visit to the website;
associated with an index position indicating a position of the event within the path; and
having an event type from among a plurality of event types;
determining, by the processor, a plurality of path types for the plurality of paths, wherein the determination comprises:
defining a first path type as a path comprising a number of events, the events comprising a series of event types occurring
in a particular order at particular index positions within the path; and

identifying one or more paths of the plurality of paths as the first path type by identifying the one or more paths having
the same number of events as the first path type and the series of event types in the order and the index positions of the
first path type;

determining, by the processor, a path length for each path type;
comparing, by the processor, each path length with a predefined threshold;
in response to determining the path length is greater than the predefined threshold, identifying the path to be included in
a subset of the plurality of path types;

rewriting, by the processor, the identified subset of path types according to a path rewriting policy as rewritten path types
by:

defining a first parameter of the path rewriting policy indicating a first number of events occurring at the beginning of
the path;

defining a second parameter of the path rewriting policy indicating a second number of events occurring at the end of the
path; and

determining, for each path type of the identified subset of path types, a rewritten path type by including the first number
of events and the second number of events and disregarding any events occurring between the first number of events and the
second number of events;

determining, by the processor, for each of the rewritten path types and remaining identified path types associated with the
identified conversions, attribution credits for each event included in the path type; and

creating, for each of the rewritten path types and remaining identified path types associated with the identified conversions,
a rule for assigning the determined attribution credit to each event of the path type for which the rule is created.

US Pat. No. 9,860,200

MESSAGE SUGGESTIONS

Google LLC, Mountain Vie...

1. A method comprising:
for each of one or more messages that are selected from a plurality of messages from an account:
(a) extracting one or more phrases from a respective selected message;
(b) determining that a conversation includes the respective selected message and one or more other messages from the plurality
of messages;

(c) generating a first feature vector based on the conversation, wherein the first feature vector includes one or more first
features, wherein the one or more first features include one or more words from the conversation; and

(d) generating, by a computing system, one or more training-data sets, wherein each training-data set comprises one of the
phrases and the first feature vector;

training, by the computing system, a machine-learning application with at least a portion of the one or more training-data
sets that are generated for the one or more selected messages;

applying the trained machine-learning application to process an incoming message to the account;
responsive to applying the trained machine-learning application, determining one or more reply messages corresponding to the
incoming message, wherein the one or more reply messages include at least one of the extracted one or more phrases; and

displaying one or more cards on a display of a head-mountable device (HMD), wherein the one or more cards include at least
a portion of the incoming message and the one or more reply messages corresponding to the incoming message.

US Pat. No. 9,852,506

ZOOM AND IMAGE CAPTURE BASED ON FEATURES OF INTEREST

Google LLC, Mountain Vie...

1. A system comprising:
at least one processor;
a non-transitory computer readable medium; and
program instructions stored on the non-transitory computer readable medium and executable by the at least one processor to
perform functions comprising:

receiving image data corresponding to a field of view of an environment;
receiving input data indicative of a user input corresponding to a first interest criteria;
determining a first feature of interest within the first field of view based on the first interest criteria;
causing a camera to zoom and capture a first image of a portion of the field of view;
determining that there are no features of interest within the first image;
causing a camera to pan out and determine the first feature of interest within the field of view based on the first interest
criteria;

causing a camera to zoom and capture a second image of a portion of the field of view;
determining one or more attributes indicating a context of the second image;
causing the second image of the first feature of interest to be stored in an image-attribute database.

US Pat. No. 9,846,893

SYSTEMS AND METHODS OF SERVING PARAMETER-DEPENDENT CONTENT TO A RESOURCE

Google LLC, Mountain Vie...

1. A method of obtaining ad slot information via a computer network, comprising:
receiving, by a data processing system via the computer network, a first request to provide content for display in an ad slot
of a web page presented on a client device, the first request including an slot identifier (ID) of the ad slot;

determining, by the data processing system that a relative position parameter of the ad slot is not inducted in the first
request and is not stored in a database of the data processing system, the relative position parameter being an indicator
of a relative position of the ad slot on the web page and including at least one of a position of the ad slot in the web page
and a size of the ad slot;

in response to determining that the relative position parameter is not included in the first request and is not stored in
the database, providing content to display in the ad slot to fulfill the first request, the content including a tag configured
to execute on the client device and cause the client device to (i) determine the relative position parameter of the ad slot
of the web page and ii) transmit the determined relative position parameter to the data processing system;

receiving, by the data processing system, the relative position parameter of the ad slot determined by the tag;
storing, by the data processing system, the relative position parameter of the ad slot in association with the ad slot ID
within the database;

receiving, by the data processing system via the computer network, a second request to provide content for display in the
ad slot, the second request including the ad slot ID:

determining by the data processing system, that the relative position parameter of the ad slot is not included in the second
request and is stored in the database;

in response to determining that the relative position parameter is not included in the second request and is stored in the
database, determining, by the data processing system using the ad slot ID, that the ad slot is configured to display expandable
content items based on the relative position parameter stored in the database;

selecting, by the data processing system, an expandable content item for display in the ad slot based on the determination
that the ad slot is configured to display expandable content items; and

providing, by the data processing system via the computer network, the selected expandable content item for display in the
ad slot.

US Pat. No. 9,841,959

FINE-GRAINED DEMAND DRIVEN IPO INFRASTRUCTURE

Google LLC, Mountain Vie...

1. A method for inter-procedural optimization comprising:
generating, by a processor, for each of a plurality of source code modules, an intermediate representation file;
generating, by the processor, for each of the plurality of source code modules, function indices and function summary data,
wherein each function index comprises a function symbol table that maps function IDs to function body offsets in the intermediate
representation file;

storing, by the processor, in separate sections of each intermediate representation file, the generated function indices and
function summary data for the corresponding source code module;

generating, by the processor, for the plurality of source code modules, a thin-archive corresponding to the generated intermediate
representation files, wherein the generated thin-archive includes a combined function map and references to the generated
intermediate representation files while lacking copies of the generated intermediate representation files; and

performing, by the processor, cross-module optimization on the plurality of source code modules using the corresponding thin-archive.

US Pat. No. 9,836,637

FINGER PRINT STATE INTEGRATION WITH NON-APPLICATION PROCESSOR FUNCTIONS FOR POWER SAVINGS IN AN ELECTRONIC DEVICE

Google LLC, Mountain Vie...

10. A method, comprising:
in a fingerprint sensor operable with an application processor, an auxiliary processor, and an interrupt control:
entering an armed mode via a signal from the application processor, the application processor connected to the fingerprint
sensor via a connection, the connection configured to convey a status of at least one of a serial peripheral interface transfer
mode, a device ready mode, or a sleep mode;

transmitting, to the auxiliary processor via two state lines, a state output of the fingerprint sensor;
detecting an object contacting a surface of the fingerprint sensor while the application processor is in a low power or sleep
mode;

transitioning the state output from a first state to a second state after the detecting, the first state indicating an authentication
process of a fingerprint is in progress, the second state indicating successful authentication of the fingerprint, the fingerprint
sensor configured to initiate a timer in response to the state output transitioning to the second state;

authenticating the object;
transitioning the state output from the second state to a third state after the authenticating the object and in response
to a passing of a duration of time measured by the timer, the third state indicating that the fingerprint sensor is waiting
to begin the authentication process; and

causing the application processor to exit the low power or sleep mode in response to an actuation of the interrupt control,
wherein the auxiliary processor is configured to perform, in response to the state output being in the third state, one or
more functions while the application processor remains in the low power or sleep mode, and the application processor is configured
to interrupt the authentication process in response to exiting the low power or sleep mode, the interrupt control separate
from the application processor, the interrupt control separate from the auxiliary processor.

US Pat. No. 9,838,460

TOOL FOR SHARING APPLICATIONS ACROSS CLIENT DEVICES

Google LLC, Mountain Vie...

1. A system, comprising:
one or more processors; and
a machine-readable medium comprising instructions stored therein, which when executed by the one or more processors, cause
the one or more processors to perform operations comprising:

processing, via a message-exchanging communication protocol, registration information received from a client computing device,
a plurality of host computing devices, and an application installed on each of the plurality of host computing devices, the
registration information from each of the plurality of host computing devices indicating metrics of the host computing device
and whether the host computing device is reachable for a peer-to-peer communication session;

receiving a request from the client computing device for access to the application;
selecting, in response to receiving the request for access to the application, a first host computing device among the plurality
of host computing devices to run the application based on metrics of the plurality of host computing devices, the metrics
indicating that a processor computing capability of the first host computing device is greater than respective processor computing
capabilities of other host computing devices from the plurality of host computing devices; and

providing, in response to selecting the first host computing device to run the application among the plurality of host computing
devices, an identifier of the first host computing device to the client computing device, the identifier indicating a port
of the first host computing device when the registration information indicates that the first host computing device is reachable
for the peer-to-peer communication session, the peer-to-peer communication session between the client computing device and
the first host computing device being established through the port using a peer-to-peer communication protocol for access
to the application on the client computing device while the application is running on the first host computing device.

US Pat. No. 9,830,056

INDICATING RELATIONSHIPS BETWEEN WINDOWS ON A COMPUTING DEVICE

Google LLC, Mountain Vie...

17. A non-transitory computer-readable data storage medium having instructions stored thereon that, when executed by one or
more processors of a computing device, cause the computing device to:
output, for display, a first arrangement of a set of windows organized into at least two visual stacks, wherein:
each respective visual stack from the at least two visual stacks comprises a respective subset of the set of windows sequenced
based on a characteristic,

a first stack from the at least two visual stacks comprises a first window from the set of windows, and a second stack from
the at least two visual stacks comprises a second window from the set of windows, and

the second stack is separate from the first stack;
determine that the first window has a particular relationship with the second window, wherein any two windows in the set of
windows have the particular relationship if the computing device opened one of the two windows in response to an indication
of user input directed to another one of the two windows; and

responsive to determining that the first window has the particular relationship with the second window and responsive to receiving
an indication of a user input associated with the second window, output, for display, a second arrangement of the set of windows
organized into the at least two visual stacks, the second arrangement including a visual indication of the first window that
visually indicates that the first window has the particular relationship with the second window and visually differentiates
the first window from other windows from the first stack that do not have the particular relationship with the second window
from the second stack, wherein the visual indication of the first window tilts the first window relative to each of the other
windows in the first stack that do not have the particular relationship with the second window.

US Pat. No. 9,832,186

POLICY ENFORCEMENT OF CLIENT DEVICES

Google LLC, Mountain Vie...

1. A method comprising:
receiving, from a client device, a first access request for an administered resource that is subject to an administrative
policy which governs access the administered resource, the first access request including a unique identifier of the client
device;

determining, based at least in part on the unique identifier and a client registry, whether the client device is compliant
with the administrative policy;

in response to determining that the client device is not compliant with the administrative policy, causing the client device
to install a client application, the client application configured to apply the administrative policy to the client device;

receiving, from the client application executing at the client device, a second access request for the administered resource,
the second access request including the unique identifier of the client device, and login information;

determining, based on the unique identifier, and the login information included in the second access request, and the client
registry, whether the client device is compliant with the administrative policy; and

in response to determining that the client device is compliant with the administrative policy, sending, to the client device,
a token that provides access to the administered resource.

US Pat. No. 9,830,141

PROVIDING A SOFTWARE UPDATE TO COMPUTING DEVICES ON THE SAME NETWORK

Google LLC, Mountain Vie...

1. A computer-implemented method of performing a software update within a network comprising plural computing devices, the
method comprising:
receiving, by a first computing device of the plural computing devices, an indication that the software update is available
and that the first computing device is elected to initially receive the software update, wherein the first computing device
is within a subset of computing devices elected to initially receive the software update;

sending, in response to the received indication, a request for the software update to a server;
receiving, in response to the sent request, the software update from the server;
loading by the first computing device the received software update;
in response to one or more failed attempts by the first computing device to successfully operate with the software update,
running by the first computing device a software version inconsistent with the software update; and

in response to a successful attempt by the first computing device to operate with the software update:
providing, based on the successful attempt by the first computing device to operate with the software update, a software version
or a connectivity status of the first computing device to a second computing device of the plural computing devices, wherein
the second computing device is not elected to initially receive the software update, and wherein the second computing device
is within a group of computing devices not elected to initially receive the software update;

receiving, in response to the provided software version or connectivity status, a request for the software update from the
second computing device; and

sending by the first computing device, in response to the received request, the software update to the second computing device.

US Pat. No. 9,830,679

SHARED VIRTUAL REALITY

GOOGLE LLC, Mountain Vie...

1. A method of displaying a-three dimensional (3-D) virtual worlds, the method comprising:
scaling a first 3-D virtual world to fit a first section of a physical space, and scaling a second 3-D virtual world to fit
a second section of the physical space, the second section of the physical space being adjacent to the first section of the
physical space and separated from the first section of the physical space by a virtual border;

receiving, at a first user device, mapping information of the first 3-D virtual world scaled to fit the first section of the
physical space, the mapping information of the first 3-D virtual world comprising a mapping between a reference point in the
physical space and a corresponding point in the first 3-D virtual world;

obtaining, at the first user device, a physical location and orientation of a second user device;
determining, at the first user device, a location and orientation in the first 3-D virtual world of the second user device
based on the physical location and orientation of the second user device relative to the reference point in the physical space;
and

displaying, at the first user device, a representation of a portion of the first 3-D virtual world corresponding to the determined
location and orientation in the first 3-D virtual world of the second user device, wherein responsive to the second user device
crossing the virtual border, the second user device changes from the first 3-D virtual world to the second 3-D virtual world.

US Pat. No. 10,072,947

ASSISTED ALIGNMENT FOR WIRELESS CHARGING

Google LLC, Mountain Vie...

1. A method performed by one or more processing devices, the method comprising:detecting, at a mobile device that includes at least a wireless charging coil, a first auxiliary winding and a second auxiliary winding, electromagnetic signals from a wireless charging pad, wherein the first auxiliary winding and the second auxiliary winding are positioned on opposite sides of the receiving coil along an axis that intersects a position of the receiving coil on the mobile device;
determining, based on the detected electromagnetic signals, that the mobile device is in proximity of the wireless charging pad;
determining, for a current position of the mobile device with respect to the wireless charging pad, a charging efficiency of power transfer that occurs between the wireless charging pad and the mobile device due to the electromagnetic signals from the wireless charging pad;
generating, by the first auxiliary winding and for the current position of the mobile device with respect to the wireless charging pad, a first electrical output produced by the first auxiliary winding;
generating, by the second auxiliary winding and for the current position of the mobile device with respect to the wireless charging pad, a second electrical output produced by the second auxiliary winding;
determining a differential signal representing a difference between a magnitude of the first output produced by the first auxiliary winding and a magnitude of the second output produced by the second auxiliary winding;
determining, based on the detected electromagnetic signals and the differential signal, a direction to move the mobile device along the axis that intersects the position of the receiving coil on the mobile device to align the wireless charging coil with the wireless charging pad; and
in response to detecting that the mobile device is in proximity of the wireless charging pad indicating, on a screen of the mobile device, (i) a location of the wireless charging coil within the mobile device, (ii) the direction to move the mobile device to align the wireless charging coil with the wireless charging pad, and (iii) the charging efficiency for the current position of the mobile device with respect to the wireless charging pad.

US Pat. No. 10,031,579

AUTOMATIC CALIBRATION FOR REFLECTIVE LENS

Google LLC, Mountain Vie...

1. A method comprising:receiving, by a computing system, infrared (IR) image data of a lens, wherein the image data is captured while an inner surface of the lens is illuminated with infrared light;
detecting, by the computing system, in the IR image data of the lens, a reflection of an eye area from the lens;
detecting, by the computing system, in the IR image data of the lens, a variable IR interaction pattern of the lens;
determining, by the computing system, a lens that corresponds to the detected variable IR interaction pattern;
calibrating, by the computing system, an eye-analysis process based on the determined lens; and
after calibrating the eye-analysis process, applying the eye-analysis process to the reflection of the eye area to determine data corresponding to an eye.

US Pat. No. 9,918,115

SYSTEM AND METHOD FOR OBTAINING VIDEO STREAMS

GOOGLE LLC, Mountain Vie...

1. A computer-implemented method, comprising:
at a client device communicatively coupled to one or more media devices, the client device having one or more processors and
memory:

for a particular media device of the one or more media devices, sending a device-specific request to the particular media
device to obtain information related to the video streams that are available from the particular media device;

in response to the device-specific request, obtaining the information related to the video streams that are available from
the particular media device; and

for each video stream that is available from the particular media device:
determining a video stream type for the video stream;
based on the video stream type, generating a particular type of universal resource identifier (URI) for the video stream selected
from a plurality of URI types, the URI including the video stream type and at least one device-specific parameter for the
video stream; and

generating a record in a streams database located at the client device, the record including the URI and at least a portion
of the information related to the video stream;

receiving, from an application executing on the client device, a request to obtain a first URI for a particular video stream;
in accordance with the request, obtaining the first URI from the streams database;
after obtaining the first URI:
receiving, from the application executing on the client device, a request to obtain the particular video stream, the request
including the first URI;

obtaining the particular video stream from a first media device identified by the first URI, wherein the first media device
is one of the one or more media devices; and

outputting the particular video stream for display at an output device.

US Pat. No. 9,881,492

SECURITY SYSTEM WITH SHIELDED DEVICES

GOOGLE LLC, Mountain Vie...

1. A security system comprising:
a plurality of devices; and
a processor, communicably coupled to the plurality of devices, configured to:
determine a shielding status of each of the plurality of devices based at least on whether each of the plurality of devices
is in a secured state and is functioning,

weight the shielding status of each of the plurality of devices to generate a weighted shielding status of each of the plurality
of devices,

determine a shielding status of the security system based on the weighted shielding status of each of the plurality of devices,
and

transmit the shielding status of the security system to a user device,
wherein the shielding status of each of the plurality of devices is one of a plurality of three or more discrete levels of
shielding.

US Pat. No. 9,857,595

INTEGRATED MOBILE DEVICE SHIPPING CONTAINER AND VIRTUAL REALITY HEADSET

Google LLC, Mountain Vie...

1. An apparatus comprising:
a container that is both a shipping container for an electronic device and a virtual reality headset, the container including:
a goggle portion including:
a chassis that is open on a first side;
a lens assembly disposed on a second side of the chassis of the goggle portion, the second side being opposite the first side
of the chassis of the goggle portion; and

a ledge disposed around an interior perimeter of the chassis of the goggle portion, the ledge being configured to physically
support the electronic device inserted from the first side of the chassis of the goggle portion; and

a cover portion including:
a chassis that is open on a first side and at least partially closed on a second side,
the cover portion being configured to be slidably placed over the goggle portion, such that at least a portion of the goggle
portion is disposed within the cover portion and the electronic device is retained between the ledge and an interior surface
of the second side of the cover portion.

US Pat. No. 9,852,188

CONTEXTUAL SEARCH ON MULTIMEDIA CONTENT

GOOGLE LLC, Mountain Vie...

1. A method comprising:
extracting entities associated with multimedia content, wherein the entities include values characterizing one or more objects
represented in the multimedia content;

receiving a query related to the multimedia content, the query including one or more terms, being in addition to the multimedia
content, and being provided by a user during consumption of the multimedia content by the user;

automatically generating, for rewriting the query related to the multimedia content, one or more query rewrite candidates
based on the extracted entities and one or more of the terms in the query, wherein the generating is performed when the query
related to the multimedia content is received from the user, and wherein generating the one or more query rewrite candidates
comprises:

scoring the one or more extracted entities based on one or more of: a time at which the extracted entities are annotated in
the multimedia content or based on co-occurrences of n-grams in a query repository, the n-grams in the query repository each
being a contiguous sequence of n items from a given sequence of text or speech, and the n-grams in the query repository including
unigrams, bigrams, trigrams, and four-grams,

ranking the extracted entities based on the scoring, and
combining one or more of the terms of the query with one or more scored extracted entities to generate the one or more query
rewrite candidates;

providing the one or more query rewrite candidates to a search engine;
scoring the one or more query rewrite candidates based on characteristics of respective result sets resulting from the providing;
ranking the scored one or more query rewrite candidates based on their respective scores;
rewriting the query related to the multimedia content based on a particular ranked query rewrite candidate; and
providing for display, responsive to the query related to the multimedia content, a result set from the search engine based
on the rewritten query.

US Pat. No. 9,852,230

ASYNCHRONOUS MESSAGE PASSING FOR LARGE GRAPH CLUSTERING

Google LLC, Mountain Vie...

1. A system comprising:
distributed computing devices represented by leaf servers; and
memory storing a graph of nodes and edges, the graph being distributed across the leaf servers,
wherein a leaf server includes:
a priority queue engine that propagates messages between neighboring nodes in an intelligent manner that includes bundling
together messages directed to nodes on another leaf server before the propagation of the messages and skipping redundant messages
rather than propagating the redundant messages,

memory storing a cluster identifier for each node assigned to the leaf server,
at least one processor, and
memory storing instructions that, when executed by the at least one processor, cause the leaf server to send asynchronous
messages between neighboring nodes via the priority queue engine, the messages including a cluster identifier for a first
node, wherein sending the asynchronous message is triggered when the first node updates its cluster identifier after receiving
the cluster identifier from another node.

US Pat. No. 9,854,084

CONTEXTUAL ALARM AND NOTIFICATION MANAGEMENT

Google LLC, Mountain Vie...

1. A method comprising:
receiving, by a mobile phone, information pertaining to a particular task that a particular user of the mobile phone is to
complete, wherein the particular task is defined as riding a bicycle;

scheduling, by the mobile phone, an alert to be output by the mobile phone for reminding the particular user to complete the
particular task by a predetermined time;

receiving, by the mobile phone, contextual information associated with a computerized watch that is also associated with the
particular user of the mobile phone, wherein: the contextual information includes information pertaining to a particular location
of the computerized watch and one or more movements of the computerized watch; and

prior to outputting the alert at the predetermined time:
determining, by the mobile phone, based on the particular location of the computerized watch and in response to determining
that the one or more movements of the computerized watch indicate the particular user is currently bicycling, whether the
particular user already completed the particular task; and

responsive to determining that the particular user already completed the particular task, cancelling, by the mobile phone,
the alert.

US Pat. No. 9,842,091

SWITCHING TO AND FROM NATIVE WEB APPLICATIONS

Google LLC, Mountain Vie...

1. A method comprising:
executing, by a processor of a computing device, a web browser presentation environment, wherein the web browser presentation
environment includes a presentation environment created by a web browser software application executed within a native operating
system environment;

presenting on the computing device at least one web page that includes markup language content within a context of the web
browser presentation environment, wherein presenting the at least one web page within the web browser presentation environment
includes rendering the at least one web page according to the markup language content and maintaining a first presentation
data structure that includes a web browser presentation data structure portion and a common presentation data structure portion;

receiving, by the processor of the computing device, while the web page is being presented in the web browser presentation
environment, a request to move the presentation of the web page that includes markup language content from the web browser
presentation environment to an emulation-based presentation environment, wherein the emulation-based presentation environment
includes a presentation environment created by a non-native operating system emulation software application executed within
the native operating system environment; and

in response to receiving the request, moving, by the processor of the computing device, the presentation of the web page that
includes markup language content from the web browser presentation environment to the emulation-based presentation environment,
such that the web page is presented on the computing device within the context of the emulation-based presentation environment,
wherein the moving includes rendering the at least one web page according to the markup language content and maintaining a
second presentation data structure that includes an emulation-based presentation data structure portion and the common data
structure portion, wherein the emulation-based presentation data structure portion is specific to the emulation-based presentation
environment, and wherein the common data structure portion is not specific to either the web browser presentation environment
or to the emulation-based presentation environment.

US Pat. No. 9,842,166

SEMI STRUCTURED QUESTION ANSWERING SYSTEM

GOOGLE LLC, Mountain Vie...

1. A computer system comprising:
at least one processor; and
memory storing:
a data graph, and
instructions that, when executed by the at least one processor, cause the system to:
receive a query based on a first node of the data graph and a fact,
determine whether the fact is absent from the data graph, and
upon determining the fact is absent from the data graph:
determine an answer to the query by following a path starting at the first node and ending at a second node, the path including
at least one third node between the first node and the second node, wherein

 the data graph includes a first edge configured to connect the at least one third node with the first node,
 the data graph includes a second edge configured to connect the at least one third node with the second node,
 the path links the first node to the at least one third node via the first edge, and
 the path links the at least one third node to the second node via the second edge, and
return a property associated with the second node as the answer to the query, the property being linked to the second node
via a third edge.

US Pat. No. 9,841,943

CREATION AND CONTROL OF CHANNELS THAT PROVIDE ACCESS TO CONTENT FROM VARIOUS AUDIO-PROVIDER SERVICES

Google LLC, Mountain Vie...

20. A server comprising:
one or more processors;
a non-transitory computer readable medium; and
program instructions stored on the non-transitory computer readable medium and executable by the one or more processors to:
receive a first channel-addition request indicating content from a first audio-provider service;
in response to receiving the first channel-addition request, establish a first channel that provides access to content from
the first audio-provider service via an application-program account corresponding to a computing device;

receive a second channel-addition request indicating content from a second audio-provider service;
in response to receiving the second channel-addition request, establish a second channel that provides access to content from
the second audio-provider service via the application-program account;

determine a first selection of the added first channel and responsively send to the computing device a first instruction to
output content from the first audio-provider service;

determine a second selection of the added second channel and responsively send to the computing device a second instruction
to output content from the second audio-provider service, wherein the second instruction instructs the computing device to
output content from the second audio-provider service via an audio output device of the computing device;

receive, from a second audio-provider server that stores content from the second audio-provider service, information that
specifies at least one type of content associated with content from the second audio-provider service;

receive, from the computing device, an indication that an audible notification is to be outputted via the audio output device
of the computing device;

in response to receiving the indication and based on the at least one type of content, make a further determination of whether
(i) to instruct the computing device to stop outputting content from the second audio-provider service via the audio output
device while the audible notification is being outputted via the audio output device or (ii) to instruct the computing device
to continue outputting content from the second audio-provider service via the audio output device at a reduced volume while
the audible notification is also being outputted via the audio output device; and

after making the further determination, transmit, to the computing device, a further instruction in accordance with the further
determination.

US Pat. No. 9,830,150

MULTI-FUNCTIONAL EXECUTION LANE FOR IMAGE PROCESSOR

Google LLC, Mountain Vie...

1. An apparatus, comprising:
an execution unit comprising a multiply add computation unit, a first ALU logic unit and a second ALU logic unit, the execution
unit to perform:

a first instruction, said first instruction being a multiply add instruction;
a second instruction, said second instruction to perform parallel ALU operations with the first and second ALU logic units
operating simultaneously to produce different respective output resultants of the second instruction;

a third instruction, said third instruction to perform sequential ALU operations with one of the ALU logic units operating
from an output of the other of the ALU logic units to determine an output resultant of the third instruction;

a fourth instruction, said fourth instruction to perform an iterative divide operation in which the first ALU logic unit and
the second ALU logic unit operate to determine first and second division resultant digit values.

US Pat. No. 9,832,716

SWITCHING BETWEEN NETWORKS BASED ON QUALITY OF AVAILABLE NETWORKS

Google LLC, Mountain Vie...

1. A computer-implemented method comprising:
establishing, by a computing device, a connection with a first wireless communication network;
identifying, by the computing device, a characteristic of the first wireless communication network;
determining, by the computing device and at a first point in time, that the connection with the first wireless communication
network has degraded below a threshold quality level;

identifying, by the computing device, a time at which to reevaluate whether the connection with the first wireless communication
network is still below the threshold quality level, the time identified at least partially based on the characteristic of
the first wireless communication network;

determining, by the computing device, at a second point in time and in response to having determined that the time at which
to reevaluate whether the connection with the first wireless communication network is still below the threshold quality level
has expired, that the connection with the first wireless communication network is still below the threshold quality level;
and

responsive to determining, at the first point in time, that the connection with the first wireless communication network had
degraded below the threshold quality level and determining, at the second point in time, that the connection with the first
wireless communication network was still below the threshold quality level, establishing, by the computing device, a connection
with a second wireless communication network.

US Pat. No. 9,817,825

MULTIPLE INDEX BASED INFORMATION RETRIEVAL SYSTEM

Google LLC, Mountain Vie...

7. An information retrieval system for retrieving information from a corpus of documents, the system comprising:
a primary index server system comprising a primary index, the primary index including primary phrase posting lists, each primary
phrase posting list being associated with a phrase; and

a secondary index server system comprising a secondary index, the secondary index including secondary phrase posting lists,
each secondary phrase posting list being associated with a primary phrase posting list in the primary index, and including
documents that contain the phrase that is associated with the primary phrase posting list in the primary index and which have
relevance scores less than the relevance score of a lowest ranked document in the primary phrase posting list for the phrase,

wherein the primary index server system comprises multiple machines, and wherein each phrase is assigned an identification
number and has a primary phrase posting list located on one of the machines.

US Pat. No. 9,894,050

SERVER BASED SETTINGS FOR CLIENT SOFTWARE WITH ASYMMETRIC SIGNING

GOOGLE LLC, Mountain Vie...

1. A system comprising:
a computing device configured to:
receive a request for a settings page associated with an authenticated user, the request from an application associated with
the authenticated user;

decrypt signed values for preferences for user settings included in the settings page; and
provide a value for a preference for a user setting included in the settings page;
a server configured to:
authenticate the user;
sign the values for the preferences for the user settings included in the settings page;
provide the settings page including the signed values for the preferences for the user settings; and
based on determining that the value for the preference for the user setting is not a valid value, not store the value for
the preference in a settings/preferences file associated with the user; and

a database configured to:
store user data associated with the user, the user data used by the server to authenticate the user;
store the settings/preferences file associated with the user that includes the values for the preferences for the user settings;
store a private key associated with the user, the private key used by the server for signing the values for the preferences
for the user settings; and

store a public key associated with an application running on the computing device, the public key used to decrypt the values
for the preferences for the user settings signed by the private key.

US Pat. No. 9,882,264

ANTENNAS FOR COMPUTERS WITH CONDUCTIVE CHASSIS

GOOGLE LLC, Mountain Vie...

1. A computing device, comprising:
a conductive frame;
a first slot antenna formed, at least in part, by the conductive frame, the first slot antenna defining a first cavity that
extends into the conductive frame from a first open end on the conductive frame to a closed end of the first slot antenna;

a second slot antenna formed, at least in part, by the conductive frame, the second slot antenna defining a second cavity
that extends into the conductive frame from a second open end on the conductive frame to a closed end of the second slot antenna,

wherein the second slot antenna is formed a distance away from the first slot antenna,
wherein the first slot antenna includes a feed point, the feed point dividing the first slot antenna into a short-circuited
portion and an open-circuited portion, the open-circuited portion including an un-closed loop, the short-circuited portion
being positioned substantially around an outside perimeter of the un-closed loop, the short-circuited portion and the open-circuited
portion being separated by a frame portion of the conductive frame, wherein a width of the frame portion controls one or more
resonance frequencies in the first slot antenna.

US Pat. No. 9,875,747

DEVICE SPECIFIC MULTI-CHANNEL DATA COMPRESSION

GOOGLE LLC, Mountain Vie...

1. A method comprising:
determining, by at least a first neural network layer of a neural network of a first device, a first signal difference between
a signal characteristic of a first audio signal and a signal characteristic of a second audio signal, wherein the first signal
difference includes a difference in a frequency response;

compressing, by at least a second neural network layer of the neural network and based on the first signal difference, the
first audio signal and the second audio signal into a third audio signal; and

providing, by the first device to a second device, the first audio signal and the third audio signal.

US Pat. No. 9,858,308

REAL-TIME CONTENT RECOMMENDATION SYSTEM

Google LLC, Mountain Vie...

1. A method of providing recommendations of real-time content, comprising:
selecting, by a first selection engine executing on a data processing system, at a first frequency, a first set of content
item identifiers from a first database of a content publisher, the first database containing the first set of content item
identifiers determined to be provided at a first rate greater than a first predetermined threshold during a first time period;

updating, by an update engine executing on the data processing system, at the first frequency, a first pipeline with the first
set of content item identifiers;

selecting, by a second selection engine executing on the data processing system, at a second frequency different from the
first frequency, a second set of content item identifiers from a second database of the content publisher, the second database
containing the second set of content item identifiers determined to be provided at a second rate greater than a second predetermined
threshold during a second time period longer in duration than the first time period;

updating, by the update engine, at the second frequency, a second pipeline with the second set of content item identifiers;
and

producing, by an amalgamator engine executing on the data processing system, a combined set of content item identifiers comprising
a subset of the first set of content item identifiers and a subset of the second set of content item identifiers.

US Pat. No. 9,858,587

METHODS AND SYSTEMS FOR CREATING A DATA-DRIVEN ATTRIBUTION MODEL FOR ASSIGNING ATTRIBUTION CREDIT TO A PLURALITY OF EVENTS

Google LLC, Mountain Vie...

1. A method for creating a data-driven attribution model, comprising:
accessing a database to identify, for a given time period, a plurality of visits to a particular website, each of the plurality
of visits associated with a visitor identifier;

identifying, for each visitor identifier, a first plurality of paths associated with the visitor identifier from the plurality
of visits to the particular website, each path including at least one event, each of the at least one event:

associated with an index position indicating a position of the event within the path; and
having an event type from among a plurality of event types;
deriving, by a processor, for each of the first plurality of paths, one or more subpaths from the path, each subpath comprising
a subset of the events of the path;

determining, by the processor, a second plurality of paths including the first plurality of paths and the subpaths derived
from the first plurality of paths;

defining a plurality of path types, each path type defined as a path comprising a number of events, the events comprising
a series of event types occurring in a particular order at particular index positions within the path;

determining, for each of the second plurality of paths, a path type from the plurality of path types by identifying the path
type having the same number of events as the path and series of events types in the order and the index positions as the path;

determining, by the processor, for each path type, a path-type conversion probability by calculating a ratio of a number of
paths of the path type that led to conversions to a total number of paths of the path type;

calculating, by the processor, for each of the plurality of the path types associated with the identified paths, a counterfactual
gain for each event based on:

a first path-type conversion probability of the given path type; and
a second path-type conversion probability of a second path type, wherein the second path type is identical to the path type
except that the second path type does not include the event for which the counterfactual gain is calculated;

determining, by the processor, for each event of each of the plurality of path types, an attribution credit based on the calculated
counterfactual gain of the event; and

storing, for each of a plurality of the path types associated with the identified paths, the determined attribution credit
for each event included in the path type.

US Pat. No. 9,858,589

MEASURING SEARCH LIFT RESULTED BY ONLINE ADVERTISEMENT

Google LLC, Mountain Vie...

1. A method comprising:
receiving a plurality of requests for content for which a first content item is an eligible content item and for which the
first content item is responsive to each of the respective requests;

determining to deliver, to first user devices each comprising a first identifier associated with a content system and a second
identifier associated with a search server, the first content item responsive to a first portion of the received plurality
of requests, and delivering the first content item along with a first pixel that identifies the delivery of the first content
item while determining not to deliver the first content item responsive to a second different portion of the received plurality
of requests, wherein the first pixel includes an identifier for the first content item, an indicator of exposure to the first
content item and does not include the first identifiers of the first user devices associated with the content system so that
user identifying information associated with the content system is not linked to user identifying information associated with
the search server;

determining to deliver, to second user devices each comprising the first identifier and the second identifier, a second different
content item responsive to the second different portion of the received plurality of requests rather than the first content
item and delivering the second different content item along with a second pixel that identifies the non-delivery of the first
content item, wherein the second pixel includes an identifier for the first content item, an indicator of non-exposure to
the first content item and does not include the first identifiers of the second user devices associated with the content system
so that user identifying information associated with the content system is not linked to user identifying information associated
with the search server, wherein each first identifier and each second identifier are associated with a user of at least one
of the first user devices or the second user devices;

evaluating searches performed by the first user devices that received the first content item as compared to the second user
devices that received the second different content item including using the first pixel and second pixel in evaluating search
logs associated with search requests performed by the first and the second user devices; and

presenting lift data to a sponsor associated with the first content item based at least in part on the evaluating.

US Pat. No. 9,860,227

IDENTIFYING PANELISTS BASED ON INPUT INTERACTION PATTERNS

Google LLC, Mountain Vie...

1. A panelist identification device for determining an identity of a panelist based on an input interaction pattern of the
panelist, said panelist identification device comprising a processor coupled to a panelist input device, said panelist identification
device is communicatively coupled to a panelist reporting system, said processor is configured to:
receive a first panelist identifier from a first panelist at a first time;
authenticate the first panelist to the panelist reporting system based on the first panelist identifier;
while the first panelist is authenticated to the panelist reporting system, receive at least a first input from the first
panelist through the panelist input device;

identify a first input interaction pattern of the first panelist based at least in part on the first input;
generate a first panelist input interaction pattern profile by averaging attributes from a plurality of input interaction
patterns including the first input interaction pattern associated with the first panelist identifier;

receive a candidate input at a second time through the panelist input device, wherein the second time is subsequent to the
first time;

identify a candidate input interaction pattern based on the candidate input;
determine that the candidate input interaction pattern satisfies a predefined threshold level of similarity to the first input
interaction pattern by:

determining a similarity score by comparing the candidate input interaction pattern to the first panelist input interaction
pattern profile; and

determining that the similarity score exceeds the predefined threshold level of similarity; and
authenticate the first panelist to the panelist reporting system in response to determining that the candidate input interaction
pattern satisfies the threshold level of similarity to the first input interaction pattern.

US Pat. No. 9,852,191

PRESENTING SEARCH RESULT INFORMATION

GOOGLE LLC, Mountain Vie...

1. A computer implemented method, comprising:
automatically selecting, by a system of one or more computers, first content based on one or more web documents interacted
with by a user via at least one client computer of the user;

storing, by the system in at least one notebook of the user, the first content automatically selected by the system based
on one or more web documents interacted with by the user;

receiving, by the system, a modification request to add second content to the notebook of the user, the modification request
received in response to computer interface input of the user via the at least one client computer;

storing, by the system based on the modification request, the second content in the notebook;
obtaining, by the system, a plurality of results to provide to the at least one client computer of the user;
ranking, by the system, the plurality of results using:
the first content, from the notebook, that was automatically selected by the system based on one or more web documents interacted
with by the user, and

the second content, from the notebook, that was stored in the notebook based on the modification request; and
providing, by the system, the plurality of results for presentation by the at least one client computer based on the ranking.

US Pat. No. 9,854,011

ANALYZING READING METRICS TO GENERATE ACTION INFORMATION

Google LLC, Mountain Vie...

1. A computer-implemented method comprising:
receiving, by a processor of a computing system, from a plurality of clients, data reports comprising action reports describing
actions performed, by a plurality of users of the plurality of clients, within an eBook and locations within the eBook at
which the actions were performed;

analyzing, by the processor, the data reports to identify a same action that is performed by the plurality of users of the
plurality of clients at a same location within the eBook;

generating, by the processor, based on the same action and the same location within the eBook, action information; and
transmitting, by the processor, to a particular client that is separate from the plurality of clients, the action informaation
to cause the particular client to use the action information to automatically perform the same action at the same location
within the eBook.

US Pat. No. 9,847,079

METHODS AND APPARATUS TO USE PREDICTED ACTIONS IN VIRTUAL REALITY ENVIRONMENTS

GOOGLE LLC, Mountain Vie...

1. A method comprising:
predicting a predicted time of a predicted virtual contact of a virtual reality controller with a virtual musical instrument;
determining, based on at least one parameter of the predicted virtual contact and a predicted latency, a characteristic of
a virtual sound to be produced by the virtual musical instrument in response to the virtual contact; and

initiating producing the virtual sound in response to the predicted latency of the virtual contact of the virtual reality
controller with the virtual musical instrument being determined.

US Pat. No. 9,843,641

NETWORK-INDEPENDENT PROGRAMMING MODEL FOR ONLINE PROCESSING IN DISTRIBUTED SYSTEMS

Google LLC, Mountain Vie...

1. A system comprising:
a memory storing network-independent processing plans;
a root node including a processor and instructions stored in memory that when executed by the processor cause the root node
to select one of the network-independent processing plans for a processing request, and distribute the selected network-independent
processing plan to a processing node of the system;

processing nodes, each including a processor and instructions stored in memory that when executed by the processor cause the
respective processing node to receive one of the network-independent processing plans, receive an input identified in an operation
of the received network-independent processing plan, and, when the input has been received, perform a service specified by
the operation, wherein each of the network-independent processing plans identifies corresponding ones of the processing nodes
using identifiers that include alpha-numeric strings, wherein the root node and the processing nodes communicate by a network
communication protocol, and wherein language of the network-independent processing plans is not dependent on the network communication
protocol; and

a name service comprising a mapping that maps each of the alpha-numeric strings to at least one of the processing nodes, so
that the network-independent processing plans can be ported to another system with a change to the mapping and without change
to the network-independent processing plans.

US Pat. No. 9,843,649

PROVIDING CONTENT BASED ON EVENT RELATED INFORMATION

Google LLC, Mountain Vie...

1. A method of selecting content based on events associated with device identifiers in a computer network environment, comprising:
receiving, by a data processing system having one or more processors and via a computer network, a request to serve third-party
content at a computing device;

identifying, by the data processing system, a device identifier associated with the computing device;
determining, by the data processing system, from the device identifier, a calendar event and event parameters associated with
the calendar event;

determining, by the data processing system, from the request, a length of time between a time the request to serve content
is received and a time at which the calendar event is scheduled to occur;

generating, by the data processing system, one or more data structures including a plurality of keyword clusters, the plurality
of keyword clusters based on the event parameters associated with the calendar event and based on the length of time between
the time the request to serve content is received and the time at which the calendar event is scheduled to occur;

accessing, by the data processing system, the one or more data structures to select at least one keyword of a keyword cluster
of the plurality of keyword clusters, the keyword cluster selected based on the length of time;

selecting, by the data processing system, content using the at least one keyword of the keyword cluster; and
providing, via the computer network, the content to the computing device associated with the device identifier to cause the
computing device to display the content.

US Pat. No. 9,842,489

WAKING OTHER DEVICES FOR ADDITIONAL DATA

GOOGLE LLC, Mountain Vie...

1. A method comprising:
receiving, by a main device, a trigger input signal;
in response to the received trigger input signal, outputting a wake-up signal from the main device to a secondary device;
receiving, by the main device from the secondary device in response to the wake-up signal, buffered input data;
subsequent to receiving the buffered input data by the main device, receiving input signals collected in real time from the
secondary device;

receiving a signal indicating that a user is in proximity to the main device so as to enable a main device sensor of the main
device;

receiving an input signal from the main device sensor;
separately recognizing the input signal from the main device sensor of the main device and the input signals from a secondary
device using speech recognition algorithms and providing recognition results for each device, wherein the input signal from
the main device sensor of the main device is recognized as a first recognition result and the input signals from the secondary
device are recognized as a second recognition result;

generating a final recognition result based on the first and second recognition results, wherein the second recognition result
is used to verify the first recognition result as the final recognition result if the main device is closer to the source
of the input than the secondary device, and the first recognition result is used to verify the second recognition result as
the final recognition result if the secondary device is closer to the source of the input signal than the main device; and

in response to the recognized input signals, generating a command signal to perform an action related to the recognized input
signals based on the generated final recognition result.

US Pat. No. 9,830,071

TEXT-ENTRY FOR A COMPUTING DEVICE

Google LLC, Mountain Vie...

1. A wearable computing system comprising:
a touch-sensitive input device configured to receive a first input for selecting a character and a second input for entering
the character;

wherein the touch-sensitive input device comprises a first portion and a second portion;
wherein the touch-sensitive input device is further configured to receive the first input via the touch-sensitive input device,
wherein the first input comprises a detected movement on the first portion of the touch-sensitive input device;

wherein the touch-sensitive input device is further configured to receive the second input via the touch-sensitive input device,
wherein the second input comprises a detected movement from the first portion to the second portion of the touch-sensitive
input device and back to the first portion; and

wherein the touch-sensitive input device further comprises a raised, indented, or roughened surface between the first portion
and the second portion, so as to provide tactile feedback between the first portion and the second portion.

US Pat. No. 9,819,793

ABUSE DETECTION FOR PHONE NUMBER LOOKUPS

Google LLC, Mountain Vie...

1. A computer-implemented method comprising:
creating, using one or more processors, a phone edge by associating a phone number in an address book of a first user with
an account of a second user;

receiving, using one or more processors, a request including the phone number from the first user for obtaining information
of the account associated with the phone number;

determining, using one or more processors, an edge cost associated with the phone edge for the first user;
computing, using one or more processors, a cost-based quota for the first user based on edge costs associated with phone edges
created for phone numbers in the address book of the first user; and

responsive to the request, determining whether to provide the phone edge to the first user based on the edge cost and the
cost-based quota, the phone edge including information of the account of the second user.

US Pat. No. 9,810,872

FIBER CLAMP WITH ATTACHMENT ACCESSORY NUB AND RECEPTACLE

Google LLC, Mountain Vie...

1. A clamp for securing a line to a pole having a pole mount using an aerial drone, comprising:
a body;
a first clamp connector located at a first position on the body; and
a second clamp connector located at a second position on the body,
wherein the first clamp connector is adapted to connect with a drone connector secured to the aerial drone upon advancing
the drone towards the first clamp connector, and

wherein the second clamp connector is adapted to connect with a pole-mount connector that is secured to the pole-mount upon
advancing the drone and the second clamp connector towards the pole-mount connector.

US Pat. No. 9,918,094

COMPRESSING AND REPRESENTING MULTI-VIEW VIDEO

Google LLC, Mountain Vie...

1. A method comprising:
determining a tile position in a frame of a spherical video based on a view perspective;
selecting a first portion of the frame of the spherical video as a first two-dimensional tile based on the tile position;
selecting a second two-dimensional tile and a third two-dimensional tile from a second portion of the frame of the spherical
video,

the second portion of the frame surrounding the first portion of the frame and extending away from the first portion of the
frame,

the second two-dimensional tile being closer to the first two-dimensional tile than the third two-dimensional tile,
the first two dimensional tile overlapping the second two-dimensional tile,
the second two-dimensional tile overlapping the third two-dimensional tile, and
the overlapping of the first two-dimensional tile and the second two-dimensional tile is smaller than the overlapping of the
second two-dimensional tile and the third two-dimensional tile;

encoding the first two-dimensional two dimensional tile using a first quality; encoding the second two-dimensional tile and
the third two-dimensional tile using at least one second quality, the first quality being a higher quality than the at least
one second quality, and the overlapping of the first two-dimensional tile and the second two-dimensional tile being a higher
quality than the overlapping of the second two-dimensional tile and the third two-dimensional tile, wherein the encoding of
the first two-dimensional tile, the second two-dimensional tile and the third two-dimensional tile includes separately encoding
each tile, the encoding includes:

generating at least one residual for the two-dimensional tile by subtracting a template from un-encoded pixels of the two-dimensional
tile to be encoded;

encoding the at least one residual by applying a transform to the at least one residual;
quantizing transform coefficients associated with the encoded at least one residual; and
entropy encoding the quantized transform coefficients as at least one compressed video bit, wherein at least one of the generating
of the at least one residual, the encoding of the at least one residual, the quantizing of the transform coefficients, and
the quantizing of the transform coefficients includes setting of at least one parameter based on the first quality; and

transmitting a packet, as a streaming spherical video, the packet including the encoded first two-dimensional tile, the encoded
second two-dimensional tile and the encoded third two dimensional tile.

US Pat. No. 9,875,313

RANKING AUTHORS AND THEIR CONTENT IN THE SAME FRAMEWORK

Google LLC, Mountain Vie...

1. A method comprising:
generating a graph by representing users and comments as nodes in the graph, and connecting the nodes based on relationships
between the users and the comments, relationships between the comments, and relationships between the users;

obtaining, by a device, a first initial score for a user and a second initial score for a comment authored by the user;
calculating, by the device, a user ranking score for the user and a comment ranking score for the comment based on the first
initial score for the user, the second initial score for the comment, and the relationships between the nodes in the graph,
the user ranking score reflecting a reputation of the user, the comment ranking score reflecting a quality of the comment;

running, by the device, iterations of a graph algorithm to determine if the user ranking score for the user and the comment
ranking score for the comment authored by the user have converged based on the graph;

generating, by the device and in response to determining that the user ranking score and the comment ranking score have converged,
a ranked list of users, the ranked list including information identifying the user and being ordered based on both the user
ranking score and the comment ranking score; and

providing, by the device and for presentation, the ranked list.

US Pat. No. 9,877,154

METHOD AND APPARATUS FOR PROVIDING TARGET LOCATION REMINDERS FOR A MOBILE DEVICE

Google LLC, Mountain Vie...

10. A mobile device comprising:
a user interface output component; and
logic circuitry operatively coupled to the user interface output component and configured to:
output, to the user interface output component, a user interface component indicating a plurality of selectable dynamic geo-fence
modes, the plurality of selectable dynamic geo-fence modes including a transport time mode and at least one of a frequency
of visits mode and a common location mode;

receive, while the transport time mode is a selected dynamic geo-fence mode, a target location within a first geo-fence, the
first geo-fence being associated with a corresponding nominal travel time to reach the received target location from a perimeter
of the first geo-fence using a first transportation mode;

determine an estimated travel time for the mobile device to reach the received target location, the estimated travel time
based on a current location of the mobile device, a current mode of transportation of the mobile device, and current traffic
conditions;

in response to determining that the estimated travel time for the mobile device to reach the received target location is within
a desired temporal range of the nominal travel time, dynamically change the first geo-fence to a second geo-fence, the second
geo-fence defining a different area than the first geo-fence; and

in response to the mobile device entering the second geo-fence, output, for display and to the user interface output component,
a reminder notification.

US Pat. No. 9,846,842

PREDICTING USER NAVIGATION EVENTS

Google LLC, Mountain Vie...

1. A system, comprising:
a memory; and
one or more processors coupled to the memory, the one or more processors being configured to:
receive a first text input related to a web browser;
identify a first set of probability data based on the first character of text input, the set of probability data associated
with one or more links from a navigation history;

determine a first confidence value for each link associated with the first set of probability data, the confidence value indicating
a frequency at which the link has been accessed based on the navigation history;

prerender a webpage associated with at least one link associated with the first set of probability data based on the confidence
value associated with the link;

receive a second character of text input related to the web browser;
identify a second set of probability data different from the first set of probability data based on both the first and second
character of text input, the second set of probability data associated with one or more links from the navigation history;

determine a second confidence value for each link associated with the second set of probability data, the confidence value
indicating a frequency at which the link has been accessed based on the navigation history; and

prerender a webpage associated with at least one link associated with the second set of probability data based on the confidence
value.

US Pat. No. 9,838,321

SYSTEMS AND METHOD FOR SINGLE QUEUE MULTI-STREAM TRAFFIC SHAPING WITH DELAYED COMPLETIONS TO AVOID HEAD OF LINE BLOCKING

Google LLC, Mountain Vie...

1. A network device, comprising:
a network card,
at least one processor:
memory;
a network interface driver executing on the at least one processor configured to:
receive a first set of data packets generated and forwarded by a software application for transmission by the network card;
store descriptors associated with the received first set of data packets in a primary transmission queue in a first order;
transfer the descriptors associated with the received first set of data packets to a data traffic shaping module executing
on one of the network card and the at least one processor; and

in response to determining that a packet of the received first set of packets has been successfully transmitted by the network
card, communicate a packet transmission completion message to the software application that has awaited receipt of a packet
transmission completion message from the network interface driver before forwarding additional data packets to the network
interface driver, and

the data traffic shaping module being configured to:
maintain a plurality of traffic shaping queues, wherein each traffic shaping queue has at least one associated transmission
rate rule;

receive the descriptors of data packets transferred by the network interface driver from the primary transmission queue;
classify the data packets associated with the received descriptors;
determine that transmission by the network card of a first data packet associated with a received first descriptor is to be
delayed, and responsive to such determination, remove the first descriptor associated with the first data packet from the
primary transmission queue and store the first descriptor in a corresponding traffic shaping queue based on a result of the
classification;

cause the network card to transmit the data packets associated with descriptors stored in the traffic shaping queues according
to the transmission rate rules associated with the respective traffic shaping queues; and

inform the network interface driver of successful transmission of data packets in a second order different from the first
order.

US Pat. No. 9,836,813

CORRECTION OF MISALIGNED MAP DATA FROM DIFFERENT SOURCES

Google LLC, Mountain Vie...

1. A computer-implemented method comprising:
receiving sets of map data from a plurality of sources, each source having a reliability value associated therewith,
wherein the sets of map data from each of the plurality of sources identify all distinct features from each other and correspond
to a same map location;

determining, by one or more processors, whether the distinct features of the sets of map data from the plurality of sources
are substantially aligned by evaluating whether a deviation corresponding to a visibility gap between the distinct features
of the sets of map data satisfies a threshold value;

adjusting, using the one or more processors, at least one of the distinct features of the sets of map data based on the determination;
and

generating a map using the adjusted at least one distinct feature of the set of map data.