master 05a1e82bf575 cached
183 files
699.2 KB
254.6k tokens
1 requests
Download .txt
Showing preview only (745K chars total). Download the full file or copy to clipboard to get everything.
Repository: RehabMan/HP-ProBook-4x30s-DSDT-Patch
Branch: master
Commit: 05a1e82bf575
Files: 183
Total size: 699.2 KB

Directory structure:
gitextract_wec_u5va/

├── .gitignore
├── License.md
├── Patches.xcodeproj/
│   ├── project.pbxproj
│   └── project.xcworkspace/
│       └── contents.xcworkspacedata
├── README.md
├── Resources_ProBook/
│   ├── README.txt
│   ├── codec_dump_CX20724.txt
│   ├── codec_dump_alc280_elitebook_g2_broadwell.txt
│   └── codec_dump_alc280_folio_9480m.txt
├── _get_tools.sh
├── build/
│   └── readme.txt
├── build.sh
├── config/
│   └── readme.txt
├── config_parts/
│   ├── config_Broadwell_dp.plist
│   ├── config_Broadwell_hdmi.plist
│   ├── config_HD3000-4000_dp.plist
│   ├── config_HD3000-4000_hdmi.plist
│   ├── config_Haswell_dp.plist
│   ├── config_Haswell_hdmi.plist
│   ├── config_Haswell_no_hdmi_dp.plist
│   ├── config_Kabylake_dp.plist
│   ├── config_Kabylake_hdmi.plist
│   ├── config_Skylake_dp.plist
│   ├── config_Skylake_hdmi.plist
│   ├── config_master.plist
│   └── config_non_Intel_USB3.plist
├── download.sh
├── find_dependencies.sh
├── hotpatch/
│   ├── SSDT-1020G1b.dsl
│   ├── SSDT-1030G1s.dsl
│   ├── SSDT-1040G1h.dsl
│   ├── SSDT-1040G3s.dsl
│   ├── SSDT-1050G1k.dsl
│   ├── SSDT-2x60.dsl
│   ├── SSDT-2x70.dsl
│   ├── SSDT-3x0G1.dsl
│   ├── SSDT-4230.dsl
│   ├── SSDT-450G1h.dsl
│   ├── SSDT-4x0G0.dsl
│   ├── SSDT-4x0G1h.dsl
│   ├── SSDT-4x0G1i.dsl
│   ├── SSDT-4x0G2b.dsl
│   ├── SSDT-4x0G2h.dsl
│   ├── SSDT-4x0G3s.dsl
│   ├── SSDT-4x0G4k.dsl
│   ├── SSDT-4x30.dsl
│   ├── SSDT-4x40.dsl
│   ├── SSDT-5x30.dsl
│   ├── SSDT-6x0G1h.dsl
│   ├── SSDT-6x0G2s.dsl
│   ├── SSDT-6x60.dsl
│   ├── SSDT-6x70.dsl
│   ├── SSDT-8x0G1h.dsl
│   ├── SSDT-8x0G1i.dsl
│   ├── SSDT-8x0G2b.dsl
│   ├── SSDT-8x0G2h.dsl
│   ├── SSDT-8x0G3b.dsl
│   ├── SSDT-8x0G3s.dsl
│   ├── SSDT-8x0G4k.dsl
│   ├── SSDT-8x60.dsl
│   ├── SSDT-8x70.dsl
│   ├── SSDT-9x70.dsl
│   ├── SSDT-9x80.dsl
│   ├── SSDT-ALS0.asl
│   ├── SSDT-BATT-G2.asl
│   ├── SSDT-BATT-G3.asl
│   ├── SSDT-BATT-G4.asl
│   ├── SSDT-BATT.asl
│   ├── SSDT-EH01.asl
│   ├── SSDT-EH02.asl
│   ├── SSDT-FANORIG.dsl
│   ├── SSDT-FANQ.dsl
│   ├── SSDT-FANREAD.dsl
│   ├── SSDT-HACK.asl
│   ├── SSDT-IGPU.dsl
│   ├── SSDT-KEY102.asl
│   ├── SSDT-KEY87.asl
│   ├── SSDT-PEG0_PEGP_RDSS.asl
│   ├── SSDT-PEGP_DGFX_RDSS.asl
│   ├── SSDT-PNLF.asl
│   ├── SSDT-RMCF.asl
│   ├── SSDT-RP01_PEGP_RDSS.asl
│   ├── SSDT-RP01_PXSX_RDSS.asl
│   ├── SSDT-RP05_DGFX_RDSS.asl
│   ├── SSDT-RP05_PEGP_RDSS.asl
│   ├── SSDT-RP05_PXSX_RDSS.asl
│   ├── SSDT-USB-1020-G1.asl
│   ├── SSDT-USB-1030-G1.asl
│   ├── SSDT-USB-1040-G3.asl
│   ├── SSDT-USB-1050-G1.asl
│   ├── SSDT-USB-2x70.asl
│   ├── SSDT-USB-4x0-G0.asl
│   ├── SSDT-USB-4x0-G1.asl
│   ├── SSDT-USB-4x0-G2.asl
│   ├── SSDT-USB-4x0-G3.asl
│   ├── SSDT-USB-4x0-G4.asl
│   ├── SSDT-USB-4x30s.asl
│   ├── SSDT-USB-4x40s.asl
│   ├── SSDT-USB-640-G2.asl
│   ├── SSDT-USB-6x0-G1.asl
│   ├── SSDT-USB-6x60.asl
│   ├── SSDT-USB-6x70.asl
│   ├── SSDT-USB-8x0-G1.asl
│   ├── SSDT-USB-8x0-G2.asl
│   ├── SSDT-USB-8x0-G3.asl
│   ├── SSDT-USB-8x0-G4.asl
│   ├── SSDT-USB-8x60.asl
│   ├── SSDT-USB-8x70.asl
│   ├── SSDT-USB-9x70.asl
│   ├── SSDT-USB-9x80.asl
│   ├── SSDT-USB-Unknown.asl
│   ├── SSDT-USB-ZBook-G1.asl
│   ├── SSDT-USB-ZBook-G2.asl
│   ├── SSDT-USB-ZBook-G3.asl
│   ├── SSDT-USBX.asl
│   ├── SSDT-USWE.asl
│   ├── SSDT-XHC.asl
│   ├── SSDT-zbG1h.dsl
│   ├── SSDT-zbG2b.dsl
│   ├── SSDT-zbG2h.dsl
│   ├── SSDT-zbG2hA.dsl
│   ├── SSDT-zbG3s.dsl
│   └── include/
│       ├── ALC280_HDAU.asl
│       ├── ALC280_HDEF.asl
│       ├── ALC282_HDAU.asl
│       ├── ALC282_HDEF.asl
│       ├── ALC286_HDAU.asl
│       ├── ALC286_HDEF.asl
│       ├── CX20724_HDEF.asl
│       ├── CX8200_HDEF.asl
│       ├── IDT_7605_HDEF.asl
│       ├── IDT_7695_HDEF.asl
│       ├── IDT_76d1_HDEF.asl
│       ├── IDT_76d9_HDEF.asl
│       ├── IDT_76e0_HDAU.asl
│       ├── IDT_76e0_HDEF.asl
│       ├── disable_EH01-EH02.asl
│       ├── disable_EH01.asl
│       ├── disable_HECI.asl
│       ├── enable_mouse.asl
│       ├── key86_PS2K.asl
│       ├── key86_data.asl
│       ├── standard_PS2K.asl
│       └── standard_PS2K_data.asl
├── install_acpi.sh
├── install_acpi_include.sh
├── install_downloads.sh
├── install_tools.sh
├── kexts/
│   ├── AppleALC_Info.plist
│   ├── HSSDBlockStorage.kext/
│   │   └── Contents/
│   │       ├── Info.plist
│   │       ├── MacOS/
│   │       │   └── HSSDBlockStorage
│   │       └── Resources/
│   │           └── English.lproj/
│   │               └── InfoPlist.strings
│   ├── JMB38X.kext/
│   │   └── Contents/
│   │       ├── Info.plist
│   │       ├── MacOS/
│   │       │   └── JMB38X
│   │       └── Resources/
│   │           ├── English.lproj/
│   │           │   └── InfoPlist.strings
│   │           ├── jmcr_MMC.icns
│   │           ├── jmcr_SD.icns
│   │           └── jmcr_sdmmc.icns
│   ├── JMicronATA.kext/
│   │   └── Contents/
│   │       ├── Info.plist
│   │       ├── MacOS/
│   │       │   └── JMicronATA
│   │       ├── Resources/
│   │       │   └── English.lproj/
│   │       │       └── InfoPlist.strings
│   │       └── version.plist
│   └── README.txt
├── make_acpi.sh
├── make_config.sh
├── makefile
├── makefile.d
├── merge_plist.sh
├── native/
│   ├── dsdt4530s/
│   │   ├── dsdt_f20_hd3k.aml
│   │   ├── dsdt_f23_hd3k.aml
│   │   ├── dsdt_f27_hd3k.aml
│   │   ├── dsdt_f28_hd3k.aml
│   │   ├── dsdt_f29_hd3k.aml
│   │   ├── dsdt_f30_hd3k.aml
│   │   ├── dsdt_f40_hd3k.aml
│   │   ├── dsdt_f41_hd3k.aml
│   │   └── dsdt_f60_hd3k.aml
│   └── dsdt4540s/
│       ├── dsdt_f40_hd4k.aml
│       ├── dsdt_f43_hd4k.aml
│       ├── dsdt_f43_hd4k_8gb.aml
│       ├── dsdt_f50_hd4k_8gb.aml
│       └── dsdt_f60_hd4k_8gb.aml
└── pre-patch_hda.sh

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
.DS_Store
DerivedData/
Patches.xcodeproj/project.xcworkspace/xcuserdata/
Patches.xcodeproj/project.xcworkspace/xcshareddata/
Patches.xcodeproj/xcuserdata/
build/*
!build/readme.txt
_downloads/
_tools/
config/config_*.plist


================================================
FILE: License.md
================================================
## The GNU General Public License (GPL-2.0)
## Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.

59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

### Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification follow.

### TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0\. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

1\. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2\. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3\. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

4\. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

5\. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

6\. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

7\. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

8\. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

9\. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

10\. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

### NO WARRANTY
11\. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

12\. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS

### How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.

One line to give the program's name and a brief idea of what it does.


Copyright (C) <year> <name of author>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type \`show w'. This is free software, and you are welcome to redistribute it under certain conditions; type \`show c' for details.

The hypothetical commands \`show w' and \`show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than \`show w' and \`show c'; they could even be mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker.

signature of Ty Coon, 1 April 1989
Ty Coon, President of Vice

This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.


================================================
FILE: Patches.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 46;
	objects = {

/* Begin PBXFileReference section */
		8404DCC01FEFF6D20073E620 /* SSDT-450G1h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-450G1h.dsl"; path = "hotpatch/SSDT-450G1h.dsl"; sourceTree = "<group>"; };
		841F11E31E9FA7B000BE33AF /* SSDT-RP05_PEGP_RDSS.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-RP05_PEGP_RDSS.asl"; path = "hotpatch/SSDT-RP05_PEGP_RDSS.asl"; sourceTree = "<group>"; };
		84596D2A1E8CBD980005C4DB /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = kexts/AppleBacklightInjector.kext/Contents/Info.plist; sourceTree = "<group>"; };
		845E536C1D0D34880069A1F9 /* SSDT-USB-1020-G1.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-1020-G1.asl"; path = "hotpatch/SSDT-USB-1020-G1.asl"; sourceTree = "<group>"; };
		8497866A1E9DBFBB0020BEF8 /* SSDT-2x60.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; name = "SSDT-2x60.dsl"; path = "hotpatch/SSDT-2x60.dsl"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; };
		8497866B1E9DC69F0020BEF8 /* key86_PS2K.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = key86_PS2K.asl; path = hotpatch/include/key86_PS2K.asl; sourceTree = "<group>"; };
		84AB159A1E9AF5AD005206A1 /* SSDT-RP01_PXSX_RDSS.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-RP01_PXSX_RDSS.asl"; path = "hotpatch/SSDT-RP01_PXSX_RDSS.asl"; sourceTree = "<group>"; };
		84B9D52516FFE684002CD441 /* License.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = License.md; sourceTree = "<group>"; };
		84B9D52616FFE684002CD441 /* makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; lineEnding = 0; path = makefile; sourceTree = "<group>"; usesTabs = 1; };
		84D207AD1E64F63F0083EC17 /* SSDT-RP01_PEGP_RDSS.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-RP01_PEGP_RDSS.asl"; path = "hotpatch/SSDT-RP01_PEGP_RDSS.asl"; sourceTree = "<group>"; };
		84D207AE1E64F63F0083EC17 /* SSDT-RP05_DGFX_RDSS.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-RP05_DGFX_RDSS.asl"; path = "hotpatch/SSDT-RP05_DGFX_RDSS.asl"; sourceTree = "<group>"; };
		84F681FC1E74CDD30097D85D /* SSDT-BATT-G4.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-BATT-G4.asl"; path = "hotpatch/SSDT-BATT-G4.asl"; sourceTree = "<group>"; };
		84F681FD1E74D52C0097D85D /* config_Kabylake_dp.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Kabylake_dp.plist; path = config_parts/config_Kabylake_dp.plist; sourceTree = "<group>"; };
		84F681FF1E74D6D80097D85D /* SSDT-4x0G4k.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4x0G4k.dsl"; path = "hotpatch/SSDT-4x0G4k.dsl"; sourceTree = "<group>"; };
		84F682001E74DC9F0097D85D /* CX8200_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CX8200_HDEF.asl; path = hotpatch/include/CX8200_HDEF.asl; sourceTree = "<group>"; };
		ED023EB31CFDC75C00C5F3A2 /* SSDT-6x0G1h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-6x0G1h.dsl"; path = "hotpatch/SSDT-6x0G1h.dsl"; sourceTree = "<group>"; };
		ED17156E1D070F3C00219AC6 /* SSDT-USB-6x0-G1.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-6x0-G1.asl"; path = "hotpatch/SSDT-USB-6x0-G1.asl"; sourceTree = "<group>"; };
		ED1837421C0A4B1200A5A3DA /* merge_plist.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = merge_plist.sh; sourceTree = "<group>"; };
		ED18374E1C0A4B1200A5A3DA /* README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README.txt; path = Resources_ProBook/README.txt; sourceTree = "<group>"; };
		ED2500551CF67CE6006A5FB7 /* SSDT-XHC.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-XHC.asl"; path = "hotpatch/SSDT-XHC.asl"; sourceTree = "<group>"; };
		ED2500561CF67CE6006A5FB7 /* SSDT-EH01.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-EH01.asl"; path = "hotpatch/SSDT-EH01.asl"; sourceTree = "<group>"; };
		ED2500571CF67CE6006A5FB7 /* SSDT-EH02.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-EH02.asl"; path = "hotpatch/SSDT-EH02.asl"; sourceTree = "<group>"; };
		ED2C0E751FE2D81000EFE2D5 /* SSDT-USB-Unknown.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-Unknown.asl"; path = "hotpatch/SSDT-USB-Unknown.asl"; sourceTree = "<group>"; };
		ED334FFB1F8D3ED100202D59 /* SSDT-PEG0_PEGP_RDSS.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-PEG0_PEGP_RDSS.asl"; path = "hotpatch/SSDT-PEG0_PEGP_RDSS.asl"; sourceTree = "<group>"; };
		ED334FFC1F8D474E00202D59 /* SSDT-PEGP_DGFX_RDSS.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-PEGP_DGFX_RDSS.asl"; path = "hotpatch/SSDT-PEGP_DGFX_RDSS.asl"; sourceTree = "<group>"; };
		ED341D5F1FA370BC00455E78 /* SSDT-4230.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4230.dsl"; path = "hotpatch/SSDT-4230.dsl"; sourceTree = "<group>"; };
		ED407DA51CF4FC8B00A03010 /* config_Skylake_hdmi.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Skylake_hdmi.plist; path = config_parts/config_Skylake_hdmi.plist; sourceTree = "<group>"; };
		ED407DA61CF4FC8B00A03010 /* config_Broadwell_hdmi.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Broadwell_hdmi.plist; path = config_parts/config_Broadwell_hdmi.plist; sourceTree = "<group>"; };
		ED407DA71CF4FC8B00A03010 /* config_Haswell_hdmi.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Haswell_hdmi.plist; path = config_parts/config_Haswell_hdmi.plist; sourceTree = "<group>"; };
		ED458FFA214EB9CF003071B1 /* config_HD3000-4000_dp.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "config_HD3000-4000_dp.plist"; path = "config_parts/config_HD3000-4000_dp.plist"; sourceTree = "<group>"; };
		ED458FFB214EB9D7003071B1 /* config_HD3000-4000_hdmi.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "config_HD3000-4000_hdmi.plist"; path = "config_parts/config_HD3000-4000_hdmi.plist"; sourceTree = "<group>"; };
		ED45A34D1FD2E9FA001FA163 /* SSDT-1030G1s.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-1030G1s.dsl"; path = "hotpatch/SSDT-1030G1s.dsl"; sourceTree = "<group>"; };
		ED464EDD1F89103C00592EC5 /* SSDT-USB-2x70.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-2x70.asl"; path = "hotpatch/SSDT-USB-2x70.asl"; sourceTree = "<group>"; };
		ED4BAC3C2167C68F007D7014 /* SSDT-8x0G3b.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x0G3b.dsl"; path = "hotpatch/SSDT-8x0G3b.dsl"; sourceTree = "<group>"; };
		ED4FCB5A20EE7F5700528938 /* SSDT-USB-1050-G1.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-1050-G1.asl"; path = "hotpatch/SSDT-USB-1050-G1.asl"; sourceTree = "<group>"; };
		ED507CCE1CDCDAF400E14F67 /* SSDT-USB-9x70.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-9x70.asl"; path = "hotpatch/SSDT-USB-9x70.asl"; sourceTree = "<group>"; };
		ED5777E92175979D0093A621 /* SSDT-PNLF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-PNLF.asl"; path = "hotpatch/SSDT-PNLF.asl"; sourceTree = "<group>"; };
		ED5F0FDA1CE218160097FADC /* SSDT-zbG1h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-zbG1h.dsl"; path = "hotpatch/SSDT-zbG1h.dsl"; sourceTree = "<group>"; };
		ED607C7620ED491300846672 /* SSDT-1050G1k.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-1050G1k.dsl"; path = "hotpatch/SSDT-1050G1k.dsl"; sourceTree = "<group>"; };
		ED6354D21D38643B00C77357 /* key86_data.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = key86_data.asl; path = hotpatch/include/key86_data.asl; sourceTree = "<group>"; };
		ED6354D31D38643B00C77357 /* standard_PS2K_data.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = standard_PS2K_data.asl; path = hotpatch/include/standard_PS2K_data.asl; sourceTree = "<group>"; };
		ED6354D41D38643B00C77357 /* standard_PS2K.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = standard_PS2K.asl; path = hotpatch/include/standard_PS2K.asl; sourceTree = "<group>"; };
		ED63DC271FDED5310001E2F4 /* enable_mouse.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = enable_mouse.asl; path = hotpatch/include/enable_mouse.asl; sourceTree = "<group>"; };
		ED6E36FA1D0AFCE900610C26 /* SSDT-1020G1b.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-1020G1b.dsl"; path = "hotpatch/SSDT-1020G1b.dsl"; sourceTree = "<group>"; };
		ED6E36FB1D0AFD8700610C26 /* ALC286_HDAU.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = ALC286_HDAU.asl; path = hotpatch/include/ALC286_HDAU.asl; sourceTree = "<group>"; };
		ED6E36FC1D0AFD8700610C26 /* ALC286_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = ALC286_HDEF.asl; path = hotpatch/include/ALC286_HDEF.asl; sourceTree = "<group>"; };
		ED71FE551D53978500EEF9F9 /* SSDT-9x80.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-9x80.dsl"; path = "hotpatch/SSDT-9x80.dsl"; sourceTree = "<group>"; };
		ED71FE561D53981100EEF9F9 /* SSDT-USB-9x80.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-9x80.asl"; path = "hotpatch/SSDT-USB-9x80.asl"; sourceTree = "<group>"; };
		ED7697A81CE1106D00DA0993 /* SSDT-USB-ZBook-G1.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-ZBook-G1.asl"; path = "hotpatch/SSDT-USB-ZBook-G1.asl"; sourceTree = "<group>"; };
		ED815B7D1F9B7CDF005EBCA9 /* SSDT-zbG2hA.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-zbG2hA.dsl"; path = "hotpatch/SSDT-zbG2hA.dsl"; sourceTree = "<group>"; };
		ED815B7E1F9B7E68005EBCA9 /* disable_EH01.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = disable_EH01.asl; path = hotpatch/include/disable_EH01.asl; sourceTree = "<group>"; };
		ED815B7F1F9B7E68005EBCA9 /* disable_EH01-EH02.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "disable_EH01-EH02.asl"; path = "hotpatch/include/disable_EH01-EH02.asl"; sourceTree = "<group>"; };
		ED824E191CCFC43500EFDDF2 /* install_acpi.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = install_acpi.sh; sourceTree = "<group>"; };
		ED824E1A1CCFC43500EFDDF2 /* install_acpi_include.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = install_acpi_include.sh; sourceTree = "<group>"; };
		ED824E1B1CCFC43500EFDDF2 /* make_acpi.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = make_acpi.sh; sourceTree = "<group>"; };
		ED824E1C1CCFC43500EFDDF2 /* make_config.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = make_config.sh; sourceTree = "<group>"; };
		ED824E1D1CCFC43500EFDDF2 /* build.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = build.sh; sourceTree = "<group>"; };
		ED841A021ED637AB00A0B6BB /* SSDT-RMCF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-RMCF.asl"; path = "hotpatch/SSDT-RMCF.asl"; sourceTree = "<group>"; };
		ED89CD261F393FDC00D752F9 /* config_Kabylake_hdmi.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Kabylake_hdmi.plist; path = config_parts/config_Kabylake_hdmi.plist; sourceTree = "<group>"; };
		ED8D01121E18596D009A8C63 /* SSDT-USB-ZBook-G3.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-ZBook-G3.asl"; path = "hotpatch/SSDT-USB-ZBook-G3.asl"; sourceTree = "<group>"; };
		ED8D01131E185D62009A8C63 /* SSDT-zbG3s.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-zbG3s.dsl"; path = "hotpatch/SSDT-zbG3s.dsl"; sourceTree = "<group>"; };
		ED8D28F4215A54C900F2E66E /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = kexts/LiluFriendLite.kext/Contents/Info.plist; sourceTree = "<group>"; };
		ED8D28F5215A54E600F2E66E /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = kexts/LiluFriend.kext/Contents/Info.plist; sourceTree = "<group>"; };
		ED8D4ED41E9C39C700F87978 /* SSDT-IGPU.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-IGPU.dsl"; path = "hotpatch/SSDT-IGPU.dsl"; sourceTree = "<group>"; };
		ED92D2AA1D19A4A8005C6F78 /* SSDT-USB-8x0-G3.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-8x0-G3.asl"; path = "hotpatch/SSDT-USB-8x0-G3.asl"; sourceTree = "<group>"; };
		ED97346F1C0A5F260063BCF9 /* download.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = download.sh; sourceTree = "<group>"; };
		ED9734701C0A5F370063BCF9 /* install_downloads.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = install_downloads.sh; sourceTree = "<group>"; };
		ED9755F321588F6200103E5D /* install_tools.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = install_tools.sh; sourceTree = "<group>"; };
		ED97E9121CC75350006C757A /* ALC282_HDAU.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = ALC282_HDAU.asl; path = hotpatch/include/ALC282_HDAU.asl; sourceTree = "<group>"; };
		ED97E9131CC75350006C757A /* ALC282_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = ALC282_HDEF.asl; path = hotpatch/include/ALC282_HDEF.asl; sourceTree = "<group>"; };
		ED97E9141CC75350006C757A /* ALC280_HDAU.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = ALC280_HDAU.asl; path = hotpatch/include/ALC280_HDAU.asl; sourceTree = "<group>"; };
		ED97E9151CC75350006C757A /* ALC280_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = ALC280_HDEF.asl; path = hotpatch/include/ALC280_HDEF.asl; sourceTree = "<group>"; };
		ED97E9161CC75350006C757A /* CX20724_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CX20724_HDEF.asl; path = hotpatch/include/CX20724_HDEF.asl; sourceTree = "<group>"; };
		ED97E9171CC75350006C757A /* IDT_76d1_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = IDT_76d1_HDEF.asl; path = hotpatch/include/IDT_76d1_HDEF.asl; sourceTree = "<group>"; };
		ED97E9181CC75350006C757A /* IDT_76d9_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = IDT_76d9_HDEF.asl; path = hotpatch/include/IDT_76d9_HDEF.asl; sourceTree = "<group>"; };
		ED97E9191CC75350006C757A /* IDT_76e0_HDAU.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = IDT_76e0_HDAU.asl; path = hotpatch/include/IDT_76e0_HDAU.asl; sourceTree = "<group>"; };
		ED97E91A1CC75350006C757A /* IDT_76e0_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = IDT_76e0_HDEF.asl; path = hotpatch/include/IDT_76e0_HDEF.asl; sourceTree = "<group>"; };
		ED97E91B1CC75350006C757A /* IDT_7605_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = IDT_7605_HDEF.asl; path = hotpatch/include/IDT_7605_HDEF.asl; sourceTree = "<group>"; };
		ED97E91C1CC75350006C757A /* IDT_7695_HDEF.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = IDT_7695_HDEF.asl; path = hotpatch/include/IDT_7695_HDEF.asl; sourceTree = "<group>"; };
		ED97E91D1CC75350006C757A /* disable_HECI.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = disable_HECI.asl; path = hotpatch/include/disable_HECI.asl; sourceTree = "<group>"; };
		ED97E9201CC755BE006C757A /* config_master.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_master.plist; path = config_parts/config_master.plist; sourceTree = "<group>"; };
		ED97E9211CC755BE006C757A /* config_Broadwell_dp.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Broadwell_dp.plist; path = config_parts/config_Broadwell_dp.plist; sourceTree = "<group>"; };
		ED97E9221CC755BE006C757A /* config_Haswell_dp.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Haswell_dp.plist; path = config_parts/config_Haswell_dp.plist; sourceTree = "<group>"; };
		ED97E9251CC755BE006C757A /* config_Skylake_dp.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Skylake_dp.plist; path = config_parts/config_Skylake_dp.plist; sourceTree = "<group>"; };
		ED97E92E1CC755BE006C757A /* config_non_Intel_USB3.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_non_Intel_USB3.plist; path = config_parts/config_non_Intel_USB3.plist; sourceTree = "<group>"; };
		ED97E92F1CC757D7006C757A /* SSDT-2x70.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; name = "SSDT-2x70.dsl"; path = "hotpatch/SSDT-2x70.dsl"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; };
		ED97E9301CC757D7006C757A /* SSDT-3x0G1.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; name = "SSDT-3x0G1.dsl"; path = "hotpatch/SSDT-3x0G1.dsl"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; };
		ED97E9311CC757D7006C757A /* SSDT-4x0G0.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; name = "SSDT-4x0G0.dsl"; path = "hotpatch/SSDT-4x0G0.dsl"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; };
		ED97E9321CC757D7006C757A /* SSDT-4x0G1h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4x0G1h.dsl"; path = "hotpatch/SSDT-4x0G1h.dsl"; sourceTree = "<group>"; };
		ED97E9331CC757D7006C757A /* SSDT-4x0G1i.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4x0G1i.dsl"; path = "hotpatch/SSDT-4x0G1i.dsl"; sourceTree = "<group>"; };
		ED97E9341CC757D7006C757A /* SSDT-4x0G2b.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4x0G2b.dsl"; path = "hotpatch/SSDT-4x0G2b.dsl"; sourceTree = "<group>"; };
		ED97E9351CC757D7006C757A /* SSDT-4x0G2h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4x0G2h.dsl"; path = "hotpatch/SSDT-4x0G2h.dsl"; sourceTree = "<group>"; };
		ED97E9361CC757D7006C757A /* SSDT-4x0G3s.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4x0G3s.dsl"; path = "hotpatch/SSDT-4x0G3s.dsl"; sourceTree = "<group>"; };
		ED97E9371CC757D7006C757A /* SSDT-4x30.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4x30.dsl"; path = "hotpatch/SSDT-4x30.dsl"; sourceTree = "<group>"; };
		ED97E9381CC757D7006C757A /* SSDT-4x40.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-4x40.dsl"; path = "hotpatch/SSDT-4x40.dsl"; sourceTree = "<group>"; };
		ED97E9391CC757D7006C757A /* SSDT-6x60.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-6x60.dsl"; path = "hotpatch/SSDT-6x60.dsl"; sourceTree = "<group>"; };
		ED97E93A1CC757D7006C757A /* SSDT-6x70.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-6x70.dsl"; path = "hotpatch/SSDT-6x70.dsl"; sourceTree = "<group>"; };
		ED97E93B1CC757D7006C757A /* SSDT-8x0G1h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x0G1h.dsl"; path = "hotpatch/SSDT-8x0G1h.dsl"; sourceTree = "<group>"; };
		ED97E93C1CC757D7006C757A /* SSDT-8x0G1i.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x0G1i.dsl"; path = "hotpatch/SSDT-8x0G1i.dsl"; sourceTree = "<group>"; };
		ED97E93D1CC757D7006C757A /* SSDT-8x0G2b.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x0G2b.dsl"; path = "hotpatch/SSDT-8x0G2b.dsl"; sourceTree = "<group>"; };
		ED97E93E1CC757D7006C757A /* SSDT-8x0G2h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x0G2h.dsl"; path = "hotpatch/SSDT-8x0G2h.dsl"; sourceTree = "<group>"; };
		ED97E93F1CC757D7006C757A /* SSDT-8x60.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x60.dsl"; path = "hotpatch/SSDT-8x60.dsl"; sourceTree = "<group>"; };
		ED97E9401CC757D7006C757A /* SSDT-8x70.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x70.dsl"; path = "hotpatch/SSDT-8x70.dsl"; sourceTree = "<group>"; };
		ED97E9411CC757D7006C757A /* SSDT-9x70.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-9x70.dsl"; path = "hotpatch/SSDT-9x70.dsl"; sourceTree = "<group>"; };
		ED97E9421CC757D7006C757A /* SSDT-1040G1h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; name = "SSDT-1040G1h.dsl"; path = "hotpatch/SSDT-1040G1h.dsl"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; };
		ED97E9431CC757D7006C757A /* SSDT-zbG2h.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-zbG2h.dsl"; path = "hotpatch/SSDT-zbG2h.dsl"; sourceTree = "<group>"; };
		ED97E9441CC757D7006C757A /* SSDT-HACK.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-HACK.asl"; path = "hotpatch/SSDT-HACK.asl"; sourceTree = "<group>"; };
		ED97E9451CC757D7006C757A /* SSDT-USB-4x0-G2.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-4x0-G2.asl"; path = "hotpatch/SSDT-USB-4x0-G2.asl"; sourceTree = "<group>"; };
		ED97E9461CC757D7006C757A /* SSDT-USB-8x0-G1.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-8x0-G1.asl"; path = "hotpatch/SSDT-USB-8x0-G1.asl"; sourceTree = "<group>"; };
		ED97E9471CC757D7006C757A /* SSDT-USB-8x0-G2.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-8x0-G2.asl"; path = "hotpatch/SSDT-USB-8x0-G2.asl"; sourceTree = "<group>"; };
		ED97E94A1CC757D7006C757A /* SSDT-USB-4x0-G3.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-4x0-G3.asl"; path = "hotpatch/SSDT-USB-4x0-G3.asl"; sourceTree = "<group>"; };
		ED97E94C1CC757D7006C757A /* SSDT-USB-6x60.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-6x60.asl"; path = "hotpatch/SSDT-USB-6x60.asl"; sourceTree = "<group>"; };
		ED97E94D1CC757D7006C757A /* SSDT-USB-8x60.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-8x60.asl"; path = "hotpatch/SSDT-USB-8x60.asl"; sourceTree = "<group>"; };
		ED97E94E1CC757D7006C757A /* SSDT-BATT-G3.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-BATT-G3.asl"; path = "hotpatch/SSDT-BATT-G3.asl"; sourceTree = "<group>"; };
		ED97E94F1CC757D7006C757A /* SSDT-USB-6x70.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-6x70.asl"; path = "hotpatch/SSDT-USB-6x70.asl"; sourceTree = "<group>"; };
		ED97E9501CC757D7006C757A /* SSDT-USB-4x40s.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-4x40s.asl"; path = "hotpatch/SSDT-USB-4x40s.asl"; sourceTree = "<group>"; };
		ED97E9511CC757D7006C757A /* SSDT-FANQ.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-FANQ.dsl"; path = "hotpatch/SSDT-FANQ.dsl"; sourceTree = "<group>"; };
		ED97E9521CC757D7006C757A /* SSDT-BATT.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-BATT.asl"; path = "hotpatch/SSDT-BATT.asl"; sourceTree = "<group>"; };
		ED97E9531CC757D7006C757A /* SSDT-BATT-G2.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-BATT-G2.asl"; path = "hotpatch/SSDT-BATT-G2.asl"; sourceTree = "<group>"; };
		ED97E9541CC757D7006C757A /* SSDT-USB-4x30s.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-4x30s.asl"; path = "hotpatch/SSDT-USB-4x30s.asl"; sourceTree = "<group>"; };
		ED97E9551CC757D7006C757A /* SSDT-FANORIG.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-FANORIG.dsl"; path = "hotpatch/SSDT-FANORIG.dsl"; sourceTree = "<group>"; };
		ED97E9561CC757D7006C757A /* SSDT-FANREAD.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-FANREAD.dsl"; path = "hotpatch/SSDT-FANREAD.dsl"; sourceTree = "<group>"; };
		ED97E9571CC757D7006C757A /* SSDT-KEY87.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-KEY87.asl"; path = "hotpatch/SSDT-KEY87.asl"; sourceTree = "<group>"; };
		ED97E9581CC757D7006C757A /* SSDT-KEY102.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-KEY102.asl"; path = "hotpatch/SSDT-KEY102.asl"; sourceTree = "<group>"; };
		ED9CD3A61F376730004C5906 /* SSDT-USB-4x0-G0.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-4x0-G0.asl"; path = "hotpatch/SSDT-USB-4x0-G0.asl"; sourceTree = "<group>"; };
		ED9E98FB1CC905FA0032E2A3 /* SSDT-zbG2b.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-zbG2b.dsl"; path = "hotpatch/SSDT-zbG2b.dsl"; sourceTree = "<group>"; };
		EDA152011CC82A4B0040A5C0 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
		EDA70AD21CEFEE6B009D2AA7 /* SSDT-5x30.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-5x30.dsl"; path = "hotpatch/SSDT-5x30.dsl"; sourceTree = "<group>"; };
		EDA9D5501D2D48C600DA4204 /* SSDT-6x0G2s.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-6x0G2s.dsl"; path = "hotpatch/SSDT-6x0G2s.dsl"; sourceTree = "<group>"; };
		EDAB27061D3953E800FD5D06 /* SSDT-USB-640-G2.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-640-G2.asl"; path = "hotpatch/SSDT-USB-640-G2.asl"; sourceTree = "<group>"; };
		EDB4C8A91F69720900DC39F3 /* SSDT-8x0G4k.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x0G4k.dsl"; path = "hotpatch/SSDT-8x0G4k.dsl"; sourceTree = "<group>"; };
		EDB4C8AB1F6972A500DC39F3 /* SSDT-USB-8x0-G4.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-8x0-G4.asl"; path = "hotpatch/SSDT-USB-8x0-G4.asl"; sourceTree = "<group>"; };
		EDB4C8AC1F69738900DC39F3 /* SSDT-RP05_PXSX_RDSS.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-RP05_PXSX_RDSS.asl"; path = "hotpatch/SSDT-RP05_PXSX_RDSS.asl"; sourceTree = "<group>"; };
		EDB7D5AE1FE014E500D6DF39 /* config_Haswell_no_hdmi_dp.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = config_Haswell_no_hdmi_dp.plist; path = config_parts/config_Haswell_no_hdmi_dp.plist; sourceTree = "<group>"; };
		EDB9A1031ECCE6FE002297BB /* SSDT-USBX.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USBX.asl"; path = "hotpatch/SSDT-USBX.asl"; sourceTree = "<group>"; };
		EDBB1BE71E993AAA00F49BDE /* SSDT-USB-4x0-G4.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-4x0-G4.asl"; path = "hotpatch/SSDT-USB-4x0-G4.asl"; sourceTree = "<group>"; };
		EDBB3F8D1FDAD6AC00CF45FC /* SSDT-USB-1030-G1.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-1030-G1.asl"; path = "hotpatch/SSDT-USB-1030-G1.asl"; sourceTree = "<group>"; };
		EDD906B81F8DC3700044EC08 /* makefile.d */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.dtrace; path = makefile.d; sourceTree = "<group>"; };
		EDD906B91F8DC3BE0044EC08 /* find_dependencies.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = find_dependencies.sh; sourceTree = "<group>"; };
		EDDC92011FD44C040071D2C2 /* SSDT-ALS0.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-ALS0.asl"; path = "hotpatch/SSDT-ALS0.asl"; sourceTree = "<group>"; };
		EDE939211D1AF9F0009B5E36 /* SSDT-USB-8x70.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-8x70.asl"; path = "hotpatch/SSDT-USB-8x70.asl"; sourceTree = "<group>"; };
		EDEED57B1D412694005A5AC2 /* SSDT-USB-4x0-G1.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-4x0-G1.asl"; path = "hotpatch/SSDT-USB-4x0-G1.asl"; sourceTree = "<group>"; };
		EDF34038214F173900F427D4 /* SSDT-USWE.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USWE.asl"; path = "hotpatch/SSDT-USWE.asl"; sourceTree = "<group>"; };
		EDF5303F1DB5766700CAE028 /* SSDT-USB-1040-G3.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-1040-G3.asl"; path = "hotpatch/SSDT-USB-1040-G3.asl"; sourceTree = "<group>"; };
		EDF530401DB578C000CAE028 /* SSDT-1040G3s.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; name = "SSDT-1040G3s.dsl"; path = "hotpatch/SSDT-1040G3s.dsl"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; };
		EDFBFBC91E1555C000200E68 /* SSDT-USB-ZBook-G2.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-USB-ZBook-G2.asl"; path = "hotpatch/SSDT-USB-ZBook-G2.asl"; sourceTree = "<group>"; };
		EDFC50DC1D199FBA0053A9FC /* SSDT-8x0G3s.dsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "SSDT-8x0G3s.dsl"; path = "hotpatch/SSDT-8x0G3s.dsl"; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXGroup section */
		84596D291E8CBD780005C4DB /* AppleBacklightInjector.kext */ = {
			isa = PBXGroup;
			children = (
				84596D2A1E8CBD980005C4DB /* Info.plist */,
			);
			name = AppleBacklightInjector.kext;
			sourceTree = "<group>";
		};
		847F5ED91B508AFC00825CE8 /* kexts */ = {
			isa = PBXGroup;
			children = (
				ED8D28F3215A53F000F2E66E /* LiluFriend.kext */,
				ED8D28F2215A53E400F2E66E /* LiluFriendLite.kext */,
				84596D291E8CBD780005C4DB /* AppleBacklightInjector.kext */,
			);
			name = kexts;
			sourceTree = "<group>";
		};
		84B9D50E16FFE58F002CD441 = {
			isa = PBXGroup;
			children = (
				EDA152011CC82A4B0040A5C0 /* README.md */,
				84B9D52516FFE684002CD441 /* License.md */,
				ED97346F1C0A5F260063BCF9 /* download.sh */,
				ED9755F321588F6200103E5D /* install_tools.sh */,
				ED9734701C0A5F370063BCF9 /* install_downloads.sh */,
				84B9D52616FFE684002CD441 /* makefile */,
				EDD906B81F8DC3700044EC08 /* makefile.d */,
				EDD906B91F8DC3BE0044EC08 /* find_dependencies.sh */,
				ED824E1D1CCFC43500EFDDF2 /* build.sh */,
				ED824E191CCFC43500EFDDF2 /* install_acpi.sh */,
				ED824E1E1CCFC43F00EFDDF2 /* generated scripts */,
				ED1837421C0A4B1200A5A3DA /* merge_plist.sh */,
				ED18374F1C0A4B5D00A5A3DA /* audio */,
				EDB940BA1C04D44500480024 /* hotpatch */,
				847F5ED91B508AFC00825CE8 /* kexts */,
			);
			sourceTree = "<group>";
		};
		ED18374F1C0A4B5D00A5A3DA /* audio */ = {
			isa = PBXGroup;
			children = (
				ED18374E1C0A4B1200A5A3DA /* README.txt */,
			);
			name = audio;
			sourceTree = "<group>";
		};
		ED824E1E1CCFC43F00EFDDF2 /* generated scripts */ = {
			isa = PBXGroup;
			children = (
				ED824E1A1CCFC43500EFDDF2 /* install_acpi_include.sh */,
				ED824E1B1CCFC43500EFDDF2 /* make_acpi.sh */,
				ED824E1C1CCFC43500EFDDF2 /* make_config.sh */,
			);
			name = "generated scripts";
			sourceTree = "<group>";
		};
		ED8D28F2215A53E400F2E66E /* LiluFriendLite.kext */ = {
			isa = PBXGroup;
			children = (
				ED8D28F4215A54C900F2E66E /* Info.plist */,
			);
			name = LiluFriendLite.kext;
			sourceTree = "<group>";
		};
		ED8D28F3215A53F000F2E66E /* LiluFriend.kext */ = {
			isa = PBXGroup;
			children = (
				ED8D28F5215A54E600F2E66E /* Info.plist */,
			);
			name = LiluFriend.kext;
			sourceTree = "<group>";
		};
		ED923A291CC9406900BD18E2 /* models */ = {
			isa = PBXGroup;
			children = (
				ED97E9371CC757D7006C757A /* SSDT-4x30.dsl */,
				ED341D5F1FA370BC00455E78 /* SSDT-4230.dsl */,
				ED97E9381CC757D7006C757A /* SSDT-4x40.dsl */,
				EDA70AD21CEFEE6B009D2AA7 /* SSDT-5x30.dsl */,
				8497866A1E9DBFBB0020BEF8 /* SSDT-2x60.dsl */,
				ED97E9391CC757D7006C757A /* SSDT-6x60.dsl */,
				ED97E93F1CC757D7006C757A /* SSDT-8x60.dsl */,
				ED97E92F1CC757D7006C757A /* SSDT-2x70.dsl */,
				ED97E93A1CC757D7006C757A /* SSDT-6x70.dsl */,
				ED97E9401CC757D7006C757A /* SSDT-8x70.dsl */,
				ED97E9411CC757D7006C757A /* SSDT-9x70.dsl */,
				ED71FE551D53978500EEF9F9 /* SSDT-9x80.dsl */,
				ED97E9311CC757D7006C757A /* SSDT-4x0G0.dsl */,
				ED97E9301CC757D7006C757A /* SSDT-3x0G1.dsl */,
				ED97E9331CC757D7006C757A /* SSDT-4x0G1i.dsl */,
				ED97E93C1CC757D7006C757A /* SSDT-8x0G1i.dsl */,
				ED97E9321CC757D7006C757A /* SSDT-4x0G1h.dsl */,
				8404DCC01FEFF6D20073E620 /* SSDT-450G1h.dsl */,
				ED023EB31CFDC75C00C5F3A2 /* SSDT-6x0G1h.dsl */,
				ED97E93B1CC757D7006C757A /* SSDT-8x0G1h.dsl */,
				ED97E9421CC757D7006C757A /* SSDT-1040G1h.dsl */,
				ED97E9351CC757D7006C757A /* SSDT-4x0G2h.dsl */,
				ED97E93E1CC757D7006C757A /* SSDT-8x0G2h.dsl */,
				ED97E9341CC757D7006C757A /* SSDT-4x0G2b.dsl */,
				ED97E93D1CC757D7006C757A /* SSDT-8x0G2b.dsl */,
				ED4BAC3C2167C68F007D7014 /* SSDT-8x0G3b.dsl */,
				ED97E9361CC757D7006C757A /* SSDT-4x0G3s.dsl */,
				EDA9D5501D2D48C600DA4204 /* SSDT-6x0G2s.dsl */,
				EDFC50DC1D199FBA0053A9FC /* SSDT-8x0G3s.dsl */,
				ED6E36FA1D0AFCE900610C26 /* SSDT-1020G1b.dsl */,
				ED45A34D1FD2E9FA001FA163 /* SSDT-1030G1s.dsl */,
				EDF530401DB578C000CAE028 /* SSDT-1040G3s.dsl */,
				ED607C7620ED491300846672 /* SSDT-1050G1k.dsl */,
				ED5F0FDA1CE218160097FADC /* SSDT-zbG1h.dsl */,
				ED97E9431CC757D7006C757A /* SSDT-zbG2h.dsl */,
				ED815B7D1F9B7CDF005EBCA9 /* SSDT-zbG2hA.dsl */,
				ED9E98FB1CC905FA0032E2A3 /* SSDT-zbG2b.dsl */,
				ED8D01131E185D62009A8C63 /* SSDT-zbG3s.dsl */,
				84F681FF1E74D6D80097D85D /* SSDT-4x0G4k.dsl */,
				EDB4C8A91F69720900DC39F3 /* SSDT-8x0G4k.dsl */,
			);
			name = models;
			sourceTree = "<group>";
		};
		ED923A2A1CC9407E00BD18E2 /* usb customization */ = {
			isa = PBXGroup;
			children = (
				ED2C0E751FE2D81000EFE2D5 /* SSDT-USB-Unknown.asl */,
				ED97E9541CC757D7006C757A /* SSDT-USB-4x30s.asl */,
				ED97E9501CC757D7006C757A /* SSDT-USB-4x40s.asl */,
				ED97E94C1CC757D7006C757A /* SSDT-USB-6x60.asl */,
				ED97E94D1CC757D7006C757A /* SSDT-USB-8x60.asl */,
				ED464EDD1F89103C00592EC5 /* SSDT-USB-2x70.asl */,
				ED97E94F1CC757D7006C757A /* SSDT-USB-6x70.asl */,
				EDE939211D1AF9F0009B5E36 /* SSDT-USB-8x70.asl */,
				ED507CCE1CDCDAF400E14F67 /* SSDT-USB-9x70.asl */,
				ED71FE561D53981100EEF9F9 /* SSDT-USB-9x80.asl */,
				ED9CD3A61F376730004C5906 /* SSDT-USB-4x0-G0.asl */,
				EDEED57B1D412694005A5AC2 /* SSDT-USB-4x0-G1.asl */,
				ED17156E1D070F3C00219AC6 /* SSDT-USB-6x0-G1.asl */,
				ED97E9461CC757D7006C757A /* SSDT-USB-8x0-G1.asl */,
				ED97E9451CC757D7006C757A /* SSDT-USB-4x0-G2.asl */,
				EDAB27061D3953E800FD5D06 /* SSDT-USB-640-G2.asl */,
				ED97E9471CC757D7006C757A /* SSDT-USB-8x0-G2.asl */,
				ED97E94A1CC757D7006C757A /* SSDT-USB-4x0-G3.asl */,
				ED92D2AA1D19A4A8005C6F78 /* SSDT-USB-8x0-G3.asl */,
				ED7697A81CE1106D00DA0993 /* SSDT-USB-ZBook-G1.asl */,
				EDFBFBC91E1555C000200E68 /* SSDT-USB-ZBook-G2.asl */,
				ED8D01121E18596D009A8C63 /* SSDT-USB-ZBook-G3.asl */,
				845E536C1D0D34880069A1F9 /* SSDT-USB-1020-G1.asl */,
				EDBB3F8D1FDAD6AC00CF45FC /* SSDT-USB-1030-G1.asl */,
				EDF5303F1DB5766700CAE028 /* SSDT-USB-1040-G3.asl */,
				ED4FCB5A20EE7F5700528938 /* SSDT-USB-1050-G1.asl */,
				EDBB1BE71E993AAA00F49BDE /* SSDT-USB-4x0-G4.asl */,
				EDB4C8AB1F6972A500DC39F3 /* SSDT-USB-8x0-G4.asl */,
			);
			name = "usb customization";
			sourceTree = "<group>";
		};
		ED97E91F1CC75441006C757A /* config parts */ = {
			isa = PBXGroup;
			children = (
				ED97E9201CC755BE006C757A /* config_master.plist */,
				ED97E92E1CC755BE006C757A /* config_non_Intel_USB3.plist */,
				ED458FFA214EB9CF003071B1 /* config_HD3000-4000_dp.plist */,
				ED458FFB214EB9D7003071B1 /* config_HD3000-4000_hdmi.plist */,
				ED97E9221CC755BE006C757A /* config_Haswell_dp.plist */,
				ED407DA71CF4FC8B00A03010 /* config_Haswell_hdmi.plist */,
				EDB7D5AE1FE014E500D6DF39 /* config_Haswell_no_hdmi_dp.plist */,
				ED97E9211CC755BE006C757A /* config_Broadwell_dp.plist */,
				ED407DA61CF4FC8B00A03010 /* config_Broadwell_hdmi.plist */,
				ED97E9251CC755BE006C757A /* config_Skylake_dp.plist */,
				ED407DA51CF4FC8B00A03010 /* config_Skylake_hdmi.plist */,
				84F681FD1E74D52C0097D85D /* config_Kabylake_dp.plist */,
				ED89CD261F393FDC00D752F9 /* config_Kabylake_hdmi.plist */,
			);
			name = "config parts";
			sourceTree = "<group>";
		};
		EDA987001CC71F8D00D10BEC /* include */ = {
			isa = PBXGroup;
			children = (
				ED815B7F1F9B7E68005EBCA9 /* disable_EH01-EH02.asl */,
				ED815B7E1F9B7E68005EBCA9 /* disable_EH01.asl */,
				ED6354D41D38643B00C77357 /* standard_PS2K.asl */,
				8497866B1E9DC69F0020BEF8 /* key86_PS2K.asl */,
				ED6354D31D38643B00C77357 /* standard_PS2K_data.asl */,
				ED6354D21D38643B00C77357 /* key86_data.asl */,
				ED63DC271FDED5310001E2F4 /* enable_mouse.asl */,
				ED97E91D1CC75350006C757A /* disable_HECI.asl */,
				ED97E9151CC75350006C757A /* ALC280_HDEF.asl */,
				ED97E9141CC75350006C757A /* ALC280_HDAU.asl */,
				ED97E9131CC75350006C757A /* ALC282_HDEF.asl */,
				ED97E9121CC75350006C757A /* ALC282_HDAU.asl */,
				ED6E36FC1D0AFD8700610C26 /* ALC286_HDEF.asl */,
				ED6E36FB1D0AFD8700610C26 /* ALC286_HDAU.asl */,
				ED97E91B1CC75350006C757A /* IDT_7605_HDEF.asl */,
				ED97E91C1CC75350006C757A /* IDT_7695_HDEF.asl */,
				ED97E9171CC75350006C757A /* IDT_76d1_HDEF.asl */,
				ED97E9181CC75350006C757A /* IDT_76d9_HDEF.asl */,
				ED97E91A1CC75350006C757A /* IDT_76e0_HDEF.asl */,
				ED97E9191CC75350006C757A /* IDT_76e0_HDAU.asl */,
				84F682001E74DC9F0097D85D /* CX8200_HDEF.asl */,
				ED97E9161CC75350006C757A /* CX20724_HDEF.asl */,
			);
			name = include;
			sourceTree = "<group>";
		};
		EDB940BA1C04D44500480024 /* hotpatch */ = {
			isa = PBXGroup;
			children = (
				ED923A291CC9406900BD18E2 /* models */,
				EDA987001CC71F8D00D10BEC /* include */,
				ED923A2A1CC9407E00BD18E2 /* usb customization */,
				ED97E9441CC757D7006C757A /* SSDT-HACK.asl */,
				ED841A021ED637AB00A0B6BB /* SSDT-RMCF.asl */,
				ED8D4ED41E9C39C700F87978 /* SSDT-IGPU.dsl */,
				ED5777E92175979D0093A621 /* SSDT-PNLF.asl */,
				EDDC92011FD44C040071D2C2 /* SSDT-ALS0.asl */,
				ED334FFC1F8D474E00202D59 /* SSDT-PEGP_DGFX_RDSS.asl */,
				ED334FFB1F8D3ED100202D59 /* SSDT-PEG0_PEGP_RDSS.asl */,
				84D207AE1E64F63F0083EC17 /* SSDT-RP05_DGFX_RDSS.asl */,
				84D207AD1E64F63F0083EC17 /* SSDT-RP01_PEGP_RDSS.asl */,
				84AB159A1E9AF5AD005206A1 /* SSDT-RP01_PXSX_RDSS.asl */,
				EDB4C8AC1F69738900DC39F3 /* SSDT-RP05_PXSX_RDSS.asl */,
				841F11E31E9FA7B000BE33AF /* SSDT-RP05_PEGP_RDSS.asl */,
				ED2500561CF67CE6006A5FB7 /* SSDT-EH01.asl */,
				ED2500571CF67CE6006A5FB7 /* SSDT-EH02.asl */,
				ED2500551CF67CE6006A5FB7 /* SSDT-XHC.asl */,
				EDB9A1031ECCE6FE002297BB /* SSDT-USBX.asl */,
				ED97E9521CC757D7006C757A /* SSDT-BATT.asl */,
				ED97E9531CC757D7006C757A /* SSDT-BATT-G2.asl */,
				ED97E94E1CC757D7006C757A /* SSDT-BATT-G3.asl */,
				84F681FC1E74CDD30097D85D /* SSDT-BATT-G4.asl */,
				ED97E9561CC757D7006C757A /* SSDT-FANREAD.dsl */,
				ED97E9551CC757D7006C757A /* SSDT-FANORIG.dsl */,
				ED97E9511CC757D7006C757A /* SSDT-FANQ.dsl */,
				ED97E9571CC757D7006C757A /* SSDT-KEY87.asl */,
				ED97E9581CC757D7006C757A /* SSDT-KEY102.asl */,
				EDF34038214F173900F427D4 /* SSDT-USWE.asl */,
				ED97E91F1CC75441006C757A /* config parts */,
			);
			name = hotpatch;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXLegacyTarget section */
		84B9D51316FFE58F002CD441 /* Patches */ = {
			isa = PBXLegacyTarget;
			buildArgumentsString = "$(ACTION)";
			buildConfigurationList = 84B9D51616FFE58F002CD441 /* Build configuration list for PBXLegacyTarget "Patches" */;
			buildPhases = (
			);
			buildToolPath = /usr/bin/make;
			dependencies = (
			);
			name = Patches;
			passBuildSettingsInEnvironment = 1;
			productName = Patches;
		};
/* End PBXLegacyTarget section */

/* Begin PBXProject section */
		84B9D50F16FFE58F002CD441 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0460;
				ORGANIZATIONNAME = RehabMan;
			};
			buildConfigurationList = 84B9D51216FFE58F002CD441 /* Build configuration list for PBXProject "Patches" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = 84B9D50E16FFE58F002CD441;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				84B9D51316FFE58F002CD441 /* Patches */,
			);
		};
