IP Library Granted Patent US 12,407,519
Granted Patent B2
US 12,407,519 · App. 17/869,298 · Granted Sep 2, 2025

Trusted execution environment

Inventors: James Seibel (Boston, MA); Kevin LaFlamme (Boston, MA); Fred Koschara (Boston, MA); Reinhard Schumak (Boston, MA); Jeremy Debate (Boston, MA)
Assignee: Malikie Innovations Limited
H04L9/3234G06F21/53G06F21/606H04L63/061H04L63/0853H04L63/0876H04L67/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,407,519
App. No.
17/869,298
Granted
Sep 2, 2025
Kind
B2
Abstract

A trusted execution environment on a computing device within an enterprise, whether owned by the enterprise or the employee/user, allows invocation of trusted enterprise applications without hindering external or non-enterprise apps from running on the same computing device. Each of the trusted apps can interact with other trusted apps on the same enterprise computing device in a trusted manner such that other apps or untrusted network connections are prevented for access to the trusted apps. The computing device, however, also executes non enterprise applications which operate independently of the enterprise apps in the same address space using the same unmodified operating system as the enterprise apps on the computing device. The trusted execution environment therefore restricts interprocess communication to be only within the set of enterprise apps and also permits unimpeded operation of other apps under the same OTS (off the shelf) operating system.

Claims (68)

1. A method of providing an execution environment in a computing device, comprising:

loading a plurality of trusted applications into a memory of the computing device;

maintaining, in the memory, a plurality of communication associations;

detecting an attempt to communicate with a recipient application by an originating application, the recipient application being selected from the plurality of trusted applications;

searching through the plurality of communication associations for a communication association comprising an identifier of the recipient application and an identifier of the originating application;

when the communication association comprising the identifier of the recipient application and the identifier of the originating application is not found, disallowing the communication; and

when the communication association comprising the identifier of the recipient application and the identifier of the originating application is found,

identifying a message for transmission between the originating application and the recipient application,

generating a key based on the identifier of the recipient application and a unique file-specific identifier of a file system,

writing the identified message to a file, the contents of the file encrypted using the generated key;

transmitting, using the generated key, the file with the identified message to the recipient application,

receiving the generated key at the recipient application for decrypting the message, and

reading the file and decrypting the message, by the recipient application, using the generated key.

2. The method of claim 1 further comprising loading at least one untrusted application into the execution environment, the at least one untrusted application being prevented from communicating with any of the trusted applications.

3. The method of claim 1 wherein the transmitting comprises:

transmitting the generated key to the recipient application from a keystore application, the keystore application operable to store and retrieve the plurality of communication associations.

4. The method of claim 1 wherein the transmitting comprises:

designating an IPC (Interprocess Communication) channel between a transmitting application of the trusted applications and the recipient application;

encrypting the identified message using the generated key;

transmitting the encrypted message to the recipient application from the originating application; and

transmitting the generated key to the recipient application from a keystore application, the keystore application operable to store and retrieve the plurality of communication associations.

5. The method of claim 1 wherein detecting the attempt to communicate identifies file accesses, IPC accesses and network accesses for each of the trusted applications, the trusted applications defining a set of trusted applications operable for communication only with other applications in the set of trusted applications exclusive of other applications in the memory outside the set of trusted applications.

6. The method of claim 5 wherein detecting an attempt to communicate further comprises wrapping the applications in the set of trusted applications, and leaving the other applications in the memory outside the set of trusted applications unmodified, the wrapped applications operable in the execution environment responsive to an unmodified operating system.

7. The method of claim 1 further comprising storing designated communication associations of one or more of the trusted applications in an association table accessible by a keystore application, the keystore application configured to receive an identifier of a trusted application and indicate if a communication association exists with another application in the execution environment.

8. The method of claim 7 wherein the association table includes entries, each entry having an indication of one of the plurality of the trusted applications and an identifier of one or more applications to which the one of the plurality of trusted applications may communicate.

9. A computing device for providing an execution environment, comprising:

a memory; and

a processor;

wherein the memory and the processor cooperate to:

load a plurality of trusted applications into the memory;