/* End PBXProject section */

/* Begin XCBuildConfiguration section */
		84B9D51516FFE58F002CD441 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = YES;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.8;
				SDKROOT = macosx;
			};
			name = Release;
		};
		84B9D51816FFE58F002CD441 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				OTHER_CFLAGS = "";
				OTHER_LDFLAGS = "";
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		84B9D51216FFE58F002CD441 /* Build configuration list for PBXProject "Patches" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				84B9D51516FFE58F002CD441 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		84B9D51616FFE58F002CD441 /* Build configuration list for PBXLegacyTarget "Patches" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				84B9D51816FFE58F002CD441 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 84B9D50F16FFE58F002CD441 /* Project object */;
}


================================================
FILE: Patches.xcodeproj/project.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
   version = "1.0">
   <FileRef
      location = "self:ProBook 4x30s Patches.xcodeproj">
   </FileRef>
</Workspace>


================================================
FILE: README.md
================================================
## DSDT patches for HP ProBook/EliteBook/ZBook series laptops

This set of patches/makefile can be used to patch your HP ProBook/EliteBook/ZBook DSDTs.  There are also post install scripts that can be used to create and install the kexts the are required for this laptop series.

A wide range of these HP laptops is supported, including Sandy Bridge, Ivy Bridge, Haswell, Broadwell, and now Skylake.

Although older versions of the repo had scripts to automate patching of DSDT/SSDTs, the current version does it all via config.plist hotpatching and SSDT-HACK.

Please refer to this guide thread on tonymacx86.com for a step-by-step process, feedback, and questions:

http://www.tonymacx86.com/el-capitan-laptop-guides/189416-guide-hp-probook-elitebook-zbook-using-clover-uefi-hotpatch-10-11-a.html


### Original non-hotpatch guide

The original patches for the 4x30/4x40 series are still present, and available through MaciASL as a patch source.

The guide for using those patches is still in the WiKi here:

https://github.com/RehabMan/HP-ProBook-4x30s-DSDT-Patch/wiki/How-to-patch-your-DSDT


### Change Log:

2018-09-01

- completed major changes for Mojave and AppleALC.kext

2016-04-20

- initial creation of this README

- current code here is a work-in-progress.



================================================
FILE: Resources_ProBook/README.txt
================================================
LayoutID and PathMapID mappings for AppleHDA_ProBook.kext and applicable AppleALC.kext

ALC282: 33 (was 3 prior to 10.14)
	AppleALC: 3,4,13,27,28,29,76,86,127

ALC280: 4
	AppleALC: 3,(4),11,13,15

CX20724: 5(Mirone version) or 7(InsanelyDeepak version)
	AppleALC: 3(Mirone), 13(InsanelyDeepak)
    per @y010204025, AppleALC layout-id 3 does not allow headphones to work, so switched to layout-id 13

ALC286: 6
	AppleALC: 3

CX8200: 20 (extracted from AppleALC)
	AppleALC: 3

IDT_76d1 (IDT92HD87B1_3): 122 (was 12 prior to 10.14)
	AppleALC: 12, 13

IDT_76d9 (IDT92HD87B2_4): 123 (was 13 prior to 10.14)
	AppleALC: 13

IDT_76e0 (IDT92HD91BXX): 17
	AppleALC: 3, 12(envy), 13, 33, 84
	per @atomfried AppleALC layout-id 3 does not work with Haswell ZBook G1, so switched to layout-id 13

IDT_7605 (IDT92HD81B1X5): 128 (was 18 prior to 10.14) (has alternate: IDT92HD87B1)
	AppleALC: 3, 11, (12), 20, 21, 28

IDT_7695 (IDT92HD95): 19
	AppleALC: 12


Note: Layout-id 14,15,16 may not be able to be used due to AppleHDA not using them (there may be a whitelist)

Note: macOS Mojave removes layout-id that were used: 3, 12, 13, 18.

Note: AppleALC removes layout-id restriction with a bit of trickery/patching.


--

Model/Audio mapping


ALC282: 4x0G2 Haswell, 8x0G2 Haswell, 4x0G2 Broadwell

ALC280: Zbook G2 Haswell/Broadwell, HP Folio 9480m Haswell, 8x0G2 Broadwell

ALC286: EliteBook Folio 1020 G1/Broadwell

CX20724: 4x0sG3 Skylake

76d1: 4x30s,

76d9: 4x40s

76e0: 4x0G0, 4x0G1, 9x70m, 4x0G1, 8x0G1, 1040G1,

7605: 6x60s, 6x70s, 6x70AMD, 6x60wAMD, 6x60wNVIDIA, 8x70p, 2x70

7695: 3x0G1,

CX8200: 4x0s G4 Kabylake


--

Note regarding ALC280 combo jack and difference between original and for G2.

From Mirone: http://www.tonymacx86.com/el-capitan-laptop-support/191207-hp-elitebook-g2-alc280-combo-jack-wip-7.html#post1242688

To the kext to ALC280 of @zirkaiva I had to add in: Headphones/MuteGPIO=4 in Layout-ID, to your Headphone work, to be honest this is an exception for most the ALC codec for Laptops works without it in Layout-ID, and this is your case I should have tried the first time, When you said that ALC280_Original worked, least headphones. We have two slightly different scenarios, the first in which HP Elitebook 9480m Folio need Headphones/MuteGPIO=4 in Layout-ID, for your Headphone works and the second where HP Elitebook G2, not must have these values in its Layout-ID so your headset work correctly, RehabMan keep this in mind when updating your repository.


================================================
FILE: Resources_ProBook/codec_dump_CX20724.txt
================================================
Codec: Conexant CX20724
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x14f150f4
Subsystem Id: 0x103c8100
Revision Id: 0x100101
No Modem Function Group found
Default PCM:
    rates [0x140]: 48000 96000
    bits [0xa]: 16 24
    formats [0x1]: PCM
Default Amp-In caps: N/A
Default Amp-Out caps: N/A
State of AFG node 0x01:
  Power states:  D0 D1 D2 D3 D3cold S3D3cold CLKSTOP EPSS
  Power: setting=D0, actual=D0
GPIO: io=7, o=0, i=0, unsolicited=1, wake=1
  IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[5]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[6]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
Node 0x10 [Audio Output] wcaps 0xc1d: Stereo Amp-Out R/L
  Control: name="Headphone Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Headphone Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Device: name="CX20724 Analog", type="Audio", device=0
  Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1
  Amp-Out vals:  [0x80 0x80]
  Converter: stream=1, channel=0
  PCM:
    rates [0x540]: 48000 96000 192000
    bits [0xa]: 16 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x11 [Audio Output] wcaps 0xc1d: Stereo Amp-Out R/L
  Control: name="Speaker Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Speaker Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1
  Amp-Out vals:  [0x45 0x45]
  Converter: stream=1, channel=0
  PCM:
    rates [0x540]: 48000 96000 192000
    bits [0xa]: 16 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x12 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out
  Control: name="Beep Playback Volume", index=0, device=0
    ControlAmp: chs=1, dir=Out, idx=0, ofs=0
  Control: name="Beep Playback Switch", index=0, device=0
    ControlAmp: chs=1, dir=Out, idx=0, ofs=0
  Amp-Out caps: ofs=0x07, nsteps=0x07, stepsize=0x0f, mute=0
  Amp-Out vals:  [0x03]
Node 0x13 [Audio Input] wcaps 0x100d1b: Stereo Amp-In R/L
  Control: name="Capture Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=1, ofs=0
  Control: name="Capture Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=1, ofs=0
  Device: name="CX20724 Analog", type="Audio", device=0
  Amp-In caps: ofs=0x4a, nsteps=0x50, stepsize=0x03, mute=1
  Amp-In vals:  [0x80 0x80] [0x50 0x50] [0x50 0x50] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]
  Converter: stream=1, channel=0
  SDI-Select: 0
  PCM:
    rates [0x140]: 48000 96000
    bits [0xa]: 16 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 7
     0x18 0x19 0x1a* 0x15 0x1d 0x1e 0x1f
Node 0x14 [Audio Input] wcaps 0x100d1b: Stereo Amp-In R/L
  Amp-In caps: ofs=0x4a, nsteps=0x50, stepsize=0x03, mute=1
  Amp-In vals:  [0x4a 0x4a] [0x4a 0x4a] [0x4a 0x4a]
  Converter: stream=0, channel=0
  SDI-Select: 0
  PCM:
    rates [0x140]: 48000 96000
    bits [0xa]: 16 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 3
     0x1a* 0x15 0x1f