maintain, in the memory, a plurality of communication associations;

detect an attempt to communicate with a recipient application by an originating application, the recipient application being selected from the plurality of trusted applications;

searching through the plurality of communication associations for a communication association comprising an identifier of the recipient application and an identifier of the originating application;

when the communication association comprising the identifier of the recipient application and the identifier of the originating application is not found, disallowing the communication; and

when the communication association comprising the identifier of the recipient application and the identifier of the originating application is found,

identifying a message for transmission between the originating application and the recipient application,

generating a key based on the identifier of the recipient application and a unique file-specific identifier of a file system,

writing the identified message to a file, the contents of the file encrypted using the generated key;

transmitting, using the generated key, the file with the identified message to the recipient application, and

receiving the generated key at the recipient application for decrypting the message, and

reading the file and decrypting the message, by the recipient application, using the generated key.

10. The computing device of claim 9 , wherein the memory and the processor further cooperate to load at least one untrusted application into the execution environment, the at least one untrusted application being prevented from communicating with any of the trusted applications.

11. The computing device of claim 9 wherein the transmitting comprises:

transmitting the generated key to the recipient application from a keystore application, the keystore application operable to store and retrieve the plurality of communication associations.

12. The computing device of claim 9 wherein the transmitting comprises:

designating an IPC (Interprocess Communication) channel between a transmitting application of the trusted applications and the recipient application;

encrypting the identified message using the generated key;

transmitting the encrypted message to the recipient application from the originating application; and

transmitting the generated key to the recipient application from a keystore application, the keystore application operable to store and retrieve the plurality of communication associations.

13. The computing device of claim 9 wherein detecting the attempt to communicate identifies file accesses, IPC accesses and network accesses for each of the trusted applications, the trusted applications defining a set of trusted applications operable for communication only with other applications in the set of trusted applications exclusive of other applications in the memory outside the set of trusted applications.

14. The computing device of claim 13 wherein detecting an attempt to communicate further comprises wrapping the applications in the set of trusted applications, and leaving the other applications in the memory outside the set of trusted applications unmodified, the wrapped applications operable in the execution environment responsive to an unmodified operating system.

15. The computing device of claim 9 , wherein the memory and the processor further cooperate to store designated communication associations of one or more of the trusted applications in an association table accessible by a keystore application, the keystore application configured to receive an identifier of a trusted application and indicate if a communication association exists with another application in the execution environment.

16. The computing device of claim 15 wherein the association table includes entries, each entry having an indication of one of the plurality of the trusted applications and an identifier of one or more applications to which the one of the plurality of trusted applications may communicate.

17. A non-transitory computer readable medium having stored thereon executable code for execution by a processor of a computing device, the executable code comprising instructions for:

loading a plurality of trusted applications into a memory of the computing device;

maintaining, in the memory, a plurality of communication associations;

detecting an attempt to communicate with a recipient application by an originating application, the recipient application being selected from the plurality of trusted applications;

searching through the plurality of communication associations for a communication association comprising an identifier of the recipient application and an identifier of the originating application;

when the communication association comprising the identifier of the recipient application and the identifier of the originating application is not found, disallowing the communication; and

when the communication association comprising the identifier of the recipient application and the identifier of the originating application is found,

identifying a message for transmission between the originating application and the recipient application,

generating a key based on the identifier of the recipient application and a unique file-specific identifier of a file system,

writing the identified message to a file, the contents of the file encrypted using the generated key;

transmitting, using the generated key, the file with the identified message to the recipient application, and

receiving the generated key at the recipient application for decrypting the message, and

reading the file and decrypting the message, by the recipient application, using the generated key.

18. The non-transitory computer readable medium of claim 17 , wherein the executable code comprising instructions for storing designated communication associations of one or more of the trusted applications in an association table accessible by a keystore application, the keystore application configured to receive an identifier of a trusted application and indicate if a communication association exists with another application in the execution environment.