Node 0x15 [Vendor Defined Widget] wcaps 0xf0050b: Stereo Amp-In
  Amp-In caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1
  Amp-In vals:  [0x4a 0x4a] [0x4a 0x4a]
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x10* 0x11
Node 0x16 [Pin Complex] wcaps 0x400581: Stereo
  Pincap 0x0001001c: OUT HP EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x03211040: [Jack] HP Out at Ext Left
    Conn = 1/8, Color = Black
    DefAssociation = 0x4, Sequence = 0x0
  Pin-ctls: 0xc0: OUT HP
  Unsolicited: tag=01, enabled=1
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x10* 0x11
Node 0x17 [Pin Complex] wcaps 0x400501: Stereo
  Pincap 0x00010010: OUT EAPD
  EAPD 0x2: EAPD
  Pin Default 0x91170110: [Fixed] Speaker at Int Rear
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x10 0x11*
Node 0x18 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00001324: IN Detect
    Vref caps: HIZ 50 80
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00: VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  Control: name="Mic Boost Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00001324: IN Detect
    Vref caps: HIZ 50 80
  Pin Default 0x03a11030: [Jack] Mic at Ext Left
    Conn = 1/8, Color = Black
    DefAssociation = 0x3, Sequence = 0x0
  Pin-ctls: 0x24: IN VREF_80
  Unsolicited: tag=02, enabled=1
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x1a [Pin Complex] wcaps 0x40040b: Stereo Amp-In
  Control: name="Internal Mic Boost Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000020: IN
  Pin Default 0x95a60120: [Fixed] Mic at Int Top
    Conn = Digital, Color = Unknown
    DefAssociation = 0x2, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x20: IN
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x1b [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1d [Pin Complex] wcaps 0x40058b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00011334: IN OUT EAPD Detect
    Vref caps: HIZ 50 80
  EAPD 0x2: EAPD
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x10* 0x11
Node 0x1e [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000024: IN Detect
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x1f [Pin Complex] wcaps 0x40040b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000020: IN
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x20 [Audio Output] wcaps 0x611: Stereo Digital
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  IEC Coding Type: 0x0
  PCM:
    rates [0x540]: 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x5]: PCM AC3
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x21 [Pin Complex] wcaps 0x400701: Stereo Digital
  Pincap 0x00000010: OUT
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x20
Node 0x22 [Pin Complex] wcaps 0x400501: Stereo
  Pincap 0x00010010: OUT EAPD
  EAPD 0x2: EAPD
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x10* 0x11


================================================
FILE: Resources_ProBook/codec_dump_alc280_elitebook_g2_broadwell.txt
================================================
Codec: Realtek ALC3228
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10ec0280
Subsystem Id: 0x103c2277
Revision Id: 0x100003
No Modem Function Group found
Default PCM:
    rates [0x5f0]: 32000 44100 48000 88200 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
Default Amp-In caps: N/A
Default Amp-Out caps: N/A
State of AFG node 0x01:
  Power states:  D0 D1 D2 D3 CLKSTOP EPSS
  Power: setting=D0, actual=D0
GPIO: io=5, o=0, i=0, unsolicited=1, wake=0
  IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[3]: enable=1, dir=1, wake=0, sticky=0, data=0, unsol=0
  IO[4]: enable=1, dir=1, wake=0, sticky=0, data=0, unsol=0
Node 0x02 [Audio Output] wcaps 0x41d: Stereo Amp-Out
  Control: name="Headphone Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Device: name="ALC3228 Analog", type="Audio", device=0
  Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0
  Amp-Out vals:  [0x00 0x00]
  Converter: stream=5, channel=0
  PCM:
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x03 [Audio Output] wcaps 0x41d: Stereo Amp-Out
  Control: name="Speaker Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0
  Amp-Out vals:  [0x3d 0x3d]
  Converter: stream=5, channel=0
  PCM:
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x04 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x05 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x06 [Audio Output] wcaps 0x611: Stereo Digital
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  IEC Coding Type: 0x0
  PCM:
    rates [0x5f0]: 32000 44100 48000 88200 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x07 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x08 [Audio Input] wcaps 0x10051b: Stereo Amp-In
  Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1
  Amp-In vals:  [0x97 0x97]
  Converter: stream=0, channel=0
  SDI-Select: 0
  PCM:
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x23
Node 0x09 [Audio Input] wcaps 0x10051b: Stereo Amp-In
  Control: name="Capture Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Capture Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Device: name="ALC3228 Analog", type="Audio", device=0
  Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1
  Amp-In vals:  [0x27 0x27]
  Converter: stream=1, channel=0
  SDI-Select: 0
  PCM:
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x22
Node 0x0a [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0b [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
  Control: name="Mic Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=2, ofs=0
  Control: name="Mic Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=2, ofs=0
  Control: name="Beep Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=4, ofs=0
  Control: name="Beep Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=4, ofs=0
  Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
  Amp-In vals:  [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]
  Connection: 5
     0x18 0x19 0x1a 0x1b 0x1d
Node 0x0c [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals:  [0x00 0x00] [0x00 0x00]
  Connection: 2
     0x02 0x0b
Node 0x0d [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals:  [0x00 0x00] [0x00 0x00]
  Connection: 2
     0x03 0x0b
Node 0x0e [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0f [Audio Mixer] wcaps 0x20010a: Mono Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals:  [0x80] [0x00]
  Connection: 2
     0x02 0x03
Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x12 [Pin Complex] wcaps 0x40040b: Stereo Amp-In
  Control: name="Internal Mic Boost Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000020: IN
  Pin Default 0x90a60130: [Fixed] Mic at Int N/A
    Conn = Digital, Color = Unknown
    DefAssociation = 0x3, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x20: IN
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x13 [Pin Complex] wcaps 0x40040b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000020: IN
  Pin Default 0x40000000: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0x0, Sequence = 0x0
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x14 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Control: name="Speaker Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x00010010: OUT EAPD
  EAPD 0x2: EAPD
  Pin Default 0x90170110: [Fixed] Speaker at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x0c 0x0d*
Node 0x15 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Control: name="Headphone Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x0001001c: OUT HP EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x0421101f: [Jack] HP Out at Ext Right
    Conn = 1/8, Color = Black
    DefAssociation = 0x1, Sequence = 0xf
  Pin-ctls: 0xc0: OUT HP
  Unsolicited: tag=01, enabled=1
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D3, actual=D3
  Connection: 2
     0x0c* 0x0d
Node 0x16 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x00010014: OUT EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x0c* 0x0d
Node 0x17 [Pin Complex] wcaps 0x40050c: Mono Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80]
  Pincap 0x00000010: OUT
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x0f
Node 0x18 [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x00003734: IN OUT Detect
    Vref caps: HIZ 50 GRD 80 100
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00: VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x0c* 0x0d
Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000024: IN Detect
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x1a [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out
  Control: name="Mic Boost Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x0000373c: IN OUT HP Detect
    Vref caps: HIZ 50 GRD 80 100
  Pin Default 0x04a11020: [Jack] Mic at Ext Right
    Conn = 1/8, Color = Black
    DefAssociation = 0x2, Sequence = 0x0
  Pin-ctls: 0x24: IN VREF_80
  Unsolicited: tag=02, enabled=1
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D3, actual=D3
  Connection: 2
     0x0c* 0x0d
Node 0x1b [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x00003734: IN OUT Detect
    Vref caps: HIZ 50 GRD 80 100
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x20: IN VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x0c* 0x0d
Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1d [Pin Complex] wcaps 0x400400: Mono
  Pincap 0x00000020: IN
  Pin Default 0x40748605: [N/A] Modem Hand at Ext N/A
    Conn = RCA, Color = Purple
    DefAssociation = 0x0, Sequence = 0x5
  Pin-ctls: 0x20: IN
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x1e [Pin Complex] wcaps 0x400781: Stereo Digital
  Pincap 0x00000014: OUT Detect
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x06
Node 0x1f [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono
  Processing caps: benign=0, ncoeff=107
Node 0x21 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x22 [Audio Selector] wcaps 0x300101: Stereo
  Connection: 8
     0x18 0x19 0x1a 0x1b 0x1d 0x0b 0x12* 0x13
Node 0x23 [Audio Selector] wcaps 0x300101: Stereo
  Connection: 6
     0x18* 0x19 0x1a 0x1b 0x1d 0x0b
Node 0x24 [Vendor Defined Widget] wcaps 0xf00000: Mono


================================================
FILE: Resources_ProBook/codec_dump_alc280_folio_9480m.txt
================================================
Codec: Realtek ALC3228
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10ec0280
Subsystem Id: 0x103c22db
Revision Id: 0x100003
No Modem Function Group found
Default PCM:
    rates [0x5f0]: 32000 44100 48000 88200 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
Default Amp-In caps: N/A
Default Amp-Out caps: N/A
State of AFG node 0x01:
  Power states:  D0 D1 D2 D3 CLKSTOP EPSS
  Power: setting=D0, actual=D0
GPIO: io=5, o=0, i=0, unsolicited=1, wake=0
  IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[1]: enable=1, dir=1, wake=0, sticky=0, data=1, unsol=0
  IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
Node 0x02 [Audio Output] wcaps 0x41d: Stereo Amp-Out
  Control: name="Headphone Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Device: name="ALC3228 Analog", type="Audio", device=0
  Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0
  Amp-Out vals:  [                




  ask ask ncl[wqe 0x3c]
  Converter: stream=0, channel=0
  PCM:
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x03 [Audio Output] wcaps 0x41d: Stereo Amp-Out
  Control: name="Speaker Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0
  Amp-Out vals:  [0x3c 0x3c]
  Converter: stream=0, channel=0
  PCM:
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x04 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x05 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x06 [Audio Output] wcaps 0x611: Stereo Digital
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  IEC Coding Type: 0x0
  PCM:
    rates [0x5f0]: 32000 44100 48000 88200 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x07 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x08 [Audio Input] wcaps 0x10051b: Stereo Amp-In
  Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1
  Amp-In vals:  [0x97 0x97]
  Converter: stream=0, channel=0
  SDI-Select: 0
  PCM:
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x23
Node 0x09 [Audio Input] wcaps 0x10051b: Stereo Amp-In
  Control: name="Capture Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Capture Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Device: name="ALC3228 Analog", type="Audio", device=0
  Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1
  Amp-In vals:  [0x27 0x27]
  Converter: stream=0, channel=0
  SDI-Select: 0
  PCM:
    rates [0x560]: 44100 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x22
Node 0x0a [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0b [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
  Control: name="Mic Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=2, ofs=0
  Control: name="Mic Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=2, ofs=0
  Control: name="Beep Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=4, ofs=0
  Control: name="Beep Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=4, ofs=0
  Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1
  Amp-In vals:  [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]
  Connection: 5
     0x18 0x19 0x1a 0x1b 0x1d
Node 0x0c [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals:  [0x00 0x00] [0x00 0x00]
  Connection: 2
     0x02 0x0b
Node 0x0d [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals:  [0x00 0x00] [0x00 0x00]
  Connection: 2
     0x03 0x0b
Node 0x0e [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x0f [Audio Mixer] wcaps 0x20010a: Mono Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals:  [0x80] [0x00]
  Connection: 2
     0x02 0x03
Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x12 [Pin Complex] wcaps 0x40040b: Stereo Amp-In
  Control: name="Internal Mic Boost Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Internal Mic Phantom Jack", index=0, device=0
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000020: IN
  Pin Default 0x90a60130: [Fixed] Mic at Int N/A
    Conn = Digital, Color = Unknown
    DefAssociation = 0x3, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x20: IN
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x13 [Pin Complex] wcaps 0x40040b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000020: IN
  Pin Default 0x40000000: [N/A] Line Out at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0x0, Sequence = 0x0
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x14 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Control: name="Speaker Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Speaker Phantom Jack", index=0, device=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x00010010: OUT EAPD
  EAPD 0x2: EAPD
  Pin Default 0x90170110: [Fixed] Speaker at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x0c 0x0d*
Node 0x15 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Control: name="Headphone Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Headphone Jack", index=0, device=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x0001001c: OUT HP EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x0321101f: [Jack] HP Out at Ext Left
    Conn = 1/8, Color = Black
    DefAssociation = 0x1, Sequence = 0xf
  Pin-ctls: 0xc0: OUT HP
  Unsolicited: tag=01, enabled=1
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x0c* 0x0d
Node 0x16 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x00010014: OUT EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x0c* 0x0d
Node 0x17 [Pin Complex] wcaps 0x40050c: Mono Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80]
  Pincap 0x00000010: OUT
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x0f
Node 0x18 [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x00003734: IN OUT Detect
    Vref caps: HIZ 50 GRD 80 100
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x20: IN VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x0c* 0x0d
Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000024: IN Detect
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x1a [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out
  Control: name="Mic Boost Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Mic Jack", index=0, device=0
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x0000373c: IN OUT HP Detect
    Vref caps: HIZ 50 GRD 80 100
  Pin Default 0x03a11020: [Jack] Mic at Ext Left
    Conn = 1/8, Color = Black
    DefAssociation = 0x2, Sequence = 0x0
  Pin-ctls: 0x24: IN VREF_80
  Unsolicited: tag=02, enabled=1
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x0c* 0x0d
Node 0x1b [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x00003734: IN OUT Detect
    Vref caps: HIZ 50 GRD 80 100
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x20: IN VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x0c* 0x0d
Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1d [Pin Complex] wcaps 0x400400: Mono
  Pincap 0x00000020: IN
  Pin Default 0x40738105: [N/A] Modem Hand at Ext N/A
    Conn = ATAPI, Color = Purple
    DefAssociation = 0x0, Sequence = 0x5
    Misc = NO_PRESENCE
  Pin-ctls: 0x20: IN
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x1e [Pin Complex] wcaps 0x400781: Stereo Digital
  Pincap 0x00000014: OUT Detect
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x06
Node 0x1f [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono
  Processing caps: benign=0, ncoeff=107
Node 0x21 [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x22 [Audio Selector] wcaps 0x300101: Stereo
  Connection: 8
     0x18 0x19 0x1a 0x1b 0x1d 0x0b 0x12* 0x13
Node 0x23 [Audio Selector] wcaps 0x300101: Stereo
  Connection: 6
     0x18* 0x19 0x1a 0x1b 0x1d 0x0b
Node 0x24 [Vendor Defined Widget] wcaps 0xf00000: Mono


================================================
FILE: _get_tools.sh
================================================
#!/bin/bash
#set -x

# get copy of tools if not present
if [[ ! -d ./_tools ]]; then
    git clone https://github.com/RehabMan/hack-tools.git _tools
fi
# update tools to latest
if [[ -e ./_tools/.git ]]; then
    cd ./_tools && git pull
    cd ..
fi
# remove old tools copy (that was in tools instead of _tools)
rm -Rf tools

#eof


================================================
FILE: build/readme.txt
================================================
directory for built binaries such as SSDT-HACK.aml


================================================
FILE: build.sh
================================================
#!/bin/bash

./make_config.sh
./make_acpi.sh

#EOF


================================================
FILE: config/readme.txt
================================================
config files here built by make


================================================
FILE: config_parts/config_Broadwell_dp.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Devices</key>
	<dict>
		<key>Properties</key>
		<dict>
			<key>PciRoot(0)/Pci(0x02,0)</key>
			<dict/>
		</dict>
	</dict>
</dict>
</plist>


================================================
FILE: config_parts/config_Broadwell_hdmi.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Devices</key>
	<dict>
		<key>Properties</key>
		<dict>
			<key>PciRoot(0)/Pci(0x02,0)</key>
			<dict>
				<key>framebuffer-patch-enable</key>
				<integer>1</integer>
				<key>framebuffer-con1-enable</key>
				<integer>1</integer>
				<key>framebuffer-con1-alldata</key>
				<data>AQULAAAIAACCAAAA</data>
				<key>framebuffer-con2-enable</key>
				<integer>1</integer>
				<key>framebuffer-con2-alldata</key>
				<data>AgQLAAAIAACCAAAA</data>
			</dict>
		</dict>
	</dict>
</dict>
</plist>


================================================
FILE: config_parts/config_HD3000-4000_dp.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Devices</key>
	<dict>
		<key>Properties</key>
		<dict>
			<key>PciRoot(0)/Pci(0x02,0)</key>
			<dict>
				<key>framebuffer-patch-enable</key>
				<integer>1</integer>
				<key>framebuffer-con1-enable</key>
				<integer>1</integer>
				<key>framebuffer-con1-01660004-alldata</key>
				<data>AgUAAAAEAAAHBAAAAwQAAAAEAACBAAAABAYAAAAEAACBAAAA</data>
				<key>framebuffer-patch0-enable</key>
				<integer>1</integer>
				<key>framebuffer-patch0-framebufferid</key>
				<data>BABmAQ==</data>
				<key>framebuffer-patch0-find</key>
				<data>AQMBAQAAAAI=</data>
				<key>framebuffer-patch0-replace</key>
				<data>AQIEAgAAAAQ=</data>
			</dict>
		</dict>
	</dict>
</dict>
</plist>


================================================
FILE: config_parts/config_HD3000-4000_hdmi.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Devices</key>
	<dict>
		<key>Properties</key>
		<dict>
			<key>PciRoot(0)/Pci(0x02,0)</key>
			<dict>
				<key>framebuffer-patch-enable</key>
				<integer>1</integer>
				<key>framebuffer-con1-enable</key>
				<integer>1</integer>
				<key>framebuffer-con1-01660004-alldata</key>
				<data>AgUAAAAEAAAHBAAAAwQAAAAEAACBAAAABAYAAAAEAACBAAAA</data>
				<key>framebuffer-con3-enable</key>
				<integer>1</integer>
				<key>framebuffer-con3-type</key>
				<data>AAgAAA==</data>
				<key>framebuffer-con3-flags</key>
				<data>CQAAAA==</data>
				<key>framebuffer-patch0-enable</key>
				<integer>1</integer>
				<key>framebuffer-patch0-framebufferid</key>
				<data>BABmAQ==</data>
				<key>framebuffer-patch0-find</key>
				<data>AQMBAQAAAAI=</data>
				<key>framebuffer-patch0-replace</key>
				<data>AQIEAgAAAAQ=</data>
			</dict>
		</dict>
	</dict>
</dict>
</plist>


================================================
FILE: config_parts/config_Haswell_dp.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Devices</key>
	<dict>
		<key>Properties</key>
		<dict>
			<key>PciRoot(0)/Pci(0x02,0)</key>
			<dict>
				<key>framebuffer-patch-enable</key>
				<integer>1</integer>
				<key>framebuffer-cursormem</key>
				<data>AACQAA==</data>
				<key>framebuffer-portcount</key>
				<integer>4</integer>
				<key>framebuffer-con1-enable</key>
				<integer>1</integer>
				<key>framebuffer-con1-0a260006-alldata</key>
				<data>AQUSAAAEAACHAAAAAgQSAAAEAACHAAAAAwYDAAAEAACHAAAA</data>
				<key>framebuffer-con3-enable</key>
				<integer>1</integer>
				<key>framebuffer-con3-0a260006-alldata</key>
				<data>AwYDAAAEAAAHAQAA</data>
			</dict>
		</dict>
	</dict>
</dict>
</plist>


================================================
FILE: config_parts/config_Haswell_hdmi.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Devices</key>
	<dict>
		<key>Properties</key>
		<dict>
			<key>PciRoot(0)/Pci(0x02,0)</key>
			<dict>
				<key>framebuffer-patch-enable</key>
				<integer>1</integer>
				<key>framebuffer-cursormem</key>
				<data>AACQAA==</data>
				<key>framebuffer-portcount</key>
				<integer>4</integer>
				<key>framebuffer-con1-enable</key>
				<integer>1</integer>
				<key>framebuffer-con1-0a260006-alldata</key>
				<data>AQUSAAAIAACHAAAAAgQSAAAIAACHAAAAAwYDAAAIAACHAAAA</data>
				<key>framebuffer-con1-0d260007-alldata</key>
				<data>AQULAAAIAAAHAQAA/wAAAAEAAABAAAAA/wAAAAEAAABAAAAA</data>
			</dict>
		</dict>
	</dict>
</dict>
</plist>


================================================
FILE: config_parts/config_Haswell_no_hdmi_dp.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Devices</key>
	<dict>
		<key>Properties</key>
		<dict>
			<key>PciRoot(0)/Pci(0x02,0)</key>
			<dict>
				<key>framebuffer-patch-enable</key>
				<integer>1</integer>
				<key>framebuffer-cursormem</key>
				<data>AACQAA==</data>
				<key>framebuffer-portcount</key>
				<integer>1</integer>
				<key>framebuffer-memorycount</key>
				<integer>1</integer>
				<key>framebuffer-con1-enable</key>
				<integer>1</integer>
				<key>framebuffer-con1-alldata</key>
				<data>/wAAAAEAAABAAAAA/wAAAAEAAABAAAAA/wAAAAEAAABAAAAA</data>
			</dict>
		</dict>
	</dict>
</dict>
</plist>


================================================
FILE: config_parts/config_Kabylake_dp.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Devices</key>
	<dict>
		<key>Properties</key>
		<dict>
			<key>PciRoot(0)/Pci(0x02,0)</key>
			<dict>
				<key>framebuffer-patch-enable</key>
				<integer>1</integer>
				<key>framebuffer-con1-enable</key>
				<integer>1</integer>
				<key>framebuffer-con1-alldata</key>
				<data>AQUKAAAEAACHAQAAAgQKAAAIAACHAQAA</data>
			</dict>
		</dict>
	</dict>
</dict>
</plist>


================================================
FILE: config_parts/config_Kabylake_hdmi.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Devices</key>
	<dict>
		<key>Properties</key>
		<dict>
			<key>PciRoot(0)/Pci(0x02,0)</key>
			<dict>
				<key>framebuffer-patch-enable</key>
				<integer>1</integer>
				<key>framebuffer-con1-enable</key>
				<integer>1</integer>
				<key>framebuffer-con1-alldata</key>
				<data>AQUKAAAIAACHAQAAAgQKAAAIAACHAQAA</data>
			</dict>
		</dict>
	</dict>
</dict>
</plist>


================================================
FILE: config_parts/config_Skylake_dp.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Devices</key>
	<dict>
		<key>Properties</key>
		<dict>
			<key>PciRoot(0)/Pci(0x02,0)</key>
			<dict>
				<key>framebuffer-patch-enable</key>
				<integer>1</integer>
				<key>framebuffer-portcount</key>
				<integer>4</integer>
				<key>framebuffer-con3-enable</key>
				<integer>1</integer>
				<key>framebuffer-con3-alldata</key>
				<data>AwYKAAAIAACHAQAA</data>
			</dict>
		</dict>
	</dict>
</dict>
</plist>


================================================
FILE: config_parts/config_Skylake_hdmi.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Devices</key>
	<dict>
		<key>Properties</key>
		<dict>
			<key>PciRoot(0)/Pci(0x02,0)</key>
			<dict>
				<key>framebuffer-patch-enable</key>
				<integer>1</integer>
				<key>framebuffer-portcount</key>
				<integer>4</integer>
				<key>framebuffer-con1-enable</key>
				<integer>1</integer>
				<key>framebuffer-con1-type</key>
				<data>AAgAAA==</data>
				<key>framebuffer-con2-enable</key>
				<integer>1</integer>
				<key>framebuffer-con2-type</key>
				<data>AAgAAA==</data>
				<key>framebuffer-con3-enable</key>
				<integer>1</integer>
				<key>framebuffer-con3-alldata</key>
				<data>AwYKAAAIAACHAQAA</data>
			</dict>
		</dict>
	</dict>
</dict>
</plist>


================================================
FILE: config_parts/config_master.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>ACPI</key>
	<dict>
		<key>DSDT</key>
		<dict>
			<key>DropOEM_DSM</key>
			<false/>
			<key>Fixes</key>
			<dict>
				<key>FixTMR</key>
				<true/>
				<key>FixRTC</key>
				<true/>
				<key>FixIPIC</key>
				<true/>
				<key>FixHPET</key>
				<true/>
			</dict>
			<key>Patches</key>
			<array>
				<dict>
					<key>Comment</key>
					<string>change _DSM to XDSM</string>
					<key>Find</key>
					<data>X0RTTQ==</data>
					<key>Replace</key>
					<data>WERTTQ==</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change _OSI to XOSI</string>
					<key>Find</key>
					<data>X09TSQ==</data>
					<key>Replace</key>
					<data>WE9TSQ==</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change EC0 to EC</string>
					<key>Find</key>
					<data>RUMwXw==</data>
					<key>Replace</key>
					<data>RUNfXw==</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change EHC1 to EH01</string>
					<key>Find</key>
					<data>RUhDMQ==</data>
					<key>Replace</key>
					<data>RUgwMQ==</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change EHC2 to EH02</string>
					<key>Find</key>
					<data>RUhDMg==</data>
					<key>Replace</key>
					<data>RUgwMg==</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change GFX0 to IGPU</string>
					<key>Find</key>
					<data>R0ZYMA==</data>
					<key>Replace</key>
					<data>SUdQVQ==</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>Change Device(HECI) _ADR=0x00160000 to _ADR=0</string>
					<key>Disabled</key>
					<true/>
					<key>Find</key>
					<data>SEVDSQhfQURSDAAAFgA=</data>
					<key>Replace</key>
					<data>SEVDSQhfQURSDAAAAAA=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change HDAS to HDEF</string>
					<key>Find</key>
					<data>SERBUw==</data>
					<key>Replace</key>
					<data>SERFRg==</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change B0D3 to HDAU</string>
					<key>Find</key>
					<data>QjBEMw==</data>
					<key>Replace</key>
					<data>SERBVQ==</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Method(UPRW,2,S) to XPRW</string>
					<key>Find</key>
					<data>VVBSVwpwEg==</data>
					<key>Replace</key>
					<data>WFBSVwpwEg==</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Method(GPRW,2,N) to XPRW</string>
					<key>Find</key>
					<data>R1BSVwI=</data>
					<key>Replace</key>
					<data>WFBSVwI=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change LANC Method(_PRW,0,Serialized) to Method(XPRW,0,..)</string>
					<key>Find</key>
					<data>AAAZABQfX1BSVwg=</data>
					<key>Replace</key>
					<data>AAAZABQfWFBSVwg=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change _PTS to ZPTS</string>
					<key>Find</key>
					<data>X1BUUwE=</data>
					<key>Replace</key>
					<data>WlBUUwE=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change _WAK to ZWAK</string>
					<key>Find</key>
					<data>X1dBSwE=</data>
					<key>Replace</key>
					<data>WldBSwE=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change _WAK to ZWAK (G3)</string>
					<key>Find</key>
					<data>X1dBSwk=</data>
					<key>Replace</key>
					<data>WldBSwk=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Method(BTIF,1,Serialized) to BTI0</string>
					<key>Find</key>
					<data>QlRJRgl5Cg==</data>
					<key>Replace</key>
					<data>QlRJMAl5Cg==</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Method(BTIF,1,Serialized) to BTI0 (G3)</string>
					<key>Find</key>
					<data>QlRJRgl5AWg=</data>
					<key>Replace</key>
					<data>QlRJMAl5AWg=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Method(BTST,2,Serialized) to BTS1</string>
					<key>Find</key>
					<data>QlRTVAp5Cg==</data>
					<key>Replace</key>
					<data>QlRTMQp5Cg==</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Method(BTST,2,Serialized) to BTS1 (G3)</string>
					<key>Find</key>
					<data>QlRTVAp5AWg=</data>
					<key>Replace</key>
					<data>QlRTMQp5AWg=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Method(SBTC,3,NotSerialized) to SBT2</string>
					<key>Find</key>
					<data>U0JUQwNwDQ==</data>
					<key>Replace</key>
					<data>U0JUMgNwDQ==</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Method(GBTI,1,NotSerialized) to GBT3</string>
					<key>Find</key>
					<data>R0JUSQFwDQ==</data>
					<key>Replace</key>
					<data>R0JUMwFwDQ==</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Method(GBTC,0,NotSerialized) to GBT4</string>
					<key>Find</key>
					<data>R0JUQwBwDQ==</data>
					<key>Replace</key>
					<data>R0JUNABwDQ==</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Method(ITLB,0,NotSerialized) to ITL1 (for G4)</string>
					<key>Find</key>
					<data>SVRMQgA=</data>
					<key>Replace</key>
					<data>SVRMMQA=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Method(GACW,0,NotSerialized) to XACW (for G4 latest BIOS)</string>
					<key>Find</key>
					<data>R0FDVwA=</data>
					<key>Replace</key>
					<data>WEFDVwA=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Method(GBAW,0,NotSerialized) to XBAW (for G4 latest BIOS)</string>
					<key>Find</key>
					<data>R0JBVwA=</data>
					<key>Replace</key>
					<data>WEJBVwA=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Name(NBTI,..) to NBT5</string>
					<key>Find</key>
					<data>CE5CVEk=</data>
					<key>Replace</key>
					<data>CE5CVDU=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Notify(\_SB.BAT0,...) to Notify(_SB.BATC,...)</string>
					<key>Find</key>
					<data>hlwuX1NCX0JBVDA=</data>
					<key>Replace</key>
					<data>hlwuX1NCX0JBVEM=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Notify(\_SB.BAT1,...) to Notify(_SB.BATC,...)</string>
					<key>Find</key>
					<data>hlwuX1NCX0JBVDE=</data>
					<key>Replace</key>
					<data>hlwuX1NCX0JBVEM=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Notify(BAT0,...) to Notify(BATC,...)</string>
					<key>Find</key>
					<data>hkJBVDA=</data>
					<key>Replace</key>
					<data>hkJBVEM=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Notify(BAT1,...) to Notify(BATC,...)</string>
					<key>Find</key>
					<data>hkJBVDE=</data>
					<key>Replace</key>
					<data>hkJBVEM=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change Method(RDSS,1,S) to XDSS</string>
					<key>Find</key>
					<data>UkRTUwk=</data>
					<key>Replace</key>
					<data>WERTUwk=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change EC Method(_REG,2,N) to XREG, 4x40s, 4x30s</string>
					<key>Find</key>
					<data>X1JFRwKgKJNoCgM=</data>
					<key>Replace</key>
					<data>WFJFRwKgKJNoCgM=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>change EC Method(_REG,2,N) to XREG, 4x0 G3 Skylake</string>
					<key>Find</key>
					<data>X1JFRwKgFJNoCgM=</data>
					<key>Replace</key>
					<data>WFJFRwKgFJNoCgM=</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>RTC fix</string>
					<key>Find</key>
					<data>RwFwAHAAAQg=</data>
					<key>Replace</key>
					<data>RwFwAHAAAQI=</data>
				</dict>
			</array>
		</dict>
		<key>DropTables</key>
		<array>
			<dict>
				<key>Signature</key>
				<string>DMAR</string>
			</dict>
			<dict>
				<key>Signature</key>
				<string>SSDT</string>
				<key>TableId</key>
				<string>PtidDevc</string>
			</dict>
		</array>
		<key>#DropTables</key>
		<array>
			<dict>
				<key>Signature</key>
				<string>DMAR</string>
			</dict>
			<dict>
				<key>Signature</key>
				<string>SSDT</string>
				<key>TableId</key>
				<string>PtidDevc</string>
			</dict>
			<dict>
				<key>Signature</key>
				<string>SSDT</string>
				<key>TableId</key>
				<string>CpuPm</string>
			</dict>
			<dict>
				<key>Signature</key>
				<string>SSDT</string>
				<key>TableId</key>
				<string>Cpu0Cst</string>
			</dict>
			<dict>
				<key>Signature</key>
				<string>SSDT</string>
				<key>TableId</key>
				<string>Cpu0Ist</string>
			</dict>
			<dict>
				<key>Signature</key>
				<string>SSDT</string>
				<key>TableId</key>
				<string>ApCst</string>
			</dict>
			<dict>
				<key>Signature</key>
				<string>SSDT</string>
				<key>TableId</key>
				<string>ApIst</string>
			</dict>
		</array>
		<key>SSDT</key>
		<dict>
			<key>Generate</key>
			<dict>
				<key>CStates</key>
				<false/>
				<key>PStates</key>
				<false/>
				<key>APSN</key>
				<false/>
				<key>APLF</key>
				<false/>
				<key>PluginType</key>
				<true/>
			</dict>
		</dict>
	</dict>
	<key>Boot</key>
	<dict>
		<key>Arguments</key>
		<string>kext-dev-mode=1 dart=0 -igfxnohdmi</string>
		<key>NeverHibernate</key>
		<true/>
		<key>Secure</key>
		<false/>
		<key>Timeout</key>
		<integer>5</integer>
	</dict>
	<key>Devices</key>
	<dict>
		<key>Audio</key>
		<dict>
			<key>Inject</key>
			<integer>0</integer>
		</dict>
		<key>Properties</key>
		<dict/>
		<key>USB</key>
		<dict>
			<key>Inject</key>
			<false/>
		</dict>
	</dict>
	<key>DisableDrivers</key>
	<array>
		<string>VBoxHfs</string>
	</array>
	<key>Graphics</key>
	<dict>
		<key>Inject</key>
		<dict>
			<key>Intel</key>
			<false/>
		</dict>
	</dict>
	<key>GUI</key>
	<dict>
		<key>Custom</key>
		<dict>
			<key>Entries</key>
			<array>
				<dict>
					<key>Hidden</key>
					<true/>
					<key>Type</key>
					<string>OSXRecovery</string>
				</dict>
				<dict>
					<key>Type</key>
					<string>Windows</string>
					<key>Title</key>
					<string>Windows</string>
				</dict>
			</array>
		</dict>
		<key>Hide</key>
		<array>
			<string>Preboot</string>
		</array>
		<key>Mouse</key>
		<dict>
			<key>Enabled</key>
			<false/>
		</dict>
		<key>Scan</key>
		<dict>
			<key>Entries</key>
			<true/>
			<key>Tool</key>
			<true/>
			<key>Legacy</key>
			<false/>
		</dict>
		<key>ScreenResolution</key>
		<string>1024x768</string>
		<key>Theme</key>
		<string>BGM</string>
	</dict>
	<key>KernelAndKextPatches</key>
	<dict>
		<key>AppleRTC</key>
		<true/>
		<key>AppleIntelCPUPM</key>
		<true/>
		<key>KernelXCPM</key>
		<false/>
		<key>KernelLapic</key>
		<false/>
		<key>KernelPm</key>
		<true/>
		<key>KextsToPatch</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>Enable TRIM for non-Apple SSDs</string>
				<key>Disabled</key>
				<true/>
				<key>Name</key>
				<string>com.apple.iokit.IOAHCIBlockStorage</string>
				<key>Find</key>
				<data>AEFQUExFIFNTRAA=</data>
				<key>Replace</key>
				<data>AAAAAAAAAAAAAAA=</data>
			</dict>
		</array>
		<key>KernelToPatch</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>MSR 0xE2 _xcpm_idle instant reboot(c) Pike R. Alpha</string>
				<key>Disabled</key>
				<false/>
				<key>Find</key>
				<data>ILniAAAADzA=</data>
				<key>Replace</key>
				<data>ILniAAAAkJA=</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>Disable panic kext logging on 10.13 release kernel (credit vit9696)</string>
				<key>MatchOS</key>
				<string>10.13.x</string>
				<key>Find</key>
				<data>igKEwHRE</data>
				<key>Replace</key>
				<data>igKEwOtE</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>Disable panic kext logging on 10.14 release kernel (credit vit9696)</string>
				<key>MatchOS</key>
				<string>10.14.x</string>
				<key>Find</key>
				<data>igKEwHRC</data>
				<key>Replace</key>
				<data>igKEwOtC</data>
			</dict>
		</array>
	</dict>
	<key>RtVariables</key>
	<dict>
		<key>CsrActiveConfig</key>
		<string>0x67</string>
		<key>BooterConfig</key>
		<string>0x28</string>
	</dict>
	<key>SMBIOS</key>
	<dict>
		<key>ProductName</key>
		<string>smbios_productname_placeholder</string>
		<key>Trust</key>
		<true/>
	</dict>
	<key>SystemParameters</key>
	<dict>
		<key>InjectKexts</key>
		<string>Detect</string>
	</dict>
</dict>
</plist>


================================================
FILE: config_parts/config_non_Intel_USB3.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>KernelAndKextPatches</key>
	<dict>
		<key>KextsToPatch</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>USB 3.0 Disable Intel USB3 controller check 10.9</string>
				<key>MatchOS</key>
				<string>10.9.x</string>
				<key>Name</key>
				<string>com.apple.driver.AppleUSBXHCI</string>
				<key>Find</key>
				<data>9oDUAAAAgHU6</data>
				<key>Replace</key>
				<data>9oDUAAAAgOs6</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>USB 3.0 Disable Intel USB3 controller check 10.10</string>
				<key>MatchOS</key>
				<string>10.10.x</string>
				<key>Name</key>
				<string>com.apple.driver.AppleUSBXHCI</string>
				<key>Find</key>
				<data>9oDUAAAAgHU0</data>
				<key>Replace</key>
				<data>9oDUAAAAgOs0</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>USB 3.0 Disable XHCI 1.0 check 10.9</string>
				<key>MatchOS</key>
				<string>10.9.x</string>
				<key>Name</key>
				<string>com.apple.driver.AppleUSBXHCI</string>
				<key>Find</key>
				<data>Zj0AAQ==</data>
				<key>Replace</key>
				<data>Zj0AAA==</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>USB 3.0 Disable XHCI 1.0 check 10.10</string>
				<key>MatchOS</key>
				<string>10.10.x</string>
				<key>Name</key>
				<string>com.apple.driver.AppleUSBXHCI</string>
				<key>Find</key>
				<data>QbzHAgDgPQABAAA=</data>
				<key>Replace</key>
				<data>QbzHAgDgPQAAAAA=</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>USB 3.0 Patch MSI or pin interrupts #1</string>
				<key>MatchOS</key>
				<string>10.9.x,10.10.x</string>
				<key>Name</key>
				<string>com.apple.driver.AppleUSBXHCI</string>
				<key>Find</key>
				<data>gUkIAABAAA==</data>
				<key>Replace</key>
				<data>gUkIAAAAAA==</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>USB 3.0 Patch MSI or pin interrupts #2</string>
				<key>MatchOS</key>
				<string>10.9.x,10.10.x</string>
				<key>Name</key>
				<string>com.apple.driver.AppleUSBXHCI</string>
				<key>Find</key>
				<data>QcdHCAAAQAA=</data>
				<key>Replace</key>
				<data>QcdHCAAAAAA=</data>
			</dict>
			<dict>
				<key>Comment</key>
				<string>USB 3.0 Enable PCI power management</string>
				<key>MatchOS</key>
				<string>10.9.x,10.10.x</string>
				<key>Name</key>
				<string>com.apple.driver.AppleUSBXHCI</string>
				<key>Find</key>
				<data>dU1Ii7voAQAA</data>
				<key>Replace</key>
				<data>601Ii7voAQAA</data>
			</dict>
		</array>
	</dict>
</dict>
</plist>


================================================
FILE: download.sh
================================================
#!/bin/bash
#set -x

# get copy of tools
"$(dirname ${BASH_SOURCE[0]})"/_get_tools.sh

# include subroutines
source "$(dirname ${BASH_SOURCE[0]})"/_tools/_download_subs.sh

# remove deprecated downloads directory to avoid confusion
if [[ -e ./downloads ]]; then rm -Rf ./downloads; fi

# create _downloads directory and clean
if [[ ! -d ./_downloads ]]; then mkdir ./_downloads; fi && rm -Rf ./_downloads/* && cd ./_downloads

# extract minor version (eg. 10.9 vs. 10.10 vs. 10.11)
MINOR_VER=$([[ "$(sw_vers -productVersion)" =~ [0-9]+\.([0-9]+) ]] && echo ${BASH_REMATCH[1]})

# download kexts
mkdir ./kexts && cd ./kexts
download_rehabman os-x-fakesmc-kozlek RehabMan-FakeSMC
download_rehabman os-x-voodoo-ps2-controller RehabMan-Voodoo
if [[ $MINOR_VER -le 8 ]]; then
    # use older version of RealtekRTL8111.kext for 10.8 and older
    download_rehabman os-x-realtek-network RehabMan-Realtek-Network-2014
else
    download_rehabman os-x-realtek-network RehabMan-Realtek-Network
fi
download_rehabman os-x-intel-network RehabMan-IntelMausiEthernet
download_rehabman os-x-intel-backlight RehabMan-IntelBacklight
download_rehabman os-x-acpi-battery-driver RehabMan-Battery
download_rehabman os-x-eapd-codec-commander RehabMan-CodecCommander
download_rehabman os-x-fake-pci-id RehabMan-FakePCIID
download_rehabman os-x-brcmpatchram RehabMan-BrcmPatchRAM
download_rehabman os-x-atheros-3k-firmware RehabMan-Atheros
download_rehabman os-x-acpi-poller RehabMan-Poller
download_rehabman os-x-usb-inject-all RehabMan-USBInjectAll
download_rehabman applebacklightfixup RehabMan-BacklightFixup
download_acidanthera Lilu acidanthera-Lilu
download_acidanthera WhateverGreen acidanthera-WhateverGreen
download_acidanthera AirportBrcmFixup acidanthera-AirportBrcmFixup
download_acidanthera BT4LEContiunityFixup acidanthera-BT4LEContiunityFixup
download_acidanthera AppleALC acidanthera-AppleALC
cd ..

# download tools
mkdir ./tools && cd ./tools
download_rehabman os-x-maciasl-patchmatic RehabMan-patchmatic
download_rehabman os-x-maciasl-patchmatic RehabMan-MaciASL
download_rehabman acpica iasl iasl.zip
cd ..

# download Clover related (HPFanReset.efi)
mkdir ./efi && cd ./efi
download_rehabman hp-probook-4x30s-fan-reset HPFanReset
cd ..


================================================
FILE: find_dependencies.sh
================================================
#!/bin/bash
# run as: ./find_dependencies.sh >makefile.d

function print_dependencies()
{
    local include_list
    include_list=$(grep '#include' "$1" | sed -n 's/.*#include\ \"\(.*\)\".*/\1/p')
    if [[ ! -z "$include_list" ]]; then
        local f
        for f in $include_list; do
            if [[ -e "$2$f" ]]; then
                echo -n "$2$f "
                print_dependencies $2$f $2
            fi
        done
    fi
}

echo "#" generated with: $0 $@
echo
for f in $(ls hotpatch/*.dsl); do
    deps=$(print_dependencies "$f" hotpatch/)
    if [[ ! -z "$deps" ]]; then
        build_target=$(basename "$f")
        build_target=${build_target/.dsl/.aml}
        echo build/$build_target : $f $deps
        echo
    fi
done

#EOF


================================================
FILE: hotpatch/SSDT-1020G1b.dsl
================================================
// SSDT for EliteBook Folio 1020 G1 (Broadwell)

DefinitionBlock("", "SSDT", 2, "hack", "_1020G1b", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-RP05_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/ALC286_HDEF.asl"
    #include "include/ALC286_HDAU.asl"
    //#include "include/standard_PS2K.asl"
    External(_SB.PCI0.LPCB.PS2K, DeviceObj)
    Scope (_SB.PCI0.LPCB.PS2K)
    {
        // overrides for VoodooPS2 configuration...
        Name(RMCF, Package()
        {
            #include "include/standard_PS2K_data.asl"
            #include "include/enable_mouse.asl"
        })
    }
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-1020-G1.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT-G2.asl"
    #include "include/disable_EH01.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-1030G1s.dsl
================================================
// SSDT for EliteBook 1030 G1 (Skylake)

DefinitionBlock("", "SSDT", 2, "hack", "_1030G1s", 0)
{
    #define OVERRIDE_XPEE 1
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEG0_PEGP_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/CX20724_HDEF.asl"
    #include "include/disable_HECI.asl"
    //#include "include/standard_PS2K.asl"
    External(_SB.PCI0.LPCB.PS2K, DeviceObj)
    Scope (_SB.PCI0.LPCB.PS2K)
    {
        Name(RMCF, Package()
        {
            #include "include/standard_PS2K_data.asl"
            #include "include/enable_mouse.asl"
        })
    }
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-1030-G1.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT-G4.asl" //REVIEW: using SSDT-BATT-G4 instead of SSDT-BATT-G3
    #include "SSDT-USBX.asl"
    #include "SSDT-USWE.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-1040G1h.dsl
================================================
// SSDT for 1040 G1 (Haswell)

DefinitionBlock("", "SSDT", 2, "hack", "_1040G1h", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-RP05_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_76e0_HDEF.asl"
    #include "include/IDT_76e0_HDAU.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY102.asl"
    //#include "SSDT-USB-1040-G1.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT.asl"
    #include "SSDT-EH01.asl" //REVIEW: placing at end as no USB customization data available
    //#include "SSDT-EH02.asl" //REVIEW: placing at end as no USB customization data available
}
//EOF


================================================
FILE: hotpatch/SSDT-1040G3s.dsl
================================================
// SSDT for EliteBook 1040 G3 (Skylake)

DefinitionBlock("", "SSDT", 2, "hack", "_1040G3s", 0)
{
    #define OVERRIDE_XPEE 1
    #include "SSDT-RMCF.asl"
    #include "SSDT-RP05_PEGP_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/CX20724_HDEF.asl"
    #include "include/disable_HECI.asl"
    //#include "include/standard_PS2K.asl"
    External(_SB.PCI0.LPCB.PS2K, DeviceObj)
    Scope (_SB.PCI0.LPCB.PS2K)
    {
        Name(RMCF, Package()
        {
            #include "include/standard_PS2K_data.asl"
            #include "include/enable_mouse.asl"
            #include "include/key86_data.asl"
        })
    }
    #include "SSDT-KEY102.asl"
    #include "SSDT-USB-1040-G3.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT-G4.asl" //REVIEW: using SSDT-BATT-G4 instead of SSDT-BATT-G3
    #include "SSDT-USBX.asl"
    #include "SSDT-USWE.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-1050G1k.dsl
================================================
// SSDT for EliteBook 1050 G1 (KabyLake-R)

DefinitionBlock("", "SSDT", 2, "hack", "_1050G1k", 0)
{
    #define OVERRIDE_XPEE 1
    #include "SSDT-RMCF.asl"
    #include "SSDT-RP05_PEGP_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/CX20724_HDEF.asl"
    #include "include/disable_HECI.asl"
    //#include "include/standard_PS2K.asl"
    External(_SB.PCI0.LPCB.PS2K, DeviceObj)
    Scope (_SB.PCI0.LPCB.PS2K)
    {
        Name(RMCF, Package()
        {
            #include "include/standard_PS2K_data.asl"
            #include "include/enable_mouse.asl"
            #include "include/key86_data.asl"
        })
    }
    #include "SSDT-KEY102.asl"
    #include "SSDT-USB-1050-G1.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT-G4.asl" //REVIEW: using SSDT-BATT-G4 instead of SSDT-BATT-G3
    #include "SSDT-USBX.asl"
    #include "SSDT-USWE.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-2x60.dsl
================================================
// SSDT for 2x60

DefinitionBlock("", "SSDT", 2, "hack", "_2x60", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_7605_HDEF.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY102.asl"
    #include "SSDT-USB-6x60.asl"    // 2x60 uses same USB as 6x60
    #include "SSDT-EH01.asl"
    #include "SSDT-EH02.asl"
    #include "SSDT-BATT.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-2x70.dsl
================================================
// SSDT for 2x70

DefinitionBlock("", "SSDT", 2, "hack", "_2x70", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_7605_HDEF.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-2x70.asl"
    #include "SSDT-EH01.asl"
    #include "SSDT-EH02.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-3x0G1.dsl
================================================
// SSDT for 3x0 G1

DefinitionBlock("", "SSDT", 2, "hack", "_3x0G1", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_7695_HDEF.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    //#include "SSDT-USB-3x0-G1.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT.asl"
    #include "SSDT-EH01.asl" //REVIEW: placing at end as no USB customization data available
    #include "SSDT-EH02.asl" //REVIEW: placing at end as no USB customization data available
}
//EOF


================================================
FILE: hotpatch/SSDT-4230.dsl
================================================
// SSDT for 4230s

DefinitionBlock("", "SSDT", 2, "hack", "_4230", 0)
{
    #define OVERRIDE_BUID 24
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_76d1_HDEF.asl"
    #include "include/standard_PS2K.asl"
    //#include "SSDT-KEY87.asl"  //REVIEW: someone needs to do proper keymap for 4230s
    #include "SSDT-USB-4x30s.asl"
    #include "SSDT-EH01.asl"
    #include "SSDT-EH02.asl"
    #include "SSDT-BATT.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-450G1h.dsl
================================================
// SSDT for 450 G1 Haswell

DefinitionBlock("", "SSDT", 2, "hack", "_450G1h", 0)
{
    #define OVERRIDE_IGPI 0x0d260007
    #define OVERRIDE_LMAX 0x07a1
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_76e0_HDEF.asl"
    #include "include/IDT_76e0_HDAU.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-4x0-G1.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT.asl"
    #include "include/disable_EH01-EH02.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-4x0G0.dsl
================================================
// SSDT for 4x0 G0

DefinitionBlock("", "SSDT", 2, "hack", "_4x0G0", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_76e0_HDEF.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-4x0-G0.asl"
    #include "SSDT-EH01.asl"
    #include "SSDT-EH02.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-4x0G1h.dsl
================================================
// SSDT for 4x0 G1 Haswell

DefinitionBlock("", "SSDT", 2, "hack", "_4x0G1h", 0)
{
    #define OVERRIDE_IGPI 0x0d260007
    #define OVERRIDE_LMAX 0x07a1
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_76e0_HDEF.asl"
    #include "include/IDT_76e0_HDAU.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-4x0-G1.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT.asl"
    #include "include/disable_EH01.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-4x0G1i.dsl
================================================
// SSDT for 4x0 G1 Ivy

DefinitionBlock("", "SSDT", 2, "hack", "_4x0G1i", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_76e0_HDEF.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    //#include "SSDT-USB-4x0-G1-Ivy.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT.asl"
    #include "SSDT-EH01.asl" //REVIEW: placing at end as no USB customization data available
    #include "SSDT-EH02.asl" //REVIEW: placing at end as no USB customization data available
}
//EOF


================================================
FILE: hotpatch/SSDT-4x0G2b.dsl
================================================
// SSDT for 4x0 G2 Broadwell

DefinitionBlock("", "SSDT", 2, "hack", "_4x0G2b", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-RP05_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/ALC282_HDEF.asl"
    #include "include/ALC282_HDAU.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-4x0-G2.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT-G2.asl"
    #include "include/disable_EH01.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-4x0G2h.dsl
================================================
// SSDT for 4x0 G2 Haswell

DefinitionBlock("", "SSDT", 2, "hack", "_4x0G2h", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-RP05_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/ALC282_HDEF.asl"
    #include "include/ALC282_HDAU.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-4x0-G2.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT-G2.asl"
    #include "include/disable_EH01.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-4x0G3s.dsl
================================================
// SSDT for ProBook 4x0 G3 (Skylake)

DefinitionBlock("", "SSDT", 2, "hack", "_4x0G3s", 0)
{
    #define OVERRIDE_XPEE 1
    #include "SSDT-RMCF.asl"
    #include "SSDT-RP01_PEGP_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/CX20724_HDEF.asl"
    #include "include/disable_HECI.asl"
    #include "include/key86_PS2K.asl"
    #include "SSDT-KEY102.asl"
    #include "SSDT-USB-4x0-G3.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT-G4.asl" //REVIEW: using SSDT-BATT-G4 instead of SSDT-BATT-G3
    #include "SSDT-USBX.asl"
    #include "SSDT-ALS0.asl"
    #include "SSDT-USWE.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-4x0G4k.dsl
================================================
// SSDT for ProBook 4x0 G4 (Kabylake)

DefinitionBlock("", "SSDT", 2, "hack", "_4x0G4k", 0)
{
    #define OVERRIDE_XPEE 1
    #include "SSDT-RMCF.asl"
    #include "SSDT-RP01_PXSX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/CX8200_HDEF.asl"
    #include "include/disable_HECI.asl"
    #include "include/key86_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-4x0-G4.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT-G4.asl"
    #include "SSDT-USBX.asl"
    #include "SSDT-ALS0.asl"
    #include "SSDT-USWE.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-4x30.dsl
================================================
// SSDT for 4x30s

DefinitionBlock("", "SSDT", 2, "hack", "_4x30", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_76d1_HDEF.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY102.asl"
    #include "SSDT-USB-4x30s.asl"
    #include "SSDT-EH01.asl"
    #include "SSDT-EH02.asl"
    #include "SSDT-BATT.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-4x40.dsl
================================================
// SSDT for 4x40s

DefinitionBlock("", "SSDT", 2, "hack", "_4x40", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_76d9_HDEF.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY102.asl"
    #include "SSDT-USB-4x40s.asl"
    #include "SSDT-EH01.asl"
    #include "SSDT-EH02.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-5x30.dsl
================================================
// SSDT for ProBook 5x30

DefinitionBlock("", "SSDT", 2, "hack", "_5x30", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_7605_HDEF.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    //#include "SSDT-USB-5x30.asl"
    #include "SSDT-BATT.asl"
    #include "SSDT-EH01.asl" //REVIEW: placing at end as no USB customization data available
    #include "SSDT-EH02.asl" //REVIEW: placing at end as no USB customization data available
}
//EOF


================================================
FILE: hotpatch/SSDT-6x0G1h.dsl
================================================
// SSDT for 6x0 G1 Haswell

DefinitionBlock("", "SSDT", 2, "hack", "_6x0G1h", 0)
{
    #define OVERRIDE_IGPI 0x0d260007
    #define OVERRIDE_LMAX 0x07a1
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_76e0_HDEF.asl"
    #include "include/IDT_76e0_HDAU.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-6x0-G1.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT.asl"
    #include "include/disable_EH01-EH02.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-6x0G2s.dsl
================================================
// SSDT for EliteBook 6x0 G2 (Skylake)

DefinitionBlock("", "SSDT", 2, "hack", "_6x0G2s", 0)
{
    #define OVERRIDE_XPEE 1
    #include "SSDT-RMCF.asl"
    #include "SSDT-RP05_PEGP_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/CX20724_HDEF.asl"
    #include "include/disable_HECI.asl"
    #include "include/key86_PS2K.asl"
    #include "SSDT-KEY102.asl"
    #include "SSDT-USB-640-G2.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT-G2.asl"
    #include "SSDT-USBX.asl"
    #include "SSDT-ALS0.asl"
    #include "SSDT-USWE.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-6x60.dsl
================================================
// SSDT for 6x60

DefinitionBlock("", "SSDT", 2, "hack", "_6x60", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_7605_HDEF.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-6x60.asl"
    #include "SSDT-EH01.asl"
    #include "SSDT-EH02.asl"
    #include "SSDT-BATT.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-6x70.dsl
================================================
// SSDT for 6x70

DefinitionBlock("", "SSDT", 2, "hack", "_6x70", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_7605_HDEF.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-6x70.asl"
    #include "SSDT-EH01.asl"
    #include "SSDT-EH02.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-8x0G1h.dsl
================================================
// SSDT for 8x0 G1 Haswell

DefinitionBlock("", "SSDT", 2, "hack", "_8x0G1h", 0)
{
    #define OVERRIDE_IGPI 0x04260000
    #define OVERRIDE_LMAX 0x1499
    #include "SSDT-RMCF.asl"
    #include "SSDT-RP05_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_76e0_HDEF.asl"
    #include "include/IDT_76e0_HDAU.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-8x0-G1.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT.asl"
    #include "include/disable_EH01.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-8x0G1i.dsl
================================================
// SSDT for 8x0 G1 Ivy

DefinitionBlock("", "SSDT", 2, "hack", "_8x0G1i", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_76e0_HDEF.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY102.asl"
    //#include "SSDT-USB-8x0-G1-Ivy.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT.asl"
    #include "SSDT-EH01.asl"
    #include "SSDT-EH02.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-8x0G2b.dsl
================================================
// SSDT for 8x0 G2 Broadwell

DefinitionBlock("", "SSDT", 2, "hack", "_8x0G2b", 0)
{
    #define OVERRIDE_XPEE 1
    #include "SSDT-RMCF.asl"
    #include "SSDT-RP05_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/ALC280_HDEF.asl"
    #include "include/ALC280_HDAU.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-8x0-G2.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT-G2.asl"
    #include "include/disable_EH01.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-8x0G2h.dsl
================================================
// SSDT for 8x0 G2 Haswell

DefinitionBlock("", "SSDT", 2, "hack", "_8x0G2h", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-RP05_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/ALC282_HDEF.asl"
    #include "include/ALC282_HDAU.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY102.asl"
    #include "SSDT-USB-8x0-G2.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT-G2.asl"
    #include "include/disable_EH01.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-8x0G3b.dsl
================================================
// SSDT for 8x0 G3 Broadwell

DefinitionBlock("", "SSDT", 2, "hack", "_8x0G2b", 0)
{
    #define OVERRIDE_XPEE 1
    #include "SSDT-RMCF.asl"
    #include "SSDT-RP05_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/ALC280_HDEF.asl"
    #include "include/ALC280_HDAU.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-8x0-G2.asl"  //REVIEW: may not be correct USB setup
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT-G3.asl"
    #include "include/disable_EH01.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-8x0G3s.dsl
================================================
// SSDT for EliteBook 8x0 G3 (Skylake)

DefinitionBlock("", "SSDT", 2, "hack", "_8x0G3s", 0)
{
    #define OVERRIDE_XPEE 1
    #include "SSDT-RMCF.asl"
    #include "SSDT-RP05_PEGP_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/CX20724_HDEF.asl"
    #include "include/disable_HECI.asl"
    #include "include/key86_PS2K.asl"
    #include "SSDT-KEY102.asl"
    #include "SSDT-USB-8x0-G3.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT-G4.asl" //REVIEW: using SSDT-BATT-G4 instead of SSDT-BATT-G3
    #include "SSDT-USBX.asl"
    #include "SSDT-USWE.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-8x0G4k.dsl
================================================
// SSDT for ProBook 8x0 G4 (Kabylake)

DefinitionBlock("", "SSDT", 2, "hack", "_8x0G4k", 0)
{
    #define OVERRIDE_XPEE 1
    #include "SSDT-RMCF.asl"
    #include "SSDT-RP05_PXSX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/CX8200_HDEF.asl"
    #include "include/disable_HECI.asl"
    #include "include/key86_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-8x0-G4.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT-G4.asl"
    #include "SSDT-USBX.asl"
    #include "SSDT-USWE.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-8x60.dsl
================================================
// SSDT for 8x60

DefinitionBlock("", "SSDT", 2, "hack", "_8x60", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_7605_HDEF.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-8x60.asl"
    #include "SSDT-EH01.asl"
    #include "SSDT-EH02.asl"
    #include "SSDT-BATT.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-8x70.dsl
================================================
// SSDT for 8x70

DefinitionBlock("", "SSDT", 2, "hack", "_8x70", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_7605_HDEF.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-8x70.asl"
    #include "SSDT-EH01.asl"
    #include "SSDT-EH02.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-9x70.dsl
================================================
// SSDT for 9x70

DefinitionBlock("", "SSDT", 2, "hack", "_9x70", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-PEGP_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/IDT_76e0_HDEF.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-9x70.asl"
    #include "SSDT-EH01.asl"
    #include "SSDT-EH02.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-9x80.dsl
================================================
// SSDT for 9x80m Haswell

DefinitionBlock("", "SSDT", 2, "hack", "_9x80", 0)
{
    #include "SSDT-RMCF.asl"
    #include "SSDT-RP05_DGFX_RDSS.asl"
    #include "SSDT-HACK.asl"
    #include "include/ALC280_HDEF.asl"
    #include "include/ALC280_HDAU.asl"
    #include "include/standard_PS2K.asl"
    #include "SSDT-KEY87.asl"
    #include "SSDT-USB-9x80.asl"
    #include "SSDT-XHC.asl"
    #include "SSDT-BATT.asl"
    #include "include/disable_EH01.asl"
}
//EOF


================================================
FILE: hotpatch/SSDT-ALS0.asl
================================================
// Fake ambient light sensor device
//DefinitionBlock("", "SSDT", 2, "hack", "ALS0", 0)
//{
    Device(_SB.ALS0)
    {
        Name(_HID, "ACPI0008")
        Name(_CID, "smc-als")
        Name(_ALI, 300)
        Name(_ALR, Package()
        {
            //Package() { 70, 0 },
            //Package() { 73, 10 },
            //Package() { 85, 80 },
            Package() { 100, 300 },
            //Package() { 150, 1000 },
        })
    }
//}
//EOF


================================================
FILE: hotpatch/SSDT-BATT-G2.asl
================================================
// battery status patched for ProBook G2 laptops

//DefinitionBlock("", "SSDT", 2, "hack", "battg2", 0)
//{
    External(\_SB.PCI0, DeviceObj)
    External(\_SB.PCI0.LPCB, DeviceObj)
    External(\_SB.PCI0.LPCB.EC, DeviceObj)

    Scope(\_SB.PCI0.LPCB.EC)
    {
        // This is an override for battery methods that access EC fields
        // larger than 8-bit.
        OperationRegion (ECR2, EmbeddedControl, 0x00, 0xFF)
        Field (ECR2, ByteAcc, NoLock, Preserve)
        {
            Offset (0x87),
            ,8,//LB1,    8,
            ,8,//LB2,    8,
            BDC0, 8, BDC1, 8,
            Offset (0x8D),
            BFC0, 8, BFC1, 8,
            RTE0, 8, RTE1, 8,
            //BTC,    1,
            Offset (0x92),
            BME0, 8, BME1, 8,
            ,8,//BDN,    8,
            BDV0, 8, BDV1, 8,
            BCX0, 8, BCX1, 8,
            //BST,    4,
            Offset (0x9B),
            ATE0, 8, ATE1, 8,
            BPR0, 8, BPR1, 8,
            BCR0, 8, BCR1, 8,
            BRC0, 8, BRC1, 8,
            BCC0, 8, BCC1, 8,
            BPV0, 8, BPV1, 8,
            BCA0, 8, BCA1, 8,
            BCB0, 8, BCB1, 8,
            BCP0, 8, BCP1, 8,
            ,16,//BCW,    16,
            ATF0, 8, ATF1, 8,
            ,16,//BCL,    16,
            AXC0, 8, AXC1, 8,
            ,8,//BCG1,   8,
            ,1,//BT1I,   1,
            ,1,//BT2I,   1,
            ,2,//,   2,
            ,4,//BATN,   4,
            BST0, 8, BST1, 8,
            //...
            Offset (0xC9),
            BSN0, 8, BSN1, 8,
            BDA0, 8, BDA1, 8,
            //BMF,    8,
            //Offset (0xCF),
            //CTLB,   8,
            //Offset (0xD1),
            //BTY,    8,
            //Offset (0xD5),
            //MFAC,   8,//d5
            //CFAN,   8,//d6
            //PFAN,   8,//d7
            //OCPS,   8,//d8
            //OCPR,   8,//d9
            //OCPE,   8,//da
            //TMP1,   8,//db
            //TMP2,   8,//dc
            //NABT,   4,//dd
            //BCM,    4,
            //CCBQ,   16,//de
                Offset(0xe0),
            CBT0, 8, CBT1, 8,
            //...
        }
        
        External(\_SB.PCI0.LPCB.EC.BTDR, MethodObj)
        External(\_SB.PCI0.LPCB.EC.BSTA, MethodObj)
        External(\_SB.PCI0.LPCB.EC.BTMX, MutexObj)
        External(\_SB.PCI0.LPCB.EC.NGBF, IntObj)
        External(\_SB.PCI0.LPCB.EC.NGBT, IntObj)
        External(\_SB.NBST, PkgObj)
        External(\_SB.NDBS, PkgObj)
        External(\_SB.PCI0.LPCB.EC.ECMX, MutexObj)
        External(\_SB.PCI0.LPCB.EC.ECRG, IntObj)
        External(\_SB.PCI0.LPCB.EC.BSEL, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.NLB1, IntObj)
        External(\_SB.PCI0.LPCB.EC.NLB2, IntObj)
        External(\_SB.PCI0.LPCB.EC.CRZN, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.TEMP, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.GBSS, MethodObj)
        External(\_SB.PCI0.LPCB.EC.BST, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.GACS, MethodObj)
        External(\_SB.PCI0.LPCB.EC.NDCB, IntObj)
        External(\_SB.PCI0.LPCB.EC.BATP, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.INCH, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.IDIS, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.INAC, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.PSSB, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.GBMF, MethodObj)
        External(\_SB.PCI0.LPCB.EC.GCTL, MethodObj)
        External(\_SB.PCI0.LPCB.EC.GDNM, MethodObj)
        External(\_SB.PCI0.LPCB.EC.GDCH, MethodObj)
        External(\_SB.PCI0.LPCB.EC.BRCC, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.BRCV, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.BATN, FieldUnitObj)
        External(\PRDT, FieldUnitObj)
        
        // ITLB is renamed to ITL1 for other models... delegation necessary
        External(\_SB.PCI0.LPCB.EC.ITL1, MethodObj)
        Method(ITLB, 0) { ITL1() }

        // BTIF/BTST methods are renamed in native DSDT, so calls land here...
        Method (BTIF, 1, Serialized)
        {
            ShiftLeft (0x01, Arg0, Local7)
            BTDR (0x01)
            If (LEqual (BSTA (Local7), 0x0F))
            {
                Return (0xFF)
            }

            Acquire (BTMX, 0xFFFF)
            Store (NGBF, Local0)
            Release (BTMX)
            If (LEqual (And (Local0, Local7), 0x00))
            {
                Return (0x00)
            }

            Store (NDBS, Index (NBST, Arg0))
            Acquire (BTMX, 0xFFFF)
            Or (NGBT, Local7, NGBT)
            Release (BTMX)
            Acquire (ECMX, 0xFFFF)
            If (ECRG)
            {
                Store (Arg0, BSEL)
                Store (B1B2 (BFC0, BFC1), Local0)
                Store (Local0, Index (DerefOf (Index (NBTI, Arg0)), 0x01))
                Store (Local0, Index (DerefOf (Index (NBTI, Arg0)), 0x02))
                Store (B1B2 (BDV0, BDV1), Index (DerefOf (Index (NBTI, Arg0)), 0x04))
                Store (NLB1, Index (DerefOf (Index (NBTI, Arg0)), 0x05))
                Store (NLB2, Index (DerefOf (Index (NBTI, Arg0)), 0x06))
                Store (B1B2 (BSN0, BSN1), Local0)
                Store (B1B2 (BDA0, BDA1), Local1)
                // battery cycle count
                Store (B1B2 (BCC0, BCC1), Index (DerefOf (Index (NBTI, Arg0)), 0x0D))
                // battery temperature
                Acquire (\_SB.PCI0.LPCB.EC.ECMX, 0xFFFF)
                Store (5, \_SB.PCI0.LPCB.EC.CRZN)
                Store (\_SB.PCI0.LPCB.EC.TEMP, Local2)
                Release (\_SB.PCI0.LPCB.EC.ECMX)
                Add (Multiply (Local2, 10), 2732, Local2) // Celsius to .1K
                Store (Local2, Index (DerefOf (Index (NBTI, Arg0)), 0x0E))

            }

            Release (ECMX)
            Store (GBSS (Local0, Local1), Local2)
            Store (Local2, Index (DerefOf (Index (NBTI, Arg0)), 0x0A))
            Acquire (BTMX, 0xFFFF)
            And (NGBF, Not (Local7), NGBF)
            Release (BTMX)
            Return (0x00)
        }

        Method (BTST, 2, Serialized)
        {
            ShiftLeft (0x01, Arg0, Local7)
            BTDR (0x01)
            If (LEqual (BSTA (Local7), 0x0F))
            {
                Store (Package (0x04)
                {
                    0x00,
                    0xFFFFFFFF,
                    0xFFFFFFFF,
                    0xFFFFFFFF
                }, Index (NBST, Arg0))
                Return (0xFF)
            }

            Acquire (BTMX, 0xFFFF)
            If (Arg1)
            {
                Store (0xFF, NGBT)
            }

            Store (NGBT, Local0)
            Release (BTMX)
            If (LEqual (And (Local0, Local7), 0x00))
            {
                Return (0x00)
            }

            Acquire (ECMX, 0xFFFF)
            If (ECRG)
            {
                Store (Arg0, BSEL)
                Store (BST, Local0)
                Store (B1B2 (BPR0, BPR1), Local3)
                Store (B1B2 (BRC0, BRC1), Index (DerefOf (Index (NBST, Arg0)), 0x02))
                Store (B1B2 (BPV0, BPV1), Index (DerefOf (Index (NBST, Arg0)), 0x03))
            }

            Release (ECMX)
            If (LEqual (GACS (), 0x01))
            {
                And (Not (0x01), Local0, Local0)
            }
            Else
            {
                And (Not (0x02), Local0, Local0)
            }

            If (And (Local0, 0x01))
            {
                Acquire (BTMX, 0xFFFF)
                Store (Local7, NDCB)
                Release (BTMX)
            }

            Store (Local0, Index (DerefOf (Index (NBST, Arg0)), 0x00))
            If (And (Local0, 0x01))
            {
                If (LOr (LLess (Local3, 0x0190), LGreater (Local3, 0x1964)))
                {
                    Store (DerefOf (Index (DerefOf (Index (NBST, Arg0)), 0x01)), Local5)
                    If (LOr (LLess (Local5, 0x0190), LGreater (Local5, 0x1964)))
                    {
                        Store (Divide (0x1AF4, 0x02, ), Local3)
                    }
                    Else
                    {
                        Store (Local5, Local3)
                    }
                }
            }
            ElseIf (LEqual (And (Local0, 0x02), 0x00))
            {
                Store (0x00, Local3)
            }

            Store (Local3, Index (DerefOf (Index (NBST, Arg0)), 0x01))
            Acquire (BTMX, 0xFFFF)
            And (NGBT, Not (Local7), NGBT)
            Release (BTMX)
            Return (0x00)
        }

        // SBTC is renamed in native DSDT so calls land here
        Method (SBTC, 3, NotSerialized)
        {
            Store ("Enter SetBatteryControl", Debug)
            Acquire (ECMX, 0xFFFF)
            If (ECRG)
            {
                Store (Arg2, Local0)
                Store (Local0, Debug)
                Store (Package (0x02)
                {
                    0x06,
                    0x00
                }, Local4)
                Store (0x00, Local1)
                Store (0x00, Local2)
                Store (DerefOf (Index (Local0, 0x10)), Local1)
                If (LEqual (Local1, 0x00))
                {
                    Store ("battery 0", Debug)
                    If (And (BATP, 0x01))
                    {
                        Store (DerefOf (Index (Local0, 0x11)), Local2)
                        If (LEqual (Local2, 0x00))
                        {
                            Store (0x00, INCH)
                            Store (0x00, IDIS)
                            Store (0x00, INAC)
                            Store (0x00, AXC0)
                            Store (0x00, AXC1)
                            Store (0x01, PSSB)
                            Store (Package (0x02)
                            {
                                0x00,
                                0x00
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x01))
                        {
                            Store (0x00, INAC)
                            Store (0x02, INCH)
                            Store (0x01, IDIS)
                            Store (0x00, AXC0)
                            Store (0x00, AXC1)
                            Store (0x00, PSSB)
                            Store (Package (0x02)
                            {
                                0x00,
                                0x00
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x02))
                        {
                            Store (0x01, INAC)
                            Store (0x01, INCH)
                            Store (0x02, IDIS)
                            Store (0x00, PSSB)
                            Store (Package (0x02)
                            {
                                0x00,
                                0x00
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x03))
                        {
                            Store (0x02, INCH)
                            Store (0x01, IDIS)
                            Store (0x00, INAC)
                            Store (0xFA, AXC0)
                            Store (Zero, AXC1)
                            Store (0x00, PSSB)
                            Store (Package (0x02)
                            {
                                0x00,
                                0x00
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x04))
                        {
                            Store (0xFA, AXC0)
                            Store (Zero, AXC1)
                            Store (Package (0x02)
                            {
                                0x00,
                                0x00
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x05))
                        {
                            Store (0x00, INAC)
                            Store (0x03, INCH)
                            Store (Package (0x02)
                            {
                                0x00,
                                0x00
                            }, Local4)
                        }
                    }
                    Else
                    {
                        Store (Package (0x02)
                        {
                            0x34,
                            0x00
                        }, Local4)
                    }
                }

                If (LEqual (Local1, 0x01))
                {
                    If (And (BATP, 0x02))
                    {
                        Store ("battery 1", Debug)
                        Store (DerefOf (Index (Local0, 0x11)), Local2)
                        If (LEqual (Local2, 0x00))
                        {
                            Store (0x00, INCH)
                            Store (0x00, IDIS)
                            Store (0x00, INAC)
                            Store (0x00, AXC0)
                            Store (0x00, AXC1)
                            Store (0x01, PSSB)
                            Store (Package (0x02)
                            {
                                0x00,
                                0x00
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x01))
                        {
                            Store (0x00, INAC)
                            Store (0x01, INCH)
                            Store (0x02, IDIS)
                            Store (0x00, AXC0)
                            Store (0x00, AXC1)
                            Store (0x00, PSSB)
                            Store (Package (0x02)
                            {
                                0x00,
                                0x00
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x02))
                        {
                            Store (0x01, INAC)
                            Store (0x02, INCH)
                            Store (0x01, IDIS)
                            Store (0x00, PSSB)
                            Store (Package (0x02)
                            {
                                0x00,
                                0x00
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x03))
                        {
                            Store (0x01, INCH)
                            Store (0x02, IDIS)
                            Store (0x00, INAC)
                            Store (0xFA, AXC0)
                            Store (Zero, AXC1)
                            Store (0x00, PSSB)
                            Store (Package (0x02)
                            {
                                0x00,
                                0x00
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x04))
                        {
                            Store (0x00, INCH)
                            Store (0x00, IDIS)
                            Store (0x00, INAC)
                            Store (Package (0x02)
                            {
                                0x00,
                                0x00
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x05))
                        {
                            Store (0x00, INAC)
                            Store (0x03, INCH)
                            Store (Package (0x02)
                            {
                                0x00,
                                0x00
                            }, Local4)
                        }
                    }
                    Else
                    {
                        Store (Package (0x02)
                        {
                            0x34,
                            0x00
                        }, Local4)
                    }
                }
            }

            Release (ECMX)
            Return (Local4)
        }

        // GBTI is renamed in native DSDT so calls land here
        Method (GBTI, 1, NotSerialized)
        {
            Store ("Enter getbattinfo", Debug)
            Acquire (ECMX, 0xFFFF)
            If (ECRG)
            {
                If (And (BATP, ShiftLeft (0x01, Arg0)))
                {
                    Store (Arg0, BSEL)
                    Store (Package (0x03)
                    {
                        0x00,
                        0x6B,
                        Buffer (0x6B) {}
                    }, Local0)
                    Store (B1B2 (BDC0, BDC1), Index (DerefOf (Index (Local0, 0x02)), 0x00))
                    Store (ShiftRight (B1B2 (BDC0, BDC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x01))
                    Store (B1B2 (BFC0, BFC1), Index (DerefOf (Index (Local0, 0x02)), 0x02))
                    Store (ShiftRight (B1B2 (BFC0, BFC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x03))
                    Store (B1B2 (BRC0, BRC1), Index (DerefOf (Index (Local0, 0x02)), 0x04))
                    Store (ShiftRight (B1B2 (BRC0, BRC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x05))
                    Store (B1B2 (BME0, BME1), Index (DerefOf (Index (Local0, 0x02)), 0x06))
                    Store (ShiftRight (B1B2 (BME0, BME1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x07))
                    Store (B1B2 (BCC0, BCC1), Index (DerefOf (Index (Local0, 0x02)), 0x08))
                    Store (ShiftRight (B1B2 (BCC0, BCC1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x09))
                    Store (B1B2 (CBT0, CBT1), Local1)
                    Subtract (Local1, 0x0AAC, Local1)
                    Divide (Local1, 0x0A, Local2, Local3)
                    Store (Local3, Index (DerefOf (Index (Local0, 0x02)), 0x0A))
                    Store (ShiftRight (Local3, 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x0B))
                    Store (B1B2 (BPV0, BPV1), Index (DerefOf (Index (Local0, 0x02)), 0x0C))
                    Store (ShiftRight (B1B2 (BPV0, BPV1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x0D))
                    Store (B1B2 (BPR0, BPR1), Local1)
                    If (Local1)
                    {
                        If (And (B1B2 (BST0, BST1), 0x40))
                        {
                            Add (Not (Local1), 0x01, Local1)
                            And (Local1, 0xFFFF, Local1)
                        }
                    }

                    Store (Local1, Index (DerefOf (Index (Local0, 0x02)), 0x0E))
                    Store (ShiftRight (Local1, 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x0F))
                    Store (B1B2 (BDV0, BDV1), Index (DerefOf (Index (Local0, 0x02)), 0x10))
                    Store (ShiftRight (B1B2 (BDV0, BDV1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x11))
                    Store (B1B2 (BST0, BST1), Index (DerefOf (Index (Local0, 0x02)), 0x12))
                    Store (ShiftRight (B1B2 (BST0, BST1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x13))
                    Store (B1B2 (BCX0, BCX1), Index (DerefOf (Index (Local0, 0x02)), 0x14))
                    Store (ShiftRight (B1B2 (BCX0, BCX1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x15))
                    Store (B1B2 (BCA0, BCA1), Index (DerefOf (Index (Local0, 0x02)), 0x16))
                    Store (ShiftRight (B1B2 (BCA0, BCA1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x17))
                    Store (B1B2 (BCB0, BCB1), Index (DerefOf (Index (Local0, 0x02)), 0x18))
                    Store (ShiftRight (B1B2 (BCB0, BCB1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x19))
                    Store (B1B2 (BCP0, BCP1), Index (DerefOf (Index (Local0, 0x02)), 0x1A))
                    Store (ShiftRight (B1B2 (BCP0, BCP1), 0x08), Index (DerefOf (Index (Local0, 0x02)), 0x1B))
                    CreateField (DerefOf (Index (Local0, 0x02)), Multiply (0x1C, 0x08), Multiply (0x10, 0x08), BTSN)
                    Store (GBSS (B1B2 (BSN0, BSN1), B1B2 (BDA0, BDA1)), BTSN)

                    Store (GBMF (), Local1)
                    Store (SizeOf (Local1), Local2)
                    CreateField (DerefOf (Index (Local0, 0x02)), Multiply (0x2C, 0x08), Multiply (Local2, 0x08), BMAN)
                    Store (Local1, BMAN)
                    Add (Local2, 0x2C, Local2)
                    CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x10, 0x08), CLBL)
                    Store (GCTL (0x00), CLBL)
                    Add (Local2, 0x11, Local2)
                    CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x07, 0x08), DNAM)
                    Store (GDNM (0x00), DNAM)
                    Add (Local2, 0x07, Local2)
                    CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x04, 0x08), DCHE)
                    Store (GDCH (0x00), DCHE)
                    Add (Local2, 0x04, Local2)
                    CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), BMAC)
                    Store (0x00, BMAC)
                    Add (Local2, 0x02, Local2)
                    CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), BMAD)
                    Store (B1B2 (BDA0, BDA1), BMAD)
                    Add (Local2, 0x02, Local2)
                    CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), BCCU)
                    Store (BRCC, BCCU)
                    Add (Local2, 0x02, Local2)
                    CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), BCVO)
                    Store (BRCV, BCVO)
                    Add (Local2, 0x02, Local2)
                    CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), BAVC)
                    Store (B1B2 (BCR0, BCR1), Local1)
                    If (Local1)
                    {
                        If (And (B1B2 (BST0, BST1), 0x40))
                        {
                            Add (Not (Local1), 0x01, Local1)
                            And (Local1, 0xFFFF, Local1)
                        }
                    }

                    Store (Local1, BAVC)
                    Add (Local2, 0x02, Local2)
                    CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), RTTE)
                    Store (B1B2 (RTE0, RTE1), RTTE)
                    Add (Local2, 0x02, Local2)
                    CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), ATTE)
                    Store (B1B2 (ATE0, ATE1), RTTE)
                    Add (Local2, 0x02, Local2)
                    CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x02, 0x08), ATTF)
                    Store (B1B2 (ATF0, ATF1), RTTE)
                    Add (Local2, 0x02, Local2)
                    CreateField (DerefOf (Index (Local0, 0x02)), Multiply (Local2, 0x08), Multiply (0x01, 0x08), NOBS)
                    If (LOr (LEqual (PRDT, 0x50), LEqual (PRDT, 0x53)))
                    {
                        Store (0x01, NOBS)
                    }
                    Else
                    {
                        Store (0x02, NOBS)
                    }
                }
                Else
                {
                    Store (Package (0x02)
                    {
                        0x34,
                        0x00
                    }, Local0)
                }
            }
            Else
            {
                Store (Package (0x02)
                {
                    0x0D,
                    0x00
                }, Local0)
            }

            Release (ECMX)
            Return (Local0)
        }

        // GBTC is renamed in native DSDT, so calls land here
        Method (GBTC, 0, NotSerialized)
        {
            Store ("Enter GetBatteryControl", Debug)
            Acquire (ECMX, 0xFFFF)
            If (ECRG)
            {
                Store (Package (0x03)
                {
                    0x00,
                    0x04,
                    Buffer (0x04) {}
                }, Local0)
                If (And (BATP, 0x01))
                {
                    Store (0x00, BSEL)
                    Store (0x00, Index (DerefOf (Index (Local0, 0x02)), 0x00))
                    If (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x00)), LEqual (IDIS, 0x00)))
                    {
                        Store (0x00, Index (DerefOf (Index (Local0, 0x02)), 0x00))
                    }
                    ElseIf (LAnd (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x02)), LEqual (IDIS, 0x01)), LEqual (B1B2 (AXC0, AXC1), 0x00)))
                    {
                        Store (0x01, Index (DerefOf (Index (Local0, 0x02)), 0x00))
                    }
                    ElseIf (LAnd (LEqual (INAC, 0x01), LEqual (IDIS, 0x02)))
                    {
                        Store (0x02, Index (DerefOf (Index (Local0, 0x02)), 0x00))
                    }
                    ElseIf (LAnd (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x02)), LEqual (IDIS, 0x01)), LEqual (B1B2 (AXC0, AXC1), 0xFA)))
                    {
                        Store (0x03, Index (DerefOf (Index (Local0, 0x02)), 0x00))
                    }
                    ElseIf (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x03)))
                    {
                        Store (0x04, Index (DerefOf (Index (Local0, 0x02)), 0x00))
                    }
                }
                Else
                {
                    Store (0xFF, Index (DerefOf (Index (Local0, 0x02)), 0x00))
                }

                If (And (BATP, 0x02))
                {
                    Store (0x01, BSEL)
                    Store (0x00, Index (DerefOf (Index (Local0, 0x02)), 0x01))
                    If (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x00)), LEqual (IDIS, 0x00)))
                    {
                        Store (0x00, Index (DerefOf (Index (Local0, 0x02)), 0x01))
                    }
                    ElseIf (LAnd (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x01)), LEqual (IDIS, 0x02)), LEqual (B1B2 (AXC0, AXC1), 0x00)))
                    {
                        Store (0x01, Index (DerefOf (Index (Local0, 0x02)), 0x01))
                    }
                    ElseIf (LAnd (LEqual (INAC, 0x01), LEqual (IDIS, 0x01)))
                    {
                        Store (0x02, Index (DerefOf (Index (Local0, 0x02)), 0x01))
                    }
                    ElseIf (LAnd (LAnd (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x01)), LEqual (IDIS, 0x02)), LEqual (B1B2 (AXC0, AXC1), 0xFA)))
                    {
                        Store (0x03, Index (DerefOf (Index (Local0, 0x02)), 0x01))
                    }
                    ElseIf (LAnd (LEqual (INAC, 0x00), LEqual (INCH, 0x03)))
                    {
                        Store (0x04, Index (DerefOf (Index (Local0, 0x02)), 0x01))
                    }
                }
                Else
                {
                    Store (0xFF, Index (DerefOf (Index (Local0, 0x02)), 0x01))
                }
            }
            Else
            {
                Store (Package (0x02)
                {
                    0x35,
                    0x00
                }, Local0)
            }

            Release (ECMX)
            Return (Local0)
        }
    }

    Scope (\_SB)
    {
        // This is the replacement for native NBTI in DSDT
        // The NBTI in DSDT is renamed to XBTI
        Name (NBTI, Package(0x02)
        {
            Package(0x0F)
            {
                0x01,
                0xFFFFFFFF,
                0xFFFFFFFF,
                0x01,
                0xFFFFFFFF,
                0x00,
                0x00,
                0x64,
                0x64,
                "Primary",
                "100000",
                "LIon",
                "Hewlett-Packard",
                Zero,
                Zero,
            },
            Package(0x0F)
            {
                0x01,
                0xFFFFFFFF,
                0xFFFFFFFF,
                0x01,
                0xFFFFFFFF,
                0x00,
                0x00,
                0x64,
                0x64,
                "Travel",
                "100000",
                "LIon",
                "Hewlett-Packard",
                Zero,
                Zero,
            }
        })
    }

    Method (B1B2, 2, NotSerialized)
    {
        ShiftLeft (Arg1, 8, Local0)
        Or (Arg0, Local0, Local0)
        Return (Local0)
    }
//}

//EOF


================================================
FILE: hotpatch/SSDT-BATT-G3.asl
================================================
// battery status patched for ProBook G3 (Skylake) laptops

//REVIEW: currently not used, as BIOS seems to be updated to the SSDT-BATT-G4.asl code
// This file can eventually be removed.

//DefinitionBlock("", "SSDT", 2, "hack", "battg3", 0)
//{
    External(\_SB.PCI0, DeviceObj)
    External(\_SB.PCI0.LPCB, DeviceObj)
    External(\_SB.PCI0.LPCB.EC, DeviceObj)

    Scope(\_SB.PCI0.LPCB.EC)
    {
        // This is an override for battery methods that access EC fields
        // larger than 8-bit.
        OperationRegion (ECR2, EmbeddedControl, 0x00, 0xFF)
        Field (ECR2, ByteAcc, NoLock, Preserve)
        {
            Offset (0x87),
            ,8,//LB1,    8,
            ,8,//LB2,    8,
            BDC0, 8, BDC1, 8,
            Offset (0x8D),
            BFC0, 8, BFC1, 8,
            RTE0, 8, RTE1, 8,
            //BTC,    1,
            Offset (0x92),
            BME0, 8, BME1, 8,
            ,8,//BDN,    8,
            BDV0, 8, BDV1, 8,
            BCX0, 8, BCX1, 8,
            //BST,    4,
            Offset (0x9B),
            ATE0, 8, ATE1, 8,
            BPR0, 8, BPR1, 8,
            BCR0, 8, BCR1, 8,
            BRC0, 8, BRC1, 8,
            BCC0, 8, BCC1, 8,
            BPV0, 8, BPV1, 8,
            BCA0, 8, BCA1, 8,
            BCB0, 8, BCB1, 8,
            BCP0, 8, BCP1, 8,
            ,16,//BCW,    16,
            ATF0, 8, ATF1, 8,
            ,16,//BCL,    16,
            AXC0, 8, AXC1, 8,
            ,8,//BCG1,   8,
            ,1,//BT1I,   1,
            ,1,//BT2I,   1,
            ,2,//,   2,
            ,4,//BATN,   4,
            BST0, 8, BST1, 8,
            //...
            Offset (0xC9),
            BSN0, 8, BSN1, 8,
            BDA0, 8, BDA1, 8,
            //BMF,    8,
            //Offset (0xCF),
            //CTLB,   8,
            //Offset (0xD1),
            //BTY,    8,
            //Offset (0xD5),
            //MFAC,   8,//d5
            //CFAN,   8,//d6
            //PFAN,   8,//d7
            //OCPS,   8,//d8
            //OCPR,   8,//d9
            //OCPE,   8,//da
            //TMP1,   8,//db
            //TMP2,   8,//dc
            //NABT,   4,//dd
            //BCM,    4,
            //CCBQ,   16,//de
                Offset(0xe0),
            CBT0, 8, CBT1, 8,
            //...
        }
        
        External(\_SB.PCI0.LPCB.EC.BTDR, MethodObj)
        External(\_SB.PCI0.LPCB.EC.BSTA, MethodObj)
        External(\_SB.PCI0.LPCB.EC.BTMX, MutexObj)
        External(\_SB.PCI0.LPCB.EC.NGBF, IntObj)
        External(\_SB.PCI0.LPCB.EC.NGBT, IntObj)
        External(\_SB.NBST, PkgObj)
        External(\_SB.NDBS, PkgObj)
        External(\_SB.PCI0.LPCB.EC.ECMX, MutexObj)
        External(\_SB.PCI0.LPCB.EC.ECRG, IntObj)
        External(\_SB.PCI0.LPCB.EC.BSEL, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.NLB1, IntObj)
        External(\_SB.PCI0.LPCB.EC.NLB2, IntObj)
        External(\_SB.PCI0.LPCB.EC.CRZN, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.TEMP, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.GBSS, MethodObj)
        External(\_SB.PCI0.LPCB.EC.BST, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.GACS, MethodObj)
        External(\_SB.PCI0.LPCB.EC.NDCB, IntObj)
        External(\_SB.PCI0.LPCB.EC.BATP, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.INCH, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.IDIS, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.INAC, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.PSSB, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.GBMF, MethodObj)
        External(\_SB.PCI0.LPCB.EC.GCTL, MethodObj)
        External(\_SB.PCI0.LPCB.EC.GDNM, MethodObj)
        External(\_SB.PCI0.LPCB.EC.GDCH, MethodObj)
        External(\_SB.PCI0.LPCB.EC.BRCC, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.BRCV, FieldUnitObj)
        External(\_SB.PCI0.LPCB.EC.BATN, FieldUnitObj)
        
        // ITLB is renamed to ITL1 for other models... delegation necessary
        External(\_SB.PCI0.LPCB.EC.ITL1, MethodObj)
        Method(ITLB, 0) { ITL1() }

        // BTIF/BTST methods are renamed in native DSDT, so calls land here...
        Method (BTIF, 1, Serialized)
        {
            ShiftLeft (One, Arg0, Local7)
            BTDR (One)
            If (LEqual (BSTA (Local7), 0x0F))
            {
                Return (0xFF)
            }

            Acquire (BTMX, 0xFFFF)
            Store (NGBF, Local0)
            Release (BTMX)
            If (LEqual (And (Local0, Local7), Zero))
            {
                Return (Zero)
            }

            Store (NDBS, Index (NBST, Arg0))
            Acquire (BTMX, 0xFFFF)
            Or (NGBT, Local7, NGBT)
            Release (BTMX)
            Acquire (ECMX, 0xFFFF)
            If (ECRG)
            {
                Store (Arg0, BSEL)
                Store (B1B2 (BFC0, BFC1), Local0)
                Store (Local0, Index (DerefOf (Index (NBTI, Arg0)), One))
                Store (Local0, Index (DerefOf (Index (NBTI, Arg0)), 0x02))
                Store (B1B2 (BDV0, BDV1), Index (DerefOf (Index (NBTI, Arg0)), 0x04))
                Store (NLB1, Index (DerefOf (Index (NBTI, Arg0)), 0x05))
                Store (NLB2, Index (DerefOf (Index (NBTI, Arg0)), 0x06))
                Store (B1B2 (BSN0, BSN1), Local0)
                Store (B1B2 (BDA0, BDA1), Local1)
                // battery cycle count
                Store (B1B2 (BCC0, BCC1), Index (DerefOf (Index (NBTI, Arg0)), 0x0D))
                // battery temperature
                Acquire (\_SB.PCI0.LPCB.EC.ECMX, 0xFFFF)
                Store (5, \_SB.PCI0.LPCB.EC.CRZN)
                Store (\_SB.PCI0.LPCB.EC.TEMP, Local2)
                Release (\_SB.PCI0.LPCB.EC.ECMX)
                Add (Multiply (Local2, 10), 2732, Local2) // Celsius to .1K
                Store (Local2, Index (DerefOf (Index (NBTI, Arg0)), 0x0E))

            }

            Release (ECMX)
            Store (GBSS (Local0, Local1), Local2)
            Store (Local2, Index (DerefOf (Index (NBTI, Arg0)), 0x0A))
            Acquire (BTMX, 0xFFFF)
            And (NGBF, Not (Local7), NGBF)
            Release (BTMX)
            Return (Zero)
        }

        Method (BTST, 2, Serialized)
        {
            ShiftLeft (One, Arg0, Local7)
            BTDR (One)
            If (LEqual (BSTA (Local7), 0x0F))
            {
                Store (Package (0x04)
                {
                    Zero,
                    0xFFFFFFFF,
                    0xFFFFFFFF,
                    0xFFFFFFFF
                }, Index (NBST, Arg0))
                Return (0xFF)
            }

            Acquire (BTMX, 0xFFFF)
            If (Arg1)
            {
                Store (0xFF, NGBT)
            }

            Store (NGBT, Local0)
            Release (BTMX)
            If (LEqual (And (Local0, Local7), Zero))
            {
                Return (Zero)
            }

            Acquire (ECMX, 0xFFFF)
            If (ECRG)
            {
                Store (Arg0, BSEL)
                Store (BST, Local0)
                Store (B1B2 (BPR0, BPR1), Local3)
                Store (B1B2 (BRC0, BRC1), Index (DerefOf (Index (NBST, Arg0)), 0x02))
                Store (B1B2 (BPV0, BPV1), Index (DerefOf (Index (NBST, Arg0)), 0x03))
            }

            Release (ECMX)
            If (LEqual (GACS (), One))
            {
                And (0xFFFFFFFFFFFFFFFE, Local0, Local0)
            }
            Else
            {
                And (0xFFFFFFFFFFFFFFFD, Local0, Local0)
            }

            If (And (Local0, One))
            {
                Acquire (BTMX, 0xFFFF)
                Store (Local7, NDCB)
                Release (BTMX)
            }

            Store (Local0, Index (DerefOf (Index (NBST, Arg0)), Zero))
            If (And (Local0, One))
            {
                If (LOr (LLess (Local3, 0x0190), LGreater (Local3, 0x1964)))
                {
                    Store (DerefOf (Index (DerefOf (Index (NBST, Arg0)), One)), Local5)
                    If (LOr (LLess (Local5, 0x0190), LGreater (Local5, 0x1964)))
                    {
                        Store (0x0D7A, Local3)
                    }
                    Else
                    {
                        Store (Local5, Local3)
                    }
                }
            }
            ElseIf (LEqual (And (Local0, 0x02), Zero))
            {
                Store (Zero, Local3)
            }

            Store (Local3, Index (DerefOf (Index (NBST, Arg0)), One))
            Acquire (BTMX, 0xFFFF)
            And (NGBT, Not (Local7), NGBT)
            Release (BTMX)
            Return (Zero)
        }

        // SBTC is renamed in native DSDT so calls land here
        Method (SBTC, 3, NotSerialized)
        {
            Store ("Enter SetBatteryControl", Debug)
            Acquire (ECMX, 0xFFFF)
            If (ECRG)
            {
                Store (Arg2, Local0)
                Store (Local0, Debug)
                Store (Package (0x01)
                {
                    0x06
                }, Local4)
                Store (Zero, Local1)
                Store (Zero, Local2)
                Store (DerefOf (Index (Local0, Zero)), Local1)
                If (LEqual (Local1, Zero))
                {
                    Store ("battery 0", Debug)
                    If (And (BATP, One))
                    {
                        Store (DerefOf (Index (Local0, One)), Local2)
                        If (LEqual (Local2, Zero))
                        {
                            Store (Zero, INCH)
                            Store (Zero, IDIS)
                            Store (Zero, INAC)
                            Store (Zero, AXC0)
                            Store (Zero, AXC1)
                            Store (One, PSSB)
                            Store (Package (0x01)
                            {
                                Zero
                            }, Local4)
                        }

                        If (LEqual (Local2, One))
                        {
                            Store (Zero, INAC)
                            Store (0x02, INCH)
                            Store (One, IDIS)
                            Store (Zero, AXC0)
                            Store (Zero, AXC1)
                            Store (Zero, PSSB)
                            Store (Package (0x01)
                            {
                                Zero
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x02))
                        {
                            Store (One, INAC)
                            Store (One, INCH)
                            Store (0x02, IDIS)
                            Store (Zero, PSSB)
                            Store (Package (0x01)
                            {
                                Zero
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x03))
                        {
                            Store (0x02, INCH)
                            Store (One, IDIS)
                            Store (Zero, INAC)
                            Store (0xFA, AXC0)
                            Store (Zero, AXC1)
                            Store (Zero, PSSB)
                            Store (Package (0x01)
                            {
                                Zero
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x04))
                        {
                            Store (0xFA, AXC0)
                            Store (Zero, AXC1)
                            Store (Package (0x01)
                            {
                                Zero
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x05))
                        {
                            Store (Zero, INAC)
                            Store (0x03, INCH)
                            Store (Package (0x01)
                            {
                                Zero
                            }, Local4)
                        }
                    }
                    Else
                    {
                        Store (Package (0x01)
                        {
                            0x34
                        }, Local4)
                    }
                }

                If (LEqual (Local1, One))
                {
                    If (And (BATP, 0x02))
                    {
                        Store ("battery 1", Debug)
                        Store (DerefOf (Index (Local0, One)), Local2)
                        If (LEqual (Local2, Zero))
                        {
                            Store (Zero, INCH)
                            Store (Zero, IDIS)
                            Store (Zero, INAC)
                            Store (Zero, AXC0)
                            Store (Zero, AXC1)
                            Store (One, PSSB)
                            Store (Package (0x01)
                            {
                                Zero
                            }, Local4)
                        }

                        If (LEqual (Local2, One))
                        {
                            Store (Zero, INAC)
                            Store (One, INCH)
                            Store (0x02, IDIS)
                            Store (Zero, AXC0)
                            Store (Zero, AXC1)
                            Store (Zero, PSSB)
                            Store (Package (0x01)
                            {
                                Zero
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x02))
                        {
                            Store (One, INAC)
                            Store (0x02, INCH)
                            Store (One, IDIS)
                            Store (Zero, PSSB)
                            Store (Package (0x01)
                            {
                                Zero
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x03))
                        {
                            Store (One, INCH)
                            Store (0x02, IDIS)
                            Store (Zero, INAC)
                            Store (0xFA, AXC0)
                            Store (Zero, AXC1)
                            Store (Zero, PSSB)
                            Store (Package (0x01)
                            {
                                Zero
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x04))
                        {
                            Store (Zero, INCH)
                            Store (Zero, IDIS)
                            Store (Zero, INAC)
                            Store (Package (0x01)
                            {
                                Zero
                            }, Local4)
                        }

                        If (LEqual (Local2, 0x05))
                        {
                            Store (Zero, INAC)
                            Store (0x03, INCH)
                            Store (Package (0x01)
                            {
                                Zero
                            }, Local4)
                        }
                    }
                    Else
                    {
                        Store (Package (0x01)
                        {
                            0x34
                        }, Local4)
                    }
                }
            }

            Release (ECMX)
            Return (Local4)
        }

        // GBTI is renamed in native DSDT so calls land here
        Method (GBTI, 1, NotSerialized)
        {
            Store ("Enter getbattinfo", Debug)
            Acquire (ECMX, 0xFFFF)
            If (ECRG)
            {
                If (And (BATP, ShiftLeft (One, Arg0)))
                {
                    Store (Arg0, BSEL)
                    Store (Package (0x02)
                    {
                        Zero,
                        Buffer (0x6B) {}
                    }, Local0)
                    Store (B1B2 (BDC0, BDC1), Index (DerefOf (Index (Local0, One)), Zero))
                    Store (ShiftRight (B1B2 (BDC0, BDC1), 0x08), Index (DerefOf (Index (Local0, One)), One))
                    Store (B1B2 (BFC0, BFC1), Index (DerefOf (Index (Local0, One)), 0x02))
                    Store (ShiftRight (B1B2 (BFC0, BFC1), 0x08), Index (DerefOf (Index (Local0, One)), 0x03))
                    Store (B1B2 (BRC0, BRC1), Index (DerefOf (Index (Local0, One)), 0x04))
                    Store (ShiftRight (B1B2 (BRC0, BRC1), 0x08), Index (DerefOf (Index (Local0, One)), 0x05))
                    Store (B1B2 (BME0, BME1), Index (DerefOf (Index (Local0, One)), 0x06))
                    Store (ShiftRight (B1B2 (BME0, BME1), 0x08), Index (DerefOf (Index (Local0, One)), 0x07))
                    Store (B1B2 (BCC0, BCC1), Index (DerefOf (Index (Local0, One)), 0x08))
                    Store (ShiftRight (B1B2 (BCC0, BCC1), 0x08), Index (DerefOf (Index (Local0, One)), 0x09))
                    Store (B1B2 (CBT0, CBT1), Local1)
                    Subtract (Local1, 0x0AAC, Local1)
                    Divide (Local1, 0x0A, Local2, Local3)
                    Store (Local3, Index (DerefOf (Index (Local0, One)), 0x0A))
                    Store (ShiftRight (Local3, 0x08), Index (DerefOf (Index (Local0, One)), 0x0B))
                    Store (B1B2 (BPV0, BPV1), Index (DerefOf (Index (Local0, One)), 0x0C))
                    Store (ShiftRight (B1B2 (BPV0, BPV1), 0x08), Index (DerefOf (Index (Local0, One)), 0x0D))
                    Store (B1B2 (BPR0, BPR1), Local1)
                    If (Local1)
                    {
                        If (And (B1B2 (BST0, BST1), 0x40))
                        {
                            Add (Not (Local1), One, Local1)
                            And (Local1, 0xFFFF, Local1)
                        }
                    }

                    Store (Local1, Index (DerefOf (Index (Local0, One)), 0x0E))
                    Store (ShiftRight (Local1, 0x08), Index (DerefOf (Index (Local0, One)), 0x0F))
                    Store (B1B2 (BDV0, BDV1), Index (DerefOf (Index (Local0, One)), 0x10))
                    Store (ShiftRight (B1B2 (BDV0, BDV1), 0x08), Index (DerefOf 
Download .txt
gitextract_wec_u5va/

├── .gitignore
├── License.md
├── Patches.xcodeproj/
│   ├── project.pbxproj
│   └── project.xcworkspace/
│       └── contents.xcworkspacedata
├── README.md
├── Resources_ProBook/
│   ├── README.txt
│   ├── codec_dump_CX20724.txt
│   ├── codec_dump_alc280_elitebook_g2_broadwell.txt
│   └── codec_dump_alc280_folio_9480m.txt
├── _get_tools.sh
├── build/
│   └── readme.txt
├── build.sh
├── config/
│   └── readme.txt
├── config_parts/
│   ├── config_Broadwell_dp.plist
│   ├── config_Broadwell_hdmi.plist
│   ├── config_HD3000-4000_dp.plist
│   ├── config_HD3000-4000_hdmi.plist
│   ├── config_Haswell_dp.plist
│   ├── config_Haswell_hdmi.plist
│   ├── config_Haswell_no_hdmi_dp.plist
│   ├── config_Kabylake_dp.plist
│   ├── config_Kabylake_hdmi.plist
│   ├── config_Skylake_dp.plist
│   ├── config_Skylake_hdmi.plist
│   ├── config_master.plist
│   └── config_non_Intel_USB3.plist
├── download.sh
├── find_dependencies.sh
├── hotpatch/
│   ├── SSDT-1020G1b.dsl
│   ├── SSDT-1030G1s.dsl
│   ├── SSDT-1040G1h.dsl
│   ├── SSDT-1040G3s.dsl
│   ├── SSDT-1050G1k.dsl
│   ├── SSDT-2x60.dsl
│   ├── SSDT-2x70.dsl
│   ├── SSDT-3x0G1.dsl
│   ├── SSDT-4230.dsl
│   ├── SSDT-450G1h.dsl
│   ├── SSDT-4x0G0.dsl
│   ├── SSDT-4x0G1h.dsl
│   ├── SSDT-4x0G1i.dsl
│   ├── SSDT-4x0G2b.dsl
│   ├── SSDT-4x0G2h.dsl
│   ├── SSDT-4x0G3s.dsl
│   ├── SSDT-4x0G4k.dsl
│   ├── SSDT-4x30.dsl
│   ├── SSDT-4x40.dsl
│   ├── SSDT-5x30.dsl
│   ├── SSDT-6x0G1h.dsl
│   ├── SSDT-6x0G2s.dsl
│   ├── SSDT-6x60.dsl
│   ├── SSDT-6x70.dsl
│   ├── SSDT-8x0G1h.dsl
│   ├── SSDT-8x0G1i.dsl
│   ├── SSDT-8x0G2b.dsl
│   ├── SSDT-8x0G2h.dsl
│   ├── SSDT-8x0G3b.dsl
│   ├── SSDT-8x0G3s.dsl
│   ├── SSDT-8x0G4k.dsl
│   ├── SSDT-8x60.dsl
│   ├── SSDT-8x70.dsl
│   ├── SSDT-9x70.dsl
│   ├── SSDT-9x80.dsl
│   ├── SSDT-ALS0.asl
│   ├── SSDT-BATT-G2.asl
│   ├── SSDT-BATT-G3.asl
│   ├── SSDT-BATT-G4.asl
│   ├── SSDT-BATT.asl
│   ├── SSDT-EH01.asl
│   ├── SSDT-EH02.asl
│   ├── SSDT-FANORIG.dsl
│   ├── SSDT-FANQ.dsl
│   ├── SSDT-FANREAD.dsl
│   ├── SSDT-HACK.asl
│   ├── SSDT-IGPU.dsl
│   ├── SSDT-KEY102.asl
│   ├── SSDT-KEY87.asl
│   ├── SSDT-PEG0_PEGP_RDSS.asl
│   ├── SSDT-PEGP_DGFX_RDSS.asl
│   ├── SSDT-PNLF.asl
│   ├── SSDT-RMCF.asl
│   ├── SSDT-RP01_PEGP_RDSS.asl
│   ├── SSDT-RP01_PXSX_RDSS.asl
│   ├── SSDT-RP05_DGFX_RDSS.asl
│   ├── SSDT-RP05_PEGP_RDSS.asl
│   ├── SSDT-RP05_PXSX_RDSS.asl
│   ├── SSDT-USB-1020-G1.asl
│   ├── SSDT-USB-1030-G1.asl
│   ├── SSDT-USB-1040-G3.asl
│   ├── SSDT-USB-1050-G1.asl
│   ├── SSDT-USB-2x70.asl
│   ├── SSDT-USB-4x0-G0.asl
│   ├── SSDT-USB-4x0-G1.asl
│   ├── SSDT-USB-4x0-G2.asl
│   ├── SSDT-USB-4x0-G3.asl
│   ├── SSDT-USB-4x0-G4.asl
│   ├── SSDT-USB-4x30s.asl
│   ├── SSDT-USB-4x40s.asl
│   ├── SSDT-USB-640-G2.asl
│   ├── SSDT-USB-6x0-G1.asl
│   ├── SSDT-USB-6x60.asl
│   ├── SSDT-USB-6x70.asl
│   ├── SSDT-USB-8x0-G1.asl
│   ├── SSDT-USB-8x0-G2.asl
│   ├── SSDT-USB-8x0-G3.asl
│   ├── SSDT-USB-8x0-G4.asl
│   ├── SSDT-USB-8x60.asl
│   ├── SSDT-USB-8x70.asl
│   ├── SSDT-USB-9x70.asl
│   ├── SSDT-USB-9x80.asl
│   ├── SSDT-USB-Unknown.asl
│   ├── SSDT-USB-ZBook-G1.asl
│   ├── SSDT-USB-ZBook-G2.asl
│   ├── SSDT-USB-ZBook-G3.asl
│   ├── SSDT-USBX.asl
│   ├── SSDT-USWE.asl
│   ├── SSDT-XHC.asl
│   ├── SSDT-zbG1h.dsl
│   ├── SSDT-zbG2b.dsl
│   ├── SSDT-zbG2h.dsl
│   ├── SSDT-zbG2hA.dsl
│   ├── SSDT-zbG3s.dsl
│   └── include/
│       ├── ALC280_HDAU.asl
│       ├── ALC280_HDEF.asl
│       ├── ALC282_HDAU.asl
│       ├── ALC282_HDEF.asl
│       ├── ALC286_HDAU.asl
│       ├── ALC286_HDEF.asl
│       ├── CX20724_HDEF.asl
│       ├── CX8200_HDEF.asl
│       ├── IDT_7605_HDEF.asl
│       ├── IDT_7695_HDEF.asl
│       ├── IDT_76d1_HDEF.asl
│       ├── IDT_76d9_HDEF.asl
│       ├── IDT_76e0_HDAU.asl
│       ├── IDT_76e0_HDEF.asl
│       ├── disable_EH01-EH02.asl
│       ├── disable_EH01.asl
│       ├── disable_HECI.asl
│       ├── enable_mouse.asl
│       ├── key86_PS2K.asl
│       ├── key86_data.asl
│       ├── standard_PS2K.asl
│       └── standard_PS2K_data.asl
├── install_acpi.sh
├── install_acpi_include.sh
├── install_downloads.sh
├── install_tools.sh
├── kexts/
│   ├── AppleALC_Info.plist
│   ├── HSSDBlockStorage.kext/
│   │   └── Contents/
│   │       ├── Info.plist
│   │       ├── MacOS/
│   │       │   └── HSSDBlockStorage
│   │       └── Resources/
│   │           └── English.lproj/
│   │               └── InfoPlist.strings
│   ├── JMB38X.kext/
│   │   └── Contents/
│   │       ├── Info.plist
│   │       ├── MacOS/
│   │       │   └── JMB38X
│   │       └── Resources/
│   │           ├── English.lproj/
│   │           │   └── InfoPlist.strings
│   │           ├── jmcr_MMC.icns
│   │           ├── jmcr_SD.icns
│   │           └── jmcr_sdmmc.icns
│   ├── JMicronATA.kext/
│   │   └── Contents/
│   │       ├── Info.plist
│   │       ├── MacOS/
│   │       │   └── JMicronATA
│   │       ├── Resources/
│   │       │   └── English.lproj/
│   │       │       └── InfoPlist.strings
│   │       └── version.plist
│   └── README.txt
├── make_acpi.sh
├── make_config.sh
├── makefile
├── makefile.d
├── merge_plist.sh
├── native/
│   ├── dsdt4530s/
│   │   ├── dsdt_f20_hd3k.aml
│   │   ├── dsdt_f23_hd3k.aml
│   │   ├── dsdt_f27_hd3k.aml
│   │   ├── dsdt_f28_hd3k.aml
│   │   ├── dsdt_f29_hd3k.aml
│   │   ├── dsdt_f30_hd3k.aml
│   │   ├── dsdt_f40_hd3k.aml
│   │   ├── dsdt_f41_hd3k.aml
│   │   └── dsdt_f60_hd3k.aml
│   └── dsdt4540s/
│       ├── dsdt_f40_hd4k.aml
│       ├── dsdt_f43_hd4k.aml
│       ├── dsdt_f43_hd4k_8gb.aml
│       ├── dsdt_f50_hd4k_8gb.aml
│       └── dsdt_f60_hd4k_8gb.aml
└── pre-patch_hda.sh
Condensed preview — 183 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (797K chars).
[
  {
    "path": ".gitignore",
    "chars": 223,
    "preview": ".DS_Store\nDerivedData/\nPatches.xcodeproj/project.xcworkspace/xcuserdata/\nPatches.xcodeproj/project.xcworkspace/xcsharedd"
  },
  {
    "path": "License.md",
    "chars": 17659,
    "preview": "## The GNU General Public License (GPL-2.0)\n## Version 2, June 1991\nCopyright (C) 1989, 1991 Free Software Foundation, I"
  },
  {
    "path": "Patches.xcodeproj/project.pbxproj",
    "chars": 45112,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXFileReference secti"
  },
  {
    "path": "Patches.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 166,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:ProBook 4x30s P"
  },
  {
    "path": "README.md",
    "chars": 1273,
    "preview": "## DSDT patches for HP ProBook/EliteBook/ZBook series laptops\n\nThis set of patches/makefile can be used to patch your HP"
  },
  {
    "path": "Resources_ProBook/README.txt",
    "chars": 2479,
    "preview": "LayoutID and PathMapID mappings for AppleHDA_ProBook.kext and applicable AppleALC.kext\n\nALC282: 33 (was 3 prior to 10.14"
  },
  {
    "path": "Resources_ProBook/codec_dump_CX20724.txt",
    "chars": 8528,
    "preview": "Codec: Conexant CX20724\nAddress: 0\nAFG Function Id: 0x1 (unsol 1)\nVendor Id: 0x14f150f4\nSubsystem Id: 0x103c8100\nRevisio"
  },
  {
    "path": "Resources_ProBook/codec_dump_alc280_elitebook_g2_broadwell.txt",
    "chars": 11149,
    "preview": "Codec: Realtek ALC3228\nAddress: 0\nAFG Function Id: 0x1 (unsol 1)\nVendor Id: 0x10ec0280\nSubsystem Id: 0x103c2277\nRevision"
  },
  {
    "path": "Resources_ProBook/codec_dump_alc280_folio_9480m.txt",
    "chars": 11428,
    "preview": "Codec: Realtek ALC3228\nAddress: 0\nAFG Function Id: 0x1 (unsol 1)\nVendor Id: 0x10ec0280\nSubsystem Id: 0x103c22db\nRevision"
  },
  {
    "path": "_get_tools.sh",
    "chars": 331,
    "preview": "#!/bin/bash\n#set -x\n\n# get copy of tools if not present\nif [[ ! -d ./_tools ]]; then\n    git clone https://github.com/Re"
  },
  {
    "path": "build/readme.txt",
    "chars": 51,
    "preview": "directory for built binaries such as SSDT-HACK.aml\n"
  },
  {
    "path": "build.sh",
    "chars": 51,
    "preview": "#!/bin/bash\n\n./make_config.sh\n./make_acpi.sh\n\n#EOF\n"
  },
  {
    "path": "config/readme.txt",
    "chars": 32,
    "preview": "config files here built by make\n"
  },
  {
    "path": "config_parts/config_Broadwell_dp.plist",
    "chars": 316,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "config_parts/config_Broadwell_hdmi.plist",
    "chars": 667,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "config_parts/config_HD3000-4000_dp.plist",
    "chars": 851,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "config_parts/config_HD3000-4000_hdmi.plist",
    "chars": 1042,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "config_parts/config_Haswell_dp.plist",
    "chars": 842,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "config_parts/config_Haswell_hdmi.plist",
    "chars": 810,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "config_parts/config_Haswell_no_hdmi_dp.plist",
    "chars": 750,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "config_parts/config_Kabylake_dp.plist",
    "chars": 545,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "config_parts/config_Kabylake_hdmi.plist",
    "chars": 545,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "config_parts/config_Skylake_dp.plist",
    "chars": 591,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "config_parts/config_Skylake_hdmi.plist",
    "chars": 845,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "config_parts/config_master.plist",
    "chars": 12240,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "config_parts/config_non_Intel_USB3.plist",
    "chars": 2627,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "download.sh",
    "chars": 2232,
    "preview": "#!/bin/bash\n#set -x\n\n# get copy of tools\n\"$(dirname ${BASH_SOURCE[0]})\"/_get_tools.sh\n\n# include subroutines\nsource \"$(d"
  },
  {
    "path": "find_dependencies.sh",
    "chars": 746,
    "preview": "#!/bin/bash\n# run as: ./find_dependencies.sh >makefile.d\n\nfunction print_dependencies()\n{\n    local include_list\n    inc"
  },
  {
    "path": "hotpatch/SSDT-1020G1b.dsl",
    "chars": 788,
    "preview": "// SSDT for EliteBook Folio 1020 G1 (Broadwell)\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_1020G1b\", 0)\n{\n    #include \"S"
  },
  {
    "path": "hotpatch/SSDT-1030G1s.dsl",
    "chars": 829,
    "preview": "// SSDT for EliteBook 1030 G1 (Skylake)\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_1030G1s\", 0)\n{\n    #define OVERRIDE_XP"
  },
  {
    "path": "hotpatch/SSDT-1040G1h.dsl",
    "chars": 629,
    "preview": "// SSDT for 1040 G1 (Haswell)\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_1040G1h\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    "
  },
  {
    "path": "hotpatch/SSDT-1040G3s.dsl",
    "chars": 876,
    "preview": "// SSDT for EliteBook 1040 G3 (Skylake)\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_1040G3s\", 0)\n{\n    #define OVERRIDE_XP"
  },
  {
    "path": "hotpatch/SSDT-1050G1k.dsl",
    "chars": 879,
    "preview": "// SSDT for EliteBook 1050 G1 (KabyLake-R)\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_1050G1k\", 0)\n{\n    #define OVERRIDE"
  },
  {
    "path": "hotpatch/SSDT-2x60.dsl",
    "chars": 442,
    "preview": "// SSDT for 2x60\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_2x60\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #include \"SSDT-P"
  },
  {
    "path": "hotpatch/SSDT-2x70.dsl",
    "chars": 436,
    "preview": "// SSDT for 2x70\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_2x70\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #include \"SSDT-P"
  },
  {
    "path": "hotpatch/SSDT-3x0G1.dsl",
    "chars": 571,
    "preview": "// SSDT for 3x0 G1\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_3x0G1\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #include \"SSD"
  },
  {
    "path": "hotpatch/SSDT-4230.dsl",
    "chars": 496,
    "preview": "// SSDT for 4230s\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_4230\", 0)\n{\n    #define OVERRIDE_BUID 24\n    #include \"SSDT-"
  },
  {
    "path": "hotpatch/SSDT-450G1h.dsl",
    "chars": 548,
    "preview": "// SSDT for 450 G1 Haswell\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_450G1h\", 0)\n{\n    #define OVERRIDE_IGPI 0x0d260007\n"
  },
  {
    "path": "hotpatch/SSDT-4x0G0.dsl",
    "chars": 441,
    "preview": "// SSDT for 4x0 G0\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_4x0G0\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #include \"SSD"
  },
  {
    "path": "hotpatch/SSDT-4x0G1h.dsl",
    "chars": 543,
    "preview": "// SSDT for 4x0 G1 Haswell\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_4x0G1h\", 0)\n{\n    #define OVERRIDE_IGPI 0x0d260007\n"
  },
  {
    "path": "hotpatch/SSDT-4x0G1i.dsl",
    "chars": 580,
    "preview": "// SSDT for 4x0 G1 Ivy\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_4x0G1i\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #include"
  },
  {
    "path": "hotpatch/SSDT-4x0G2b.dsl",
    "chars": 474,
    "preview": "// SSDT for 4x0 G2 Broadwell\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_4x0G2b\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #i"
  },
  {
    "path": "hotpatch/SSDT-4x0G2h.dsl",
    "chars": 472,
    "preview": "// SSDT for 4x0 G2 Haswell\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_4x0G2h\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #inc"
  },
  {
    "path": "hotpatch/SSDT-4x0G3s.dsl",
    "chars": 610,
    "preview": "// SSDT for ProBook 4x0 G3 (Skylake)\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_4x0G3s\", 0)\n{\n    #define OVERRIDE_XPEE 1"
  },
  {
    "path": "hotpatch/SSDT-4x0G4k.dsl",
    "chars": 556,
    "preview": "// SSDT for ProBook 4x0 G4 (Kabylake)\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_4x0G4k\", 0)\n{\n    #define OVERRIDE_XPEE "
  },
  {
    "path": "hotpatch/SSDT-4x30.dsl",
    "chars": 411,
    "preview": "// SSDT for 4x30s\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_4x30\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #include \"SSDT-"
  },
  {
    "path": "hotpatch/SSDT-4x40.dsl",
    "chars": 439,
    "preview": "// SSDT for 4x40s\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_4x40\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #include \"SSDT-"
  },
  {
    "path": "hotpatch/SSDT-5x30.dsl",
    "chars": 546,
    "preview": "// SSDT for ProBook 5x30\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_5x30\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #include"
  },
  {
    "path": "hotpatch/SSDT-6x0G1h.dsl",
    "chars": 548,
    "preview": "// SSDT for 6x0 G1 Haswell\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_6x0G1h\", 0)\n{\n    #define OVERRIDE_IGPI 0x0d260007\n"
  },
  {
    "path": "hotpatch/SSDT-6x0G2s.dsl",
    "chars": 559,
    "preview": "// SSDT for EliteBook 6x0 G2 (Skylake)\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_6x0G2s\", 0)\n{\n    #define OVERRIDE_XPEE"
  },
  {
    "path": "hotpatch/SSDT-6x60.dsl",
    "chars": 408,
    "preview": "// SSDT for 6x60\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_6x60\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #include \"SSDT-P"
  },
  {
    "path": "hotpatch/SSDT-6x70.dsl",
    "chars": 436,
    "preview": "// SSDT for 6x70\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_6x70\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #include \"SSDT-P"
  },
  {
    "path": "hotpatch/SSDT-8x0G1h.dsl",
    "chars": 543,
    "preview": "// SSDT for 8x0 G1 Haswell\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_8x0G1h\", 0)\n{\n    #define OVERRIDE_IGPI 0x04260000\n"
  },
  {
    "path": "hotpatch/SSDT-8x0G1i.dsl",
    "chars": 453,
    "preview": "// SSDT for 8x0 G1 Ivy\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_8x0G1i\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #include"
  },
  {
    "path": "hotpatch/SSDT-8x0G2b.dsl",
    "chars": 502,
    "preview": "// SSDT for 8x0 G2 Broadwell\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_8x0G2b\", 0)\n{\n    #define OVERRIDE_XPEE 1\n    #in"
  },
  {
    "path": "hotpatch/SSDT-8x0G2h.dsl",
    "chars": 473,
    "preview": "// SSDT for 8x0 G2 Haswell\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_8x0G2h\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #inc"
  },
  {
    "path": "hotpatch/SSDT-8x0G3b.dsl",
    "chars": 542,
    "preview": "// SSDT for 8x0 G3 Broadwell\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_8x0G2b\", 0)\n{\n    #define OVERRIDE_XPEE 1\n    #in"
  },
  {
    "path": "hotpatch/SSDT-8x0G3s.dsl",
    "chars": 583,
    "preview": "// SSDT for EliteBook 8x0 G3 (Skylake)\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_8x0G3s\", 0)\n{\n    #define OVERRIDE_XPEE"
  },
  {
    "path": "hotpatch/SSDT-8x0G4k.dsl",
    "chars": 527,
    "preview": "// SSDT for ProBook 8x0 G4 (Kabylake)\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_8x0G4k\", 0)\n{\n    #define OVERRIDE_XPEE "
  },
  {
    "path": "hotpatch/SSDT-8x60.dsl",
    "chars": 408,
    "preview": "// SSDT for 8x60\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_8x60\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #include \"SSDT-P"
  },
  {
    "path": "hotpatch/SSDT-8x70.dsl",
    "chars": 436,
    "preview": "// SSDT for 8x70\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_8x70\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #include \"SSDT-P"
  },
  {
    "path": "hotpatch/SSDT-9x70.dsl",
    "chars": 436,
    "preview": "// SSDT for 9x70\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_9x70\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #include \"SSDT-P"
  },
  {
    "path": "hotpatch/SSDT-9x80.dsl",
    "chars": 464,
    "preview": "// SSDT for 9x80m Haswell\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_9x80\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #includ"
  },
  {
    "path": "hotpatch/SSDT-ALS0.asl",
    "chars": 452,
    "preview": "// Fake ambient light sensor device\n//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"ALS0\", 0)\n//{\n    Device(_SB.ALS0)\n    {\n "
  },
  {
    "path": "hotpatch/SSDT-BATT-G2.asl",
    "chars": 29112,
    "preview": "// battery status patched for ProBook G2 laptops\n\n//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"battg2\", 0)\n//{\n    External"
  },
  {
    "path": "hotpatch/SSDT-BATT-G3.asl",
    "chars": 27960,
    "preview": "// battery status patched for ProBook G3 (Skylake) laptops\n\n//REVIEW: currently not used, as BIOS seems to be updated to"
  },
  {
    "path": "hotpatch/SSDT-BATT-G4.asl",
    "chars": 29576,
    "preview": "// battery status patched for ProBook G4 (KabyLake) laptops\n\n//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"battg4\", 0)\n//{\n "
  },
  {
    "path": "hotpatch/SSDT-BATT.asl",
    "chars": 29878,
    "preview": "// battery status patched for earlier ProBooks\n\n//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"batt\", 0)\n//{\n    External(\\_S"
  },
  {
    "path": "hotpatch/SSDT-EH01.asl",
    "chars": 753,
    "preview": "// Automatic injection of EH01 properties\n\n//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"EH01\", 0)\n//{\n    External(_SB.PCI0"
  },
  {
    "path": "hotpatch/SSDT-EH02.asl",
    "chars": 753,
    "preview": "// Automatic injection of EH02 properties\n\n//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"EH02\", 0)\n//{\n    External(_SB.PCI0"
  },
  {
    "path": "hotpatch/SSDT-FANORIG.dsl",
    "chars": 3070,
    "preview": "// \"original\" fan patch\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_FANORIG\", 0)\n{\n    External(\\_SB.PCI0, DeviceObj)\n    "
  },
  {
    "path": "hotpatch/SSDT-FANQ.dsl",
    "chars": 7946,
    "preview": "// \"quiet\" fan patch\n\n#ifdef QUIET\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_FANQ\", 0)\n#endif\n#ifdef REHABMAN\nDefinitionB"
  },
  {
    "path": "hotpatch/SSDT-FANREAD.dsl",
    "chars": 1997,
    "preview": "// fan/temperature readings only (fan behavior is BIOS)\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_FANREAD\", 0)\n{\n    Ext"
  },
  {
    "path": "hotpatch/SSDT-HACK.asl",
    "chars": 15347,
    "preview": "// Instead of providing patched DSDT/SSDT, just include a add-on\n// SSDTs and the rest of the work done in config.plist."
  },
  {
    "path": "hotpatch/SSDT-IGPU.dsl",
    "chars": 10523,
    "preview": "// IGPU injections for Intel graphics\n\n#ifndef HIRES\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_IGPU\", 0)\n#else\nDefinition"
  },
  {
    "path": "hotpatch/SSDT-KEY102.asl",
    "chars": 588,
    "preview": "// for laptops that need 102-key layout\n\n//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"key102\", 0)\n//{\n    External(\\_SB.PCI"
  },
  {
    "path": "hotpatch/SSDT-KEY87.asl",
    "chars": 585,
    "preview": "// for laptops that need 87-key layout\n\n//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"key87\", 0)\n//{\n    External(\\_SB.PCI0,"
  },
  {
    "path": "hotpatch/SSDT-PEG0_PEGP_RDSS.asl",
    "chars": 1047,
    "preview": "//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"PEG0PEGP\", 0)\n//{\n    External(_SB.PCI0.PEG0.PEGP, DeviceObj)\n    External(_SB"
  },
  {
    "path": "hotpatch/SSDT-PEGP_DGFX_RDSS.asl",
    "chars": 1047,
    "preview": "//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"PEGPDGFX\", 0)\n//{\n    External(_SB.PCI0.PEGP.DGFX, DeviceObj)\n    External(_SB"
  },
  {
    "path": "hotpatch/SSDT-PNLF.asl",
    "chars": 10438,
    "preview": "// Adding PNLF device for IntelBacklight.kext or AppleBacklight.kext+AppleBacklightFixup.kext\n\n#define FBTYPE_SANDYIVY 1"
  },
  {
    "path": "hotpatch/SSDT-RMCF.asl",
    "chars": 2884,
    "preview": "//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"hack\", 0)\n//{\n//\n// Configuration data\n//\n    Device(RMCF)\n    {\n        Name("
  },
  {
    "path": "hotpatch/SSDT-RP01_PEGP_RDSS.asl",
    "chars": 1047,
    "preview": "//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"RP01PEGP\", 0)\n//{\n    External(_SB.PCI0.RP01.PEGP, DeviceObj)\n    External(_SB"
  },
  {
    "path": "hotpatch/SSDT-RP01_PXSX_RDSS.asl",
    "chars": 1047,
    "preview": "//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"RP01PXSX\", 0)\n//{\n    External(_SB.PCI0.RP01.PXSX, DeviceObj)\n    External(_SB"
  },
  {
    "path": "hotpatch/SSDT-RP05_DGFX_RDSS.asl",
    "chars": 1047,
    "preview": "//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"RP05DGFX\", 0)\n//{\n    External(_SB.PCI0.RP05.DGFX, DeviceObj)\n    External(_SB"
  },
  {
    "path": "hotpatch/SSDT-RP05_PEGP_RDSS.asl",
    "chars": 1047,
    "preview": "//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"RP05PEGP\", 0)\n//{\n    External(_SB.PCI0.RP05.PEGP, DeviceObj)\n    External(_SB"
  },
  {
    "path": "hotpatch/SSDT-RP05_PXSX_RDSS.asl",
    "chars": 1047,
    "preview": "//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"RP05PXSX\", 0)\n//{\n    External(_SB.PCI0.RP05.PXSX, DeviceObj)\n    External(_SB"
  },
  {
    "path": "hotpatch/SSDT-USB-1020-G1.asl",
    "chars": 2789,
    "preview": "// USBInjectAll configuration/override for EliteBook Folio 1020 G1\n//\n// ports here are based on ioreg from corem's HP E"
  },
  {
    "path": "hotpatch/SSDT-USB-1030-G1.asl",
    "chars": 3179,
    "preview": "// USBInjectAll configuration/override for EliteBook 1030 G1 (Skylake)\n//\n// data from livacore's EliteBook 1030 G1\n\n//D"
  },
  {
    "path": "hotpatch/SSDT-USB-1040-G3.asl",
    "chars": 1986,
    "preview": "// USBInjectAll configuration/override for EliteBook 1040 G3 (Skylake)\n//\n// Based on information provided from expastna"
  },
  {
    "path": "hotpatch/SSDT-USB-1050-G1.asl",
    "chars": 3978,
    "preview": "// USBInjectAll configuration/override for EliteBook 1050 G1 (KabyLake-R)\n//\n// Based on information provided from Kuque"
  },
  {
    "path": "hotpatch/SSDT-USB-2x70.asl",
    "chars": 3764,
    "preview": "// USB configuration for EliteBook 2x70\n//\n// This information from an EliteBook 2570p.\n\n//DefinitionBlock(\"\", \"SSDT\", 2"
  },
  {
    "path": "hotpatch/SSDT-USB-4x0-G0.asl",
    "chars": 4233,
    "preview": "// USB configuration for 4x0 G0 Ivy\n// based on data provided from a ProBook 470 G0 by Reprise80\n// Note: it is essentia"
  },
  {
    "path": "hotpatch/SSDT-USB-4x0-G1.asl",
    "chars": 2570,
    "preview": "// USBInjectAll configuration/override for ProBook 4x0 G1 Haswell\n//\n// Based on information provided from ProBook 450 G"
  },
  {
    "path": "hotpatch/SSDT-USB-4x0-G2.asl",
    "chars": 5469,
    "preview": "// USBInjectAll configuration/override for ProBook 4x0s G2\n//\n// investigative work done by mo7a1995 (with direction fro"
  },
  {
    "path": "hotpatch/SSDT-USB-4x0-G3.asl",
    "chars": 2676,
    "preview": "// USBInjectAll configuration/override for Probook 4x0 G3 (Skylake)\n//\n// Based on information provided from bran1m1r's "
  },
  {
    "path": "hotpatch/SSDT-USB-4x0-G4.asl",
    "chars": 3118,
    "preview": "// USBInjectAll configuration/override for Probook 4x0 G4 (Skylake)\n//\n// Based on information provided from Mario's Kab"
  },
  {
    "path": "hotpatch/SSDT-USB-4x30s.asl",
    "chars": 3098,
    "preview": "// USB configuration for 4x30s\n\n//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"usb4x30s\", 0)\n//{\n//\n// Override for USBInject"
  },
  {
    "path": "hotpatch/SSDT-USB-4x40s.asl",
    "chars": 4110,
    "preview": "// USB configuration for 4x40s\n\n//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"usb4x40s\", 0)\n//{\n//\n// Override for USBInject"
  },
  {
    "path": "hotpatch/SSDT-USB-640-G2.asl",
    "chars": 3187,
    "preview": "// USBInjectAll configuration/override for ProBook 640 G2 Skylake\n//\n// Based on information provided from chezyann's Pr"
  },
  {
    "path": "hotpatch/SSDT-USB-6x0-G1.asl",
    "chars": 3979,
    "preview": "// USBInjectAll configuration/override for ProBook 6x0 G1 Haswell\n//\n\n// Based on information provided from ProBook 650 "
  },
  {
    "path": "hotpatch/SSDT-USB-6x60.asl",
    "chars": 3888,
    "preview": "// USB configuration for EliteBook 6x60\n// Based on information from EliteBook 6460p\n\n//DefinitionBlock(\"\", \"SSDT\", 2, \""
  },
  {
    "path": "hotpatch/SSDT-USB-6x70.asl",
    "chars": 4449,
    "preview": "// USB configuration for EliteBook 6x70\n//\n// This information from an EliteBook 6570b (courtesy Xeon3D).\n\n//DefinitionB"
  },
  {
    "path": "hotpatch/SSDT-USB-8x0-G1.asl",
    "chars": 3167,
    "preview": "// USBInjectAll configuration/override for EliteBook 8x0s G1 Haswell\n//\n\n// Current data includes HS01/SS01 from the opt"
  },
  {
    "path": "hotpatch/SSDT-USB-8x0-G2.asl",
    "chars": 4164,
    "preview": "// USBInjectAll configuration/override for EliteBook 820 G2 Broadwell\n//   and EliteBook 850 G2 Broadwell\n//\n\n//REVIEW: "
  },
  {
    "path": "hotpatch/SSDT-USB-8x0-G3.asl",
    "chars": 3262,
    "preview": "// USBInjectAll configuration/override for EliteBook 8x0 G3 (Skylake)\n//\n// Based on information provided from kartoffel"
  },
  {
    "path": "hotpatch/SSDT-USB-8x0-G4.asl",
    "chars": 3017,
    "preview": "// USBInjectAll configuration/override for EliteBook 8x0 G4 (Skylake)\n//\n// No data provided yet.\n\n//DefinitionBlock(\"\","
  },
  {
    "path": "hotpatch/SSDT-USB-8x60.asl",
    "chars": 3953,
    "preview": "// USB configuration for EliteBook 8x60\n// Based on information from EliteBook 8560p + docking station (anx-v)\n\n//Defini"
  },
  {
    "path": "hotpatch/SSDT-USB-8x70.asl",
    "chars": 4881,
    "preview": "// USB configuration for EliteBook 8x70\n//\n// This information from an EliteBook 8470p (courtesy freeweber).\n\n//Definiti"
  },
  {
    "path": "hotpatch/SSDT-USB-9x70.asl",
    "chars": 5275,
    "preview": "// USB configuration for Folio 9x70\n//\n// Data provided by wi-fi from EliteBook Folio 9470m\n// Additional data for docki"
  },
  {
    "path": "hotpatch/SSDT-USB-9x80.asl",
    "chars": 2090,
    "preview": "// USBInjectAll configuration/override for EliteBook 9x80m Haswell\n//\n\n// Based on information provided from an EliteBoo"
  },
  {
    "path": "hotpatch/SSDT-USB-Unknown.asl",
    "chars": 949,
    "preview": "// USB configuration that disables USBInjectAll.kext\n// This can be used for models which have correct ACPI for USB (_UP"
  },
  {
    "path": "hotpatch/SSDT-USB-ZBook-G1.asl",
    "chars": 4763,
    "preview": "// USBInjectAll configuration/override for ZBook G1 Haswell\n//\n// Based on secret-sounds' HP ZBook 17 G1 (Haswell)\n// Al"
  },
  {
    "path": "hotpatch/SSDT-USB-ZBook-G2.asl",
    "chars": 4646,
    "preview": "// USBInjectAll configuration/override for ZBook G2 Broadwell\n//\n// Based on nandystam's HP ZBook 15 G2 (Broadwell)\n\n//D"
  },
  {
    "path": "hotpatch/SSDT-USB-ZBook-G3.asl",
    "chars": 2520,
    "preview": "// USBInjectAll configuration/override for ZBook G3 (Skylake)\n//\n// Based on information provided from hackintoshking's "
  },
  {
    "path": "hotpatch/SSDT-USBX.asl",
    "chars": 674,
    "preview": "\n// USB power properties for Sierra\n// used for SMBIOS that have no power properties in IOUSBHostFamily.kext/Contents/In"
  },
  {
    "path": "hotpatch/SSDT-USWE.asl",
    "chars": 476,
    "preview": "// special fix for \"wake on USB\" for newer ProBook models\n\n//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_USWE\", 0)\n//{\n    "
  },
  {
    "path": "hotpatch/SSDT-XHC.asl",
    "chars": 915,
    "preview": "// Automatic injection of XHC properties\n\n//DefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"XHC\", 0)\n//{\n    External(_SB.PCI0.X"
  },
  {
    "path": "hotpatch/SSDT-zbG1h.dsl",
    "chars": 478,
    "preview": "// SSDT for ZBook G1 (Haswell)\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_zbG1h\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #"
  },
  {
    "path": "hotpatch/SSDT-zbG2b.dsl",
    "chars": 479,
    "preview": "// SSDT for ZBook G2 (Broadwell)\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_zbG2b\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n   "
  },
  {
    "path": "hotpatch/SSDT-zbG2h.dsl",
    "chars": 486,
    "preview": "// SSDT for ZBook G2 (Haswell)\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_zbG2h\", 0)\n{\n    #include \"SSDT-RMCF.asl\"\n    #"
  },
  {
    "path": "hotpatch/SSDT-zbG2hA.dsl",
    "chars": 495,
    "preview": "// SSDT for ZBook G2 (Haswell) with ALC280\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_zbG2hA\", 0)\n{\n    #include \"SSDT-RM"
  },
  {
    "path": "hotpatch/SSDT-zbG3s.dsl",
    "chars": 575,
    "preview": "// SSDT for ZBook G3 (Skylake)\n\nDefinitionBlock(\"\", \"SSDT\", 2, \"hack\", \"_zbG3s\", 0)\n{\n    #define OVERRIDE_XPEE 1\n    #i"
  },
  {
    "path": "hotpatch/include/ALC280_HDAU.asl",
    "chars": 353,
    "preview": "#define LAYOUTID 4\n\n// inject properties for HDMI audio\n\n    External(_SB.PCI0.HDAU, DeviceObj)\n    Method(_SB.PCI0.HDAU"
  },
  {
    "path": "hotpatch/include/ALC280_HDEF.asl",
    "chars": 1525,
    "preview": "#define LAYOUTID 4\n\n// inject properties for audio\n\n    External(_SB.PCI0.HDEF, DeviceObj)\n    Method(_SB.PCI0.HDEF._DSM"
  },
  {
    "path": "hotpatch/include/ALC282_HDAU.asl",
    "chars": 353,
    "preview": "#define LAYOUTID 3\n\n// inject properties for HDMI audio\n\n    External(_SB.PCI0.HDAU, DeviceObj)\n    Method(_SB.PCI0.HDAU"
  },
  {
    "path": "hotpatch/include/ALC282_HDEF.asl",
    "chars": 395,
    "preview": "#define LAYOUTID 3\n\n// inject properties for audio\n\n    External(_SB.PCI0.HDEF, DeviceObj)\n    Method(_SB.PCI0.HDEF._DSM"
  },
  {
    "path": "hotpatch/include/ALC286_HDAU.asl",
    "chars": 353,
    "preview": "#define LAYOUTID 3\n\n// inject properties for HDMI audio\n\n    External(_SB.PCI0.HDAU, DeviceObj)\n    Method(_SB.PCI0.HDAU"
  },
  {
    "path": "hotpatch/include/ALC286_HDEF.asl",
    "chars": 395,
    "preview": "#define LAYOUTID 3\n\n// inject properties for audio\n\n    External(_SB.PCI0.HDEF, DeviceObj)\n    Method(_SB.PCI0.HDEF._DSM"
  },
  {
    "path": "hotpatch/include/CX20724_HDEF.asl",
    "chars": 538,
    "preview": "// Mirone version\n#define LAYOUT_MIRONE 3\n\n// InsanelyDeepak version\n#define LAYOUT_INSANELYDEEPAK 13\n\n#define LAYOUTID "
  },
  {
    "path": "hotpatch/include/CX8200_HDEF.asl",
    "chars": 1191,
    "preview": "#define LAYOUTID 3\n\n// inject properties for audio\n\n    External(_SB.PCI0.HDEF, DeviceObj)\n    Method(_SB.PCI0.HDEF._DSM"
  },
  {
    "path": "hotpatch/include/IDT_7605_HDEF.asl",
    "chars": 607,
    "preview": "#define LAYOUTID 12\n\n// inject properties for audio\n\n    External(_SB.PCI0.HDEF, DeviceObj)\n    Method(_SB.PCI0.HDEF._DS"
  },
  {
    "path": "hotpatch/include/IDT_7695_HDEF.asl",
    "chars": 607,
    "preview": "#define LAYOUTID 12\n\n// inject properties for audio\n\n    External(_SB.PCI0.HDEF, DeviceObj)\n    Method(_SB.PCI0.HDEF._DS"
  },
  {
    "path": "hotpatch/include/IDT_76d1_HDEF.asl",
    "chars": 607,
    "preview": "#define LAYOUTID 12\n\n// inject properties for audio\n\n    External(_SB.PCI0.HDEF, DeviceObj)\n    Method(_SB.PCI0.HDEF._DS"
  },
  {
    "path": "hotpatch/include/IDT_76d9_HDEF.asl",
    "chars": 607,
    "preview": "#define LAYOUTID 13\n\n// inject properties for audio\n\n    External(_SB.PCI0.HDEF, DeviceObj)\n    Method(_SB.PCI0.HDEF._DS"
  },
  {
    "path": "hotpatch/include/IDT_76e0_HDAU.asl",
    "chars": 354,
    "preview": "#define LAYOUTID 13\n\n// inject properties for HDMI audio\n\n    External(_SB.PCI0.HDAU, DeviceObj)\n    Method(_SB.PCI0.HDA"
  },
  {
    "path": "hotpatch/include/IDT_76e0_HDEF.asl",
    "chars": 607,
    "preview": "#define LAYOUTID 13\n\n// inject properties for audio\n\n    External(_SB.PCI0.HDEF, DeviceObj)\n    Method(_SB.PCI0.HDEF._DS"
  },
  {
    "path": "hotpatch/include/disable_EH01-EH02.asl",
    "chars": 1804,
    "preview": "//\n// Disabling EHCI #1 and #2\n//\n    External(_SB.PCI0, DeviceObj)\n    External(_SB.PCI0.EH01, DeviceObj)\n    External("
  },
  {
    "path": "hotpatch/include/disable_EH01.asl",
    "chars": 1266,
    "preview": "//\n// Disabling EHCI #1\n//\n    External(_SB.PCI0, DeviceObj)\n    External(_SB.PCI0.LPCB, DeviceObj)\n    External(_SB.PCI"
  },
  {
    "path": "hotpatch/include/disable_HECI.asl",
    "chars": 143,
    "preview": "// Disable native HECI (Intel MEI) identity by injecting _STA=0\n\n    External(_SB.PCI0.HECI, DeviceObj)\n    Name(_SB.PCI"
  },
  {
    "path": "hotpatch/include/enable_mouse.asl",
    "chars": 210,
    "preview": "// for including into RMCF at PCI0.LPCB.PS2K.RMCF\n// this to be used for laptops without Synaptics, such that VoodooPS2M"
  },
  {
    "path": "hotpatch/include/key86_PS2K.asl",
    "chars": 424,
    "preview": "// Standard PS2 overrides for those laptops that require \"key86\" overrides\n// Use Include directive from model specific "
  },
  {
    "path": "hotpatch/include/key86_data.asl",
    "chars": 1862,
    "preview": "// for including into RMCF at PCI0.LPCB.PS2K.RMCF\n// this data from ProBook 640 G2 Skylake 86-key keyboard\n\n    \"Keyboar"
  },
  {
    "path": "hotpatch/include/standard_PS2K.asl",
    "chars": 329,
    "preview": "// Standard PS2 overrides\n// Use Include directive from model specific SSDT\n\n    External(\\_SB.PCI0.LPCB.PS2K, DeviceObj"
  },
  {
    "path": "hotpatch/include/standard_PS2K_data.asl",
    "chars": 196,
    "preview": "// for including into RMCF at PCI0.LPCB.PS2K.RMCF\n\n// standard overrides for most ProBook/EliteBook laptops\n\n    \"Synapt"
  },
  {
    "path": "install_acpi.sh",
    "chars": 10477,
    "preview": "#!/bin/bash\n\n#set -x\n\nif [[ \"$1\" == \"\" ]]; then\n    echo \"Usage: ./install_acpi.sh [model] [fanpref]\"\n    echo \"Use ./in"
  },
  {
    "path": "install_acpi_include.sh",
    "chars": 8,
    "preview": "CORE=\"\"\n"
  },
  {
    "path": "install_downloads.sh",
    "chars": 2056,
    "preview": "#!/bin/bash\n#set -x\n\nEXCEPTIONS=\nESSENTIAL=\"AppleALC.kext CodecCommander.kext ProBookAtheros.kext\"\n\n# include subroutine"
  },
  {
    "path": "install_tools.sh",
    "chars": 40,
    "preview": "#!/bin/bash\n\n./_tools/install_tools.sh\n\n"
  },
  {
    "path": "kexts/AppleALC_Info.plist",
    "chars": 200373,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "kexts/HSSDBlockStorage.kext/Contents/Info.plist",
    "chars": 1606,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "kexts/JMB38X.kext/Contents/Info.plist",
    "chars": 1399,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "kexts/JMicronATA.kext/Contents/Info.plist",
    "chars": 2231,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "kexts/JMicronATA.kext/Contents/version.plist",
    "chars": 461,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "kexts/README.txt",
    "chars": 78,
    "preview": "This folder is for kexts that are not automatically downloaded by download.sh\n"
  },
  {
    "path": "make_acpi.sh",
    "chars": 4646,
    "preview": "#!/bin/bash\niasl -vw 2095 -vw 2146 -vw 2089 -vw 4089 -vi -vr -p build/SSDT-1020G1b.aml hotpatch/SSDT-1020G1b.dsl\niasl -v"
  },
  {
    "path": "make_config.sh",
    "chars": 14670,
    "preview": "#!/bin/bash\nprintf \"!! creating config/config_4x30.plist\\n\"\ncp config_parts/config_master.plist config/config_4x30.plist"
  },
  {
    "path": "makefile",
    "chars": 18664,
    "preview": "# makefile\n\n#\n# Patches/Installs/Builds DSDT patches for HP ProBook/EliteBook/ZBook\n#\n# Created by RehabMan\n#\n\nBUILDDIR="
  },
  {
    "path": "makefile.d",
    "chars": 16357,
    "preview": "# generated with: ./find_dependencies.sh\n\nbuild/SSDT-1020G1b.aml : hotpatch/SSDT-1020G1b.dsl hotpatch/SSDT-RMCF.asl hotp"
  },
  {
    "path": "merge_plist.sh",
    "chars": 244,
    "preview": "#!/bin/bash\n# set -x\n\n# $1 is keypath to merge\n# $2 is source plist\n# #3 is dest plist\n\n/usr/libexec/PlistBuddy -x -c \"P"
  },
  {
    "path": "pre-patch_hda.sh",
    "chars": 1962,
    "preview": "#!/bin/bash\n\n#set -x\n\nunpatched=/System/Library/Extensions\n\necho \"Type your password if requested (to mount EFI partitio"
  }
]

// ... and 23 more files (download for full content)

About this extraction

This page contains the full source code of the RehabMan/HP-ProBook-4x30s-DSDT-Patch GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 183 files (699.2 KB), approximately 254.6k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!