19. The non-transitory computer readable medium of claim 18 , wherein each communication association of the plurality of communication associations comprises an entry of the associations table, the entry comprising both a first identifier for a first application and a second identifier for a second application, the first application and the second application being selected from the plurality of trusted applications.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2022
From: SEIBEL, JAMES; LAFLAMME, KEVIN; KOSCHARA, FRED; SCHUMAK, REINHARD; DEBATE, JEREMY
To: APPERIAN, INC.
Reel/Frame 060940/0858 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2022
From: APPERIAN, INC.
To: BLACKBERRY LIMITED
Reel/Frame 060940/0971 →
Continuity (2)
Continuation 15007547 · Jan 27, 2016
Related Publication 20220368530A1 · Nov 17, 2022
References Cited (229)
US 6216175B1 · Sliger et al. · 2001 [cited by applicant]
US 6260190B1 · Ju · 2001 [cited by applicant]
US 6470450B1 · Langford · 2002 [cited by examiner]
US 6915510B1 · Tock et al. · 2005 [cited by applicant]
US 6948164B2 · Tinker · 2005 [cited by applicant]
US 7178021B1 · Hanna · 2007 [cited by examiner]
US 7590738B2 · Mendonca · 2009 [cited by applicant]
US 7716467B1 · Deffet · 2010 [cited by examiner]
US 7725890B2 · Kawaura · 2010 [cited by applicant]
US 7765579B2 · Wallace · 2010 [cited by applicant]
US 7779394B2 · Homing et al. · 2010 [cited by applicant]
US 7788708B2 · Doane · 2010 [cited by examiner]
US 8225308B2 · Sedukhin et al. · 2012 [cited by applicant]
US 8286241B1 · Yeo · 2012 [cited by examiner]
US 8473724B1 · Kenville et al. · 2013 [cited by applicant]
US 8595810B1 · Ben Ayed · 2013 [cited by examiner]
US 8607200B2 · Kunze · 2013 [cited by applicant]
US 8818946B2 · Foti · 2014 [cited by examiner]
US 8825663B2 · Mahaniok · 2014 [cited by examiner]
US 8869235B2 · Qureshi · 2014 [cited by examiner]
US 8887141B2 · Day et al. · 2014 [cited by applicant]
US 8898620B2 · Eizenman et al. · 2014 [cited by applicant]
US 9002018B2 · Wilkins · 2015 [cited by examiner]
US 9009790B2 · Wuthnow · 2015 [cited by examiner]
US 9037870B1 · Zheng · 2015 [cited by examiner]
US 9055063B2 · Dwan · 2015 [cited by examiner]
US 9111105B2 · Barton · 2015 [cited by examiner]
US 9111276B2 · Haller · 2015 [cited by applicant]
US 9112854B1 · Bhimanaik · 2015 [cited by examiner]
US 9208328B2 · Russello et al. · 2015 [cited by applicant]
US 9224001B2 · Ayyalasomayajula · 2015 [cited by examiner]
US 9246690B1 · Roth · 2016 [cited by examiner]
US 9286477B2 · Sobel · 2016 [cited by examiner]
US 9319219B2 · Quinlan · 2016 [cited by examiner]
US 9354849B2 · Debate et al. · 2016 [cited by applicant]
US 9355060B1 · Barber et al. · 2016 [cited by applicant]
US 9515999B2 · Ylonen · 2016 [cited by examiner]
US 9529996B2 · Qureshi · 2016 [cited by examiner]
US 9626525B2 · Momchilov · 2017 [cited by examiner]
US 9635001B2 · Kaseda · 2017 [cited by examiner]
US 9866382B2 · Wagner · 2018 [cited by examiner]
US 9940454B2 · Richardson · 2018 [cited by examiner]
US 9954834B2 · Quinlan · 2018 [cited by examiner]
US 10031783B2 · Jalagam et al. · 2018 [cited by applicant]
US 10044507B2 · Raduchel · 2018 [cited by examiner]
US 10205710B2 · Mitchell · 2019 [cited by examiner]
US 10225287B2 · Aamir et al. · 2019 [cited by applicant]
US 10298880B2 · Okuyama · 2019 [cited by examiner]
US 10303879B1 · Potlapally · 2019 [cited by examiner]
US 10341327B2 · Kola · 2019 [cited by examiner]
US 10467421B2 · Aamir · 2019 [cited by examiner]
US 10567959B2 · Studerus · 2020 [cited by examiner]
US 10599409B2 · Seibel et al. · 2020 [cited by applicant]
US 10797904B2 · Dixon · 2020 [cited by examiner]
US 11228569B2 · Westra · 2022 [cited by examiner]
US 11424931B2 · Seibel et al. · 2022 [cited by applicant]
US 11637703B2 · Raduchel · 2023 [cited by examiner]
US 11799683B2 · Dixon · 2023 [cited by examiner]
US 20020073398A1 · Tinker · 2002 [cited by applicant]
US 20020087956A1 · Darlet · 2002 [cited by applicant]
US 20030033521A1 · Sahlbach · 2003 [cited by examiner]
US 20030079120A1 · Hearn · 2003 [cited by examiner]
US 20040015927A1 · Haber et al. · 2004 [cited by applicant]
US 20040237067A1 · Sun et al. · 2004 [cited by applicant]
US 20050081029A1 · Thornton · 2005 [cited by examiner]
US 20050182966A1 · Pham · 2005 [cited by examiner]
US 20050262568A1 · Hansen · 2005 [cited by examiner]
US 20060150256A1 · Fanton · 2006 [cited by examiner]
US 20060161768A1 · Baissus et al. · 2006 [cited by applicant]
US 20070006163A1 · Aoki et al. · 2007 [cited by applicant]
US 20070074169A1 · Chess et al. · 2007 [cited by applicant]
US 20070271459A1 · Gomez · 2007 [cited by examiner]
US 20080010458A1 · Holtzman · 2008 [cited by examiner]
US 20080010685A1 · Holtzman · 2008 [cited by examiner]
US 20080059787A1 · Hohenberger · 2008 [cited by examiner]
US 20080083021A1 · Doane · 2008 [cited by examiner]
US 20080184225A1 · Fitzgerald et al. · 2008 [cited by applicant]
US 20090037921A1 · Simpson et al. · 2009 [cited by applicant]
US 20090089766A1 · Day et al. · 2009 [cited by applicant]
US 20090094596A1 · Kuiper et al. · 2009 [cited by applicant]
US 20090119653A1 · Kettley et al. · 2009 [cited by applicant]
US 20090290712A1 · Henry et al. · 2009 [cited by applicant]
US 20090328067A1 · Srinivasan et al. · 2009 [cited by applicant]
US 20100037100A1 · Lopian · 2010 [cited by applicant]
US 20100138652A1 · Sela · 2010 [cited by examiner]
US 20100287541A1 · Saunders · 2010 [cited by examiner]
US 20100303236A1 · Laaksonen · 2010 [cited by examiner]
US 20100333079A1 · Sverdlov et al. · 2010 [cited by applicant]
US 20110058673A1 · Zheng · 2011 [cited by examiner]
US 20110066999A1 · Rabinovich et al. · 2011 [cited by applicant]
US 20110087692A1 · Masone · 2011 [cited by examiner]
US 20110154031A1 · Banerjee · 2011 [cited by examiner]
US 20120023487A1 · Letca et al. · 2012 [cited by applicant]
US 20120036554A1 · Golan et al. · 2012 [cited by applicant]
US 20120079609A1 · Bender · 2012 [cited by examiner]
US 20120124559A1 · Kondur · 2012 [cited by examiner]
US 20120124659A1 · Craft · 2012 [cited by examiner]
US 20120159163A1 · von Behren · 2012 [cited by examiner]
US 20120162538A1 · Dixon · 2012 [cited by examiner]
US 20120204032A1 · Wilkins · 2012 [cited by examiner]
US 20120209923A1 · Mathur · 2012 [cited by examiner]
US 20120210443A1 · Blaisdell · 2012 [cited by examiner]
US 20120291103A1 · Cohen · 2012 [cited by examiner]
US 20120328105A1 · Mukkara · 2012 [cited by examiner]
US 20120331283A1 · Chandran · 2012 [cited by examiner]
US 20130013555A1 · Foti · 2013 [cited by examiner]
US 20130024383A1 · Kannappan · 2013 [cited by examiner]
US 20130042222A1 · Maddela · 2013 [cited by applicant]
US 20130054801A1 · Belchee · 2013 [cited by examiner]
US 20130073607A1 · Smirnov · 2013 [cited by examiner]
US 20130091543A1 · Wade · 2013 [cited by examiner]
US 20130097659A1 · Das · 2013 [cited by examiner]
US 20130097660A1 · Das · 2013 [cited by examiner]
US 20130212388A1 · D'Souza et al. · 2013 [cited by applicant]
US 20130227280A1 · Quinlan · 2013 [cited by examiner]
US 20130239192A1 · Linga · 2013 [cited by examiner]
US 20130276056A1 · Epstein · 2013 [cited by applicant]
US 20130283245A1 · Black et al. · 2013 [cited by applicant]
US 20130283400A1 · Schneider · 2013 [cited by examiner]
US 20130326590A1 · Schroeder, Jr. · 2013 [cited by examiner]
US 20140006773A1 · Chazalet · 2014 [cited by examiner]
US 20140007182A1 · Qureshi · 2014 [cited by examiner]
US 20140013316A1 · Kemmler · 2014 [cited by examiner]
US 20140032691A1 · Barton · 2014 [cited by examiner]
US 20140032759A1 · Barton · 2014 [cited by examiner]
US 20140040979A1 · Barton · 2014 [cited by examiner]
US 20140059525A1 · Jawa et al. · 2014 [cited by applicant]
US 20140068273A1 · Sobel · 2014 [cited by examiner]
US 20140068593A1 · McErlane · 2014 [cited by examiner]
US 20140090077A1 · Jeong · 2014 [cited by examiner]
US 20140095874A1 · Desai · 2014 [cited by examiner]
US 20140098449A1 · Hellberg et al. · 2014 [cited by applicant]
US 20140108558A1 · Borzycki · 2014 [cited by examiner]
US 20140122880A1 · Krishnaswamy · 2014 [cited by examiner]
US 20140123207A1 · Agarwal · 2014 [cited by examiner]
US 20140165049A1 · Diamos et al. · 2014 [cited by applicant]
US 20140177839A1 · Wagner · 2014 [cited by examiner]
US 20140181518A1 · Kim · 2014 [cited by examiner]
US 20140181522A1 · Tanizawa · 2014 [cited by examiner]
US 20140181801A1 · Voronkov et al. · 2014 [cited by applicant]
US 20140250511A1 · Kendall · 2014 [cited by examiner]
US 20140282446A1 · Debate · 2014 [cited by examiner]
US 20140282901A1 · Dwan · 2014 [cited by examiner]
US 20150040246A1 · Yuen · 2015 [cited by examiner]
US 20150046712A1 · Korkishko · 2015 [cited by examiner]
US 20150169877A1 · Mahaffey · 2015 [cited by examiner]
US 20150172060A1 · Mahaffey · 2015 [cited by examiner]
US 20150172146A1 · Mahaffey · 2015 [cited by examiner]
US 20150222604A1 · Ylonen · 2015 [cited by examiner]
US 20150319144A1 · Barton · 2015 [cited by examiner]
US 20150326567A1 · Hamburg et al. · 2015 [cited by applicant]
US 20160072629A1 · Kulkarni · 2016 [cited by examiner]
US 20160119292A1 · Kaseda · 2016 [cited by examiner]
US 20160191499A1 · Momchilov · 2016 [cited by examiner]
US 20160191645A1 · Hayton · 2016 [cited by examiner]
US 20160283406A1 · Linga · 2016 [cited by examiner]
US 20160308845A1 · Quinlan · 2016 [cited by examiner]
US 20170012953A1 · Ylonen · 2017 [cited by examiner]
US 20170019386A1 · Ylonen · 2017 [cited by examiner]
US 20170019387A1 · Ylonen · 2017 [cited by examiner]
US 20170041349A1 · Ylonen · 2017 [cited by examiner]
US 20170055101A1 · Studerus · 2017 [cited by examiner]
US 20170063975A1 · Prakash · 2017 [cited by examiner]
US 20170094509A1 · Mistry · 2017 [cited by examiner]
US 20170116424A1 · Aamir · 2017 [cited by examiner]
US 20170147810A1 · Richardson · 2017 [cited by examiner]
US 20170163689A1 · Ylonen · 2017 [cited by examiner]
US 20170171175A1 · Ylonen · 2017 [cited by examiner]
US 20170222995A1 · Ylonen · 2017 [cited by examiner]
US 20170257345A1 · Westra · 2017 [cited by examiner]
US 20170366580A1 · Ylonen · 2017 [cited by examiner]
US 20170366581A1 · Ylonen · 2017 [cited by examiner]
US 20180025180A1 · Wang · 2018 [cited by examiner]
US 20180183595A1 · Raduchel · 2018 [cited by examiner]
US 20190005229A1 · Hlaing · 2019 [cited by examiner]
US 20190075134A1 · Ylonen · 2019 [cited by examiner]
US 20200089869A1 · Richardson · 2020 [cited by examiner]
CN 1942845A · 2007 [cited by applicant]
CN 101971186A · 2011 [cited by applicant]
CN 103347020A · 2013 [cited by applicant]
CN 104392188A · 2015 [cited by applicant]
CN 104965732A · 2015 [cited by applicant]
EP 2746981A1 · 2014 [cited by applicant]
EP 2743855B1 · 2017 [cited by applicant]
WO 2010029362A2 · 2010 [cited by applicant]
WO 2014052917A1 · 2014 [cited by applicant]
WO 2015196967A1 · 2015 [cited by applicant]
Canadian Office Action; Application No. 2,955,585; Jan. 9, 2023; 3 pages. [cited by applicant]
Canadian Office Action; Application No. 2,956,103; Feb. 10, 2023; 5 pages. [cited by applicant]
Canadian Office Action; Application No. 2,955,585; Jul. 18, 2023; 4 pages. [cited by applicant]
An, Lianjun, et al.; “Effective Workforce Lifecycle Management via System Dynamics Modeling and Simulation”; IEEE; Proceedings of the 2007 Winter Simulation Conference; Dec. 9-12, 2007; 9 pages. [cited by applicant]
Etkin, Joshua, et al.; “Development Life Cycle of Computer Networks: The Executable Model Approach”; IEEE Transactions on Software Engineering; vol. 15, No. 9; Sep. 1989; 12 pages. [cited by applicant]
McCalla, Clement, et al.; “A Time-Dependent Queueing-Network Model to Describe the Life-Cycle Dynamics of Private-Line Telecommunication Services”; Telecommunication Systems; vol. 19, No. 1; Jan. 2002; 30 pages. [cited by applicant]
Narayan, Vish; “Application Integration Environment for Messaging/Queueing Model”; IEEE; Proceedings ISADS 95. Second International Symposium on Autonomous Decentralized Systems; Apr. 25-27, 1995; 6 pages. [cited by applicant]
IP.com; “IQQueryQuickExport—202004300627”; Apr. 30, 2020; 4 pages. [cited by applicant]
IP.com; “IQQueryQuickExport—202010010647”; Oct. 7, 2020; 4 pages. [cited by applicant]
IP.com; “IQQueryQuickExport—202109250251”; Sep. 28, 2021; 5 pages. [cited by applicant]
IP.com; “IQQueryQuickExport”; Apr. 21, 2022; 4 pages. [cited by applicant]
Office Action dated Jan. 7, 2015; U.S. Appl. No. 14/208,068, filed Mar. 13, 2014; 14 pages. [cited by applicant]
Final Office Action dated Jul. 28, 2015; U.S. Appl. No. 14/208,068, filed Mar. 13, 2014; 12 pages. [cited by applicant]
Advisory Action dated Nov. 30, 2015; U.S. Appl. No. 14/208,068, filed Mar. 13, 2014; 3 pages. [cited by applicant]
Notice of Allowance dated Jan. 29, 2016; U.S. Appl. No. 14/208,068, filed Mar. 13, 2014; 18 pages. [cited by applicant]
Office Action dated Oct. 4, 2017; U.S. Appl. No. 15/007,547, filed Jan. 27, 2016; 51 pages. [cited by applicant]
Final Office Action dated Apr. 24, 2018; U.S. Appl. No. 15/007,547, filed Jan. 27, 2016; 35 pages. [cited by applicant]
Advisory Action dated Jun. 18, 2018; U.S. Appl. No. 15/007,547, filed Jan. 27, 2016; 5 pages. [cited by applicant]
Office Action dated Nov. 27, 2018; U.S. Appl. No. 15/007,547, filed Jan. 27, 2016; 52 pages. [cited by applicant]
Final Office Action dated Jun. 13, 2019; U.S. Appl. No. 15/007,547, filed Jan. 27, 2016; 37 pages. [cited by applicant]
Advisory Action dated Aug. 27, 2019; U.S. Appl. No. 15/007,547, filed Jan. 27, 2016; 4 pages. [cited by applicant]
Office Action dated Nov. 12, 2019; U.S. Appl. No. 15/007,547, filed Jan. 27, 2016; 41 pages. [cited by applicant]
Final Office Action dated May 5, 2020; U.S. Appl. No. 15/007,547, filed Jan. 27, 2016; 38 pages. [cited by applicant]
Advisory Action dated Jul. 27, 2020; U.S. Appl. No. 15/007,547, filed Jan. 27, 2016; 4 pages. [cited by applicant]
Office Action dated Oct. 7, 2020; U.S. Appl. No. 15/007,547, filed Jan. 27, 2016; 37 pages. [cited by applicant]
Final Office Action dated Apr. 14, 2021; U.S. Appl. No. 15/007,547, filed Jan. 27, 2016; 39 pages. [cited by applicant]
Advisory Action dated Jun. 28, 2021; U.S. Appl. No. 15/007,547, filed Jan. 27, 2016; 5 pages. [cited by applicant]
Office Action dated Oct. 8, 2021; U.S. Appl. No. 15/007,547, filed Jan. 27, 2016; 46 pages. [cited by applicant]
Notice of Allowance dated Apr. 21, 2022; U.S. Appl. No. 15/007,547, filed Jan. 27, 2016; 12 pages. [cited by applicant]
Office Action dated Aug. 2, 2017; U.S. Appl. No. 15/013,438, filed Feb. 2, 2016; 32 pages. [cited by applicant]
Final Office Action dated May 11, 2018; U.S. Appl. No. 15/013,438, filed Feb. 2, 2016; 35 pages. [cited by applicant]
Advisory Action dated Jul. 26, 2018; U.S. Appl. No. 15/013,438, filed Feb. 2, 2016; 5 pages. [cited by applicant]
Office Action dated Jan. 14, 2019; U.S. Appl. No. 15/013,438, filed Feb. 2, 2016; 26 pages. [cited by applicant]
Notice of Allowance dated Jul. 29, 2019; U.S. Appl. No. 15/013,438, filed Feb. 2, 2016; 15 pages. [cited by applicant]
Notice of Allowance dated Nov. 7, 2019; U.S. Appl. No. 15/013,438, filed Feb. 2, 2016; 12 pages. [cited by applicant]
PCT International Search Report; Application No. PCT/US2014/025397; Aug. 7, 2014; 2 pages. [cited by applicant]
PCT Written Opinion of the International Searching Authority; Application No. PCT/US2014/025397; Aug. 7, 2014; 6 pages. [cited by applicant]
Chinese Office Action Application No. 201710057013.6; Jul. 5, 2021; 14 pages. [cited by applicant]
European Extended Search Report; Application No. 17152587.6; Jun. 23, 2017; 7 pages. [cited by applicant]
European Examination Report; Application No. 17152587.6; Apr. 5, 2019; 6 pages. [cited by applicant]
European Examination Report; Application No. 17152587.6; Mar. 30, 2020; 6 pages. [cited by applicant]
European Extended Search Report; Application No. 17153148.6; May 22, 2017; 8 pages. [cited by applicant]