<?xml version='1.0' encoding='utf-8'?>
<!--
 Copyright 2010-2015, Google Inc.
 All rights reserved.

 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are
 met:

     * Redistributions of source code must retain the above copyright
 notice, this list of conditions and the following disclaimer.
     * Redistributions in binary form must reproduce the above
 copyright notice, this list of conditions and the following disclaimer
 in the documentation and/or other materials provided with the
 distribution.
     * Neither the name of Google Inc. nor the names of its
 contributors may be used to endorse or promote products derived from
 this software without specific prior written permission.

 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->


<?ifdef var.MozcVersionFile ?>
  <?include $(var.MozcVersionFile) ?>
<?endif?>

<!-- Define variables with default values if not exist. WiX compiler does not
     allow to use any undefined variable even when the variable is referenced
     between ifdef conditional block. -->
<?ifndef MozcZinniaModelDataPath ?>
  <?define MozcZinniaModelDataPath="" ?>
<?endif?>
<?ifndef DebugCrtMergeModuleIdPrefix ?>
  <?define DebugCrtMergeModuleIdPrefix="" ?>
<?endif?>
<?ifndef ReleaseCrtMergeModuleIdPrefix ?>
  <?define ReleaseCrtMergeModuleIdPrefix="" ?>
<?endif?>
<?ifndef DebugCrtMergeModulePath ?>
  <?define DebugCrtMergeModulePath="" ?>
<?endif?>
<?ifndef ReleaseCrtMergeModulePath ?>
  <?define ReleaseCrtMergeModulePath="" ?>
<?endif?>
<?ifndef QtCore4DllPath ?>
  <?define QtCore4DllPath="" ?>
<?endif?>
<?ifndef QtCored4DllPath ?>
  <?define QtCored4DllPath="" ?>
<?endif?>
<?ifndef QtGui4DllPath ?>
  <?define QtGui4DllPath="" ?>
<?endif?>
<?ifndef QtGuid4DllPath ?>
  <?define QtGuid4DllPath="" ?>
<?endif?>

<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>

  <!--
    It appears that Windows Installer emits error on upgrade saying "Another
    version of this product is already installed" unless we change the product
    ID even when we follow the instructions in "Changing the Product Code"
    http://msdn.microsoft.com/en-us/library/aa367850.aspx.
    So we change the product ID for every new version.
  -->
  <Product Name='Google 日本語入力' Id='*'
      Language='1041' Codepage='932' Version='$(var.MozcVersion)'
      Manufacturer='Google Inc.' UpgradeCode='$(var.UpgradeCode)'>

    <Package Keywords='Installer' Description='Google 日本語入力 インストーラー'
        Manufacturer='Google Inc.' Languages='1041' SummaryCodepage='932'
        InstallerVersion='405' InstallPrivileges='elevated'
        Compressed='yes' Platform='x64' />

    <!-- Check if the user have the administrative privileges. -->
    <Condition
        Message='Google 日本語入力をインストールするには管理者権限が必要です。'>
      Privileged
    </Condition>
    <Media Id='1' Cabinet='GoogleJapaneseInput.cab' EmbedCab='yes'
        CompressionLevel='high'/>

    <!-- Set Add/Remove Program Icon -->
    <Icon Id="add_remove_program_icon.ico"
          SourceFile="$(var.AddRemoveProgramIconPath)" />
    <Property Id="ARPPRODUCTICON"
        Value="add_remove_program_icon.ico" />

    <!-- Install the product for all users. -->
    <Property Id='ALLUSERS' Value='1' />

    <!-- Disable Modify and Repair buttons. -->
    <Property Id='ARPNOMODIFY' Value='1' />
    <Property Id='ARPNOREPAIR' Value='1' />

    <!--
      A fail-fast mechanism against channel mismatch.  Currently we focus on
      preventing existing/initial beta users from upgrading/installing
      dev package by mistakes in update configuration.
      Note that we should allow users to uninstall the product regardless of
      the registered channel name.  Never remove (REMOVE="ALL") from the
      condition below.
    -->
    <?if ($(var.VSConfigurationName) = "Release") and ($(var.OmahaChannelType) = "dev") ?>
      <!-- Retrieves previous channel name for Omaha -->
      <Property Id="PREVIOUSCHANNELNAME">
        <RegistrySearch Id='OmahaApValue' Type='raw' Root='HKLM'
            Key='$(var.OmahaClientStateKey)' Name='ap' Win64='no'>
        </RegistrySearch>
      </Property>

      <Condition
          Message='このパッケージは開発版です。配布サーバーの設定ミスの可能性があるため、インストールを中止しました。Google 日本語入力チームまでご連絡下さい。'>
        (PREVIOUSCHANNELNAME="external-dev64") OR
        (PREVIOUSCHANNELNAME="internal-dev64") OR
        (PREVIOUSCHANNELNAME="external-dev-universal") OR
        (PREVIOUSCHANNELNAME="internal-dev-universal") OR
        (REMOVE="ALL")
      </Condition>
    <?endif?>

    <Directory Id='TARGETDIR' Name='SourceDir'>
      <!-- Install CRT DLLs.
        Better not to in include policy MSMs.
        http://blogs.msdn.com/b/astebner/archive/2007/02/13/building-an-msi-using-wix-v3-0-that-includes-the-vc-8-0-runtime-merge-modules.aspx
       -->
      <?if $(var.VSConfigurationName) = "Debug" ?>
        <?if $(var.DebugCrtMergeModuleIdPrefix) != "" ?>
          <Merge Id='$(var.DebugCrtMergeModuleIdPrefix)' Language='0'
              DiskId='1' SourceFile='$(var.DebugCrtMergeModulePath)' />
        <?endif?>
      <?else?>
        <?if $(var.ReleaseCrtMergeModuleIdPrefix) != "" ?>
          <Merge Id='$(var.ReleaseCrtMergeModuleIdPrefix)' Language='0'
              DiskId='1' SourceFile='$(var.ReleaseCrtMergeModulePath)' />
        <?endif?>
      <?endif?>
      <Directory Id='SystemFolder'>
        <Component Id='GIMEJaIME32' Guid='*' Permanent='no'>
          <File Id='GIMEJa32.ime' Name='GIMEJa.ime'
              DiskId='1' Checksum='yes'
              Source='$(var.MozcIME32Path)' Vital='yes' />
        </Component>
      </Directory>
      <Directory Id='System64Folder'>
        <Component Id='GIMEJaIME64' Guid='*' Permanent='no' Win64='yes'>
          <Condition>VersionNT64</Condition>
          <File Id='GIMEJa64.ime' Name='GIMEJa.ime'
              DiskId='1' Checksum='yes'
              Source='$(var.MozcIME64Path)' Vital='yes' />
        </Component>
      </Directory>
      <Directory Id='ProgramFilesFolder' Name='PFiles'>
        <Directory Id='GoogleDir' Name='Google'>
          <Directory Id='GIMEJaDir' Name='Google Japanese Input'>
            <Component Id='GIMEJaConverter' Guid='*'>
              <File Id='GoogleIMEJaConverter.exe'
                  Name='GoogleIMEJaConverter.exe' DiskId='1'
                  Checksum='yes' Source='$(var.MozcServer32Path)' Vital='yes' />
            </Component>
            <Component Id='GIMEJaCacheService' Guid='*'>
              <File Id='GoogleIMEJaCacheService.exe'
                  Name='GoogleIMEJaCacheService.exe' DiskId='1'
                  Checksum='yes' Source='$(var.MozcCacheService32Path)'
                  Vital='yes' KeyPath='yes' />
              <!--
                Localized description of a Win32 service is not supported until
                Windows Vista.
                http://msdn.microsoft.com/en-us/library/ms685156.aspx
                To use localized description in Vista or later,
                set Description like this:
                  Description='@[#GoogleIMEJaCacheService.exe],-100'
                where 100 is the resource ID for the description.

                Parameters 'Name', 'DisplayName', 'Description' have to be
                synced manually to the ones defined in cache_manager.
                TODO(yukawa): Share these parameters. http://b/2357270
              -->
              <ServiceInstall Id='GoogleIMEJaCacheService'
                  Name='GoogleIMEJaCacheService'
                  DisplayName='Google Japanese Input Cache Service'
                  Description='Google 日本語入力 の辞書を常に物理メモリに配置し、変換を高速化します。停止しても日本語入力はできますが、パフォーマンスが低下する場合があります。'
                  Type='ownProcess' Start='auto' ErrorControl='normal' />
              <!--
                The following entry which stops our cache service both on
                installation and uninstallation should be the first entry in
                the ServiceControl table.  Otherwise, restart manager does not
                recognise that the specified service will be stopped during the
                instalaltion.  See http://b/2440272 for details.
              -->
              <ServiceControl Id='StopGoogleIMEJaCacheService'
                  Name='GoogleIMEJaCacheService' Stop='both' Remove='uninstall'
                  Wait='yes' />
            </Component>
            <Component Id='GIMEJaTIP32' Guid='*' Permanent='no'>
              <File Id='GoogleIMEJaTIP32.dll'
                  Name='GoogleIMEJaTIP32.dll'
                  DiskId='1' Checksum='yes'
                  Source='$(var.MozcTIP32Path)' Vital='yes' />
            </Component>
            <Component Id='GIMEJaTIP64' Guid='*' Permanent='no'>
              <File Id='GoogleIMEJaTIP64.dll'
                  Name='GoogleIMEJaTIP64.dll'
                  DiskId='1' Checksum='yes'
                  Source='$(var.MozcTIP64Path)' Vital='yes' />
            </Component>
            <Component Id='GIMEJaBroker32' Guid='*' Permanent='no'>
              <File Id='GoogleIMEJaBroker32.exe'
                  Name='GoogleIMEJaBroker32.exe'
                  DiskId='1' Checksum='yes'
                  Source='$(var.MozcBroker32Path)' Vital='yes' />
            </Component>
            <Component Id='GIMEJaBroker64' Guid='*' Permanent='no'>
              <Condition>(VersionNT &gt;= 600) and (VersionNT64)</Condition>
              <File Id='GoogleIMEJaBroker64.exe'
                  Name='GoogleIMEJaBroker64.exe'
                  DiskId='1' Checksum='yes'
                  Source='$(var.MozcBroker64Path)' Vital='yes' />
            </Component>
            <Component Id='GIMEJaRenderer' Guid='*'>
              <File Id='GoogleIMEJaRenderer.exe'
                  Name='GoogleIMEJaRenderer.exe' DiskId='1' Vital='yes'
                  Checksum='yes' Source='$(var.MozcRenderer32Path)' />
            </Component>
            <Component Id='GIMEJaTool' Guid='*'>
              <File Id='GoogleIMEJaTool.exe'
                  Name='GoogleIMEJaTool.exe' DiskId='1'
                  Checksum='yes' Source='$(var.MozcToolPath)' Vital='yes' />
            </Component>
            <?if $(var.MozcZinniaModelDataPath) != "" ?>
              <Component Id='ZinniaModelData' Guid='*'>
                <File Id='handwriting_ja.model'
                    Name='handwriting-ja.model' DiskId='1' Vital='yes'
                    Checksum='yes' Source='$(var.MozcZinniaModelDataPath)' />
              </Component>
            <?endif?>
            <?if $(var.VSConfigurationName) = "Debug" ?>
              <?if $(var.QtCored4DllPath) != "" ?>
                <Component Id='QtCored4Dll' Guid='*'>
                  <File Id='QtCored4.dll'
                      Name='QtCored4.dll' DiskId='1' Vital='yes'
                      Checksum='yes' Source='$(var.QtCored4DllPath)' />
                </Component>
              <?endif?>
              <?if $(var.QtGuid4DllPath) != "" ?>
                <Component Id='QtGuid4Dll' Guid='*'>
                  <File Id='QtGuid4.dll'
                      Name='QtGuid4.dll' DiskId='1' Vital='yes'
                      Checksum='yes' Source='$(var.QtGuid4DllPath)' />
                </Component>
              <?endif?>
            <?else?>
              <?if $(var.QtCore4DllPath) != "" ?>
                <Component Id='QtCore4Dll' Guid='*'>
                  <File Id='QtCore4.dll'
                      Name='QtCore4.dll' DiskId='1' Vital='yes'
                      Checksum='yes' Source='$(var.QtCore4DllPath)' />
                </Component>
              <?endif?>
              <?if $(var.QtGui4DllPath) != "" ?>
                <Component Id='QtGui4Dll' Guid='*'>
                  <File Id='QtGui4.dll'
                      Name='QtGui4.dll' DiskId='1' Vital='yes'
                      Checksum='yes' Source='$(var.QtGui4DllPath)' />
                </Component>
              <?endif?>
            <?endif?>
            <Directory Id='DocumentsDir' Name='documents'>
              <Component Id='CreditsJa' Guid='*'>
                <File Id='credits_ja.html' Name='credits_ja.html' DiskId='1'
                      Checksum='yes' Vital='yes'
                      Source='$(var.DocumentsDir)/credits_ja.html' />
              </Component>
              <Component Id='CreditsEn' Guid='*'>
                <File Id='credits_en.html' Name='credits_en.html' DiskId='1'
                      Checksum='yes' Vital='yes'
                      Source='$(var.DocumentsDir)/credits_en.html' />
              </Component>
            </Directory>
          </Directory>
        </Directory>
      </Directory>

      <!-- Write registry keys to make the installer compatible with Omaha. -->
      <Component Id='OmahaRegister' Guid='*'>
        <RegistryValue Id='OmahaClientRegPv' Root='HKLM'
            Key='$(var.OmahaClientKey)'
            Name='pv' Value='$(var.MozcVersion)' Action='write'
            Type='string' />
        <RegistryValue Id='OmahaClientRegName' Root='HKLM'
            Key='$(var.OmahaClientKey)'
            Name='name' Value='Google 日本語入力' Action='write'
            Type='string' />
        <RegistryValue Id='OmahaClientRegLang' Root='HKLM'
            Key='$(var.OmahaClientKey)'
            Name='lang' Value='ja' Action='write'
            Type='string' />
        <RegistryValue Id='OmahaClientRegOOPCrashes' Root='HKLM'
            Key='$(var.OmahaClientKey)'
            Name='oopcrashes' Value='1' Action='write'
            Type='integer' />
        <!-- enable usagestats for dev channel users -->
        <?if ($(var.OmahaChannelType) = "dev") ?>
          <RegistryValue Id='OmahaUsageStats' Root='HKLM'
              Key='$(var.OmahaClientStateKey)'
              Name='usagestats' Value='1' Action='write'
              Type='integer' />
        <?endif?>
      </Component>

      <!--
        Write registry keys to make sure GoogleIMEJaConverter.exe and
        GoogleIMEJaRenderer.exe exit when a user logoff via remote desctop
        connection.
      -->
      <Component Id='SysProcs' Guid='*'>
        <RegistryValue Id='SysProcsGIMEJaConverter' Root='HKLM'
            Key='SYSTEM\CurrentControlSet\Control\Terminal Server\SysProcs'
            Name='GoogleIMEJaConverter.exe' Value='0' Action='write'
            Type='integer' />
        <RegistryValue Id='SysProcsGIMEJaRenderer' Root='HKLM'
            Key='SYSTEM\CurrentControlSet\Control\Terminal Server\SysProcs'
            Name='GoogleIMEJaRenderer.exe' Value='0' Action='write'
            Type='integer' />
      </Component>

      <!--
        Write registry keys to set an elevation policy of Internet Explorer 7
        so that IE does not prompt the user when GoogleIMEJaTool.exe are
        launched. See the following link for more information.
        http://msdn.microsoft.com/en-us/library/bb250462.aspx
      -->
      <Component Id='GIMEJaElevationPolicy32' Guid='*'>
        <RegistryValue Id='GIMEJaToolElevationPolicyAppPath32' Root='HKLM'
            Key='$(var.MozcToolElevationPolicyRegKey)'
            Name='AppPath' Action='write' Type='string'
            Value='[GIMEJaDir]' />
        <RegistryValue Id='GIMEJaToolElevationPolicyAppName32' Root='HKLM'
            Key='$(var.MozcToolElevationPolicyRegKey)'
            Name='AppName' Action='write' Type='string'
            Value='GoogleIMEJaTool.exe' />
        <RegistryValue Id='GIMEJaToolElevationPolicyPolicy32' Root='HKLM'
            Key='$(var.MozcToolElevationPolicyRegKey)'
            Name='Policy' Action='write' Type='integer'
            Value='3' />
        <RegistryValue Id='GIMEJaBroker32ElevationPolicyAppPath32' Root='HKLM'
            Key='$(var.MozcBroker32ElevationPolicyRegKey)'
            Name='AppPath' Action='write' Type='string'
            Value='[GIMEJaDir]' />
        <RegistryValue Id='GIMEJaBroker32ElevationPolicyAppName32' Root='HKLM'
            Key='$(var.MozcBroker32ElevationPolicyRegKey)'
            Name='AppName' Action='write' Type='string'
            Value='GoogleIMEJaBroker32.exe' />
        <RegistryValue Id='GIMEJaBroker32ElevationPolicyPolicy32' Root='HKLM'
            Key='$(var.MozcBroker32ElevationPolicyRegKey)'
            Name='Policy' Action='write' Type='integer'
            Value='3' />
        <RegistryValue Id='GIMEJaBroker64ElevationPolicyAppPath32' Root='HKLM'
            Key='$(var.MozcBroker64ElevationPolicyRegKey)'
            Name='AppPath' Action='write' Type='string'
            Value='[GIMEJaDir]' />
        <RegistryValue Id='GIMEJaBroker64ElevationPolicyAppName32' Root='HKLM'
            Key='$(var.MozcBroker64ElevationPolicyRegKey)'
            Name='AppName' Action='write' Type='string'
            Value='GoogleIMEJaBroker64.exe' />
        <RegistryValue Id='GIMEJaBroker64ElevationPolicyPolicy32' Root='HKLM'
            Key='$(var.MozcBroker64ElevationPolicyRegKey)'
            Name='Policy' Action='write' Type='integer'
            Value='3' />
      </Component>

      <Component Id='GIMEJaElevationPolicy64' Guid='*' Win64='yes'>
        <RegistryValue Id='GIMEJaToolElevationPolicyAppPath64' Root='HKLM'
            Key='$(var.MozcToolElevationPolicyRegKey)'
            Name='AppPath' Action='write' Type='string'
            Value='[GIMEJaDir]' />
        <RegistryValue Id='GIMEJaToolElevationPolicyAppName64' Root='HKLM'
            Key='$(var.MozcToolElevationPolicyRegKey)'
            Name='AppName' Action='write' Type='string'
            Value='GoogleIMEJaTool.exe' />
        <RegistryValue Id='GIMEJaToolElevationPolicyPolicy64' Root='HKLM'
            Key='$(var.MozcToolElevationPolicyRegKey)'
            Name='Policy' Action='write' Type='integer'
            Value='3' />
        <RegistryValue Id='GIMEJaBroker32ElevationPolicyAppPat64' Root='HKLM'
            Key='$(var.MozcBroker32ElevationPolicyRegKey)'
            Name='AppPath' Action='write' Type='string'
            Value='[GIMEJaDir]' />
        <RegistryValue Id='GIMEJaBroker32ElevationPolicyAppName64' Root='HKLM'
            Key='$(var.MozcBroker32ElevationPolicyRegKey)'
            Name='AppName' Action='write' Type='string'
            Value='GoogleIMEJaBroker32.exe' />
        <RegistryValue Id='GIMEJaBroker32ElevationPolicyPolicy64' Root='HKLM'
            Key='$(var.MozcBroker32ElevationPolicyRegKey)'
            Name='Policy' Action='write' Type='integer'
            Value='3' />
        <RegistryValue Id='GIMEJaBroker64ElevationPolicyAppPath64' Root='HKLM'
            Key='$(var.MozcBroker64ElevationPolicyRegKey)'
            Name='AppPath' Action='write' Type='string'
            Value='[GIMEJaDir]' />
        <RegistryValue Id='GIMEJaBroker64ElevationPolicyAppName64' Root='HKLM'
            Key='$(var.MozcBroker64ElevationPolicyRegKey)'
            Name='AppName' Action='write' Type='string'
            Value='GoogleIMEJaBroker64.exe' />
        <RegistryValue Id='GIMEJaBroker64ElevationPolicyPolicy64' Root='HKLM'
            Key='$(var.MozcBroker64ElevationPolicyRegKey)'
            Name='Policy' Action='write' Type='integer'
            Value='3' />
      </Component>

      <Component Id='OmahaRegLaunchCmdLine' Guid='*' Permanent='no'>
        <Condition>(NOT UPGRADING)</Condition>
        <RegistryValue Id='OmahaLaunchCmdLineValue' Root='HKLM'
            Key='$(var.OmahaClientStateKey)'
            Name='InstallerSuccessLaunchCmdLine' Action='write' Type='string'
            Value='&quot;[GIMEJaDir]GoogleIMEJaTool.exe&quot; --mode=post_install_dialog' />
      </Component>

      <!--
        Write a registry key to launch GoogleIMEJaConverter.exe and
        GoogleIMEJaRenderer.exe automatically after user logon.
      -->
      <Component Id='PrelaunchProcesses' Guid='*'>
        <RegistryValue Id='RunBroker' Root='HKLM'
            Key='Software\Microsoft\Windows\CurrentVersion\Run'
            Name='Google Japanese Input Prelauncher' Action='write' Type='string'
            Value='&quot;[GIMEJaDir]GoogleIMEJaBroker32.exe&quot; --mode=prelaunch_processes' />
      </Component>
    </Directory>

    <Upgrade Id='$(var.UpgradeCode)'>
      <UpgradeVersion
          Minimum='0.0.0.0' IncludeMinimum='yes'
          Maximum='$(var.MozcVersion)' IncludeMaximum='no'
          OnlyDetect='no' Property='UPGRADING'/>
      <UpgradeVersion
          Minimum='$(var.MozcVersion)' IncludeMinimum='yes'
          OnlyDetect='yes' Property='NEWERVERSIONDETECTED' />
    </Upgrade>

    <UI>
      <Error Id="4000">新しいバージョンの Google 日本語入力が既にインストールされています。</Error>
    </UI>

    <!-- List of actions to be performed. -->
    <?if $(var.VSConfigurationName) = "Debug" ?>
      <?if $(var.DebugCrtMergeModuleIdPrefix) != "" ?>
        <Feature Id='$(var.DebugCrtMergeModuleIdPrefix)'
            Title='Visual C++ Runtime Library' AllowAdvertise='no'
            Display='hidden' Level='1'>
          <MergeRef Id='$(var.DebugCrtMergeModuleIdPrefix)' />
        </Feature>
      <?endif?>
    <?else?>
      <?if $(var.ReleaseCrtMergeModuleIdPrefix) != "" ?>
        <Feature Id='$(var.ReleaseCrtMergeModuleIdPrefix)'
            Title='Visual C++ Runtime Library' AllowAdvertise='no'
            Display='hidden' Level='1'>
          <MergeRef Id='$(var.ReleaseCrtMergeModuleIdPrefix)' />
        </Feature>
      <?endif?>
    <?endif?>

    <Feature Id='GIMEJaInstall' Title='Google 日本語入力' Level='1'>
      <ComponentRef Id='GIMEJaIME32' />
      <ComponentRef Id='GIMEJaIME64' />
      <ComponentRef Id='GIMEJaTIP32' />
      <ComponentRef Id='GIMEJaTIP64' />
      <ComponentRef Id='GIMEJaBroker32' />
      <ComponentRef Id='GIMEJaBroker64' />
      <ComponentRef Id='GIMEJaConverter' />
      <ComponentRef Id='GIMEJaCacheService' />
      <ComponentRef Id='GIMEJaRenderer' />
      <ComponentRef Id='GIMEJaTool' />
      <?if $(var.MozcZinniaModelDataPath) != "" ?>
        <ComponentRef Id='ZinniaModelData' />
      <?endif?>
      <?if $(var.VSConfigurationName) = "Debug" ?>
        <?if $(var.QtCored4DllPath) != "" ?>
          <ComponentRef Id='QtCored4Dll' />
        <?endif?>
        <?if $(var.QtGuid4DllPath) != "" ?>
          <ComponentRef Id='QtGuid4Dll' />
        <?endif?>
      <?else?>
        <?if $(var.QtCore4DllPath) != "" ?>
          <ComponentRef Id='QtCore4Dll' />
        <?endif?>
        <?if $(var.QtGui4DllPath) != "" ?>
          <ComponentRef Id='QtGui4Dll' />
        <?endif?>
      <?endif?>
      <ComponentRef Id='OmahaRegister' />
      <ComponentRef Id='OmahaRegLaunchCmdLine' />
      <ComponentRef Id='SysProcs' />
      <ComponentRef Id='PrelaunchProcesses' />
      <ComponentRef Id='GIMEJaElevationPolicy32' />
      <ComponentRef Id='GIMEJaElevationPolicy64' />
      <ComponentRef Id='CreditsJa' />
      <ComponentRef Id='CreditsEn' />
    </Feature>

    <Binary Id='CustomActions32' SourceFile='$(var.CustomActions32Path)' />
    <Binary Id='CustomActions64' SourceFile='$(var.CustomActions64Path)' />

    <!--
      InstallIME need to be called by an impersonated thread since it
      registers per-user settings.
    -->
    <!--
      On 64-bit Windows, it would better to use native (64-bit) version of
      ImmInstallIME instead of WOW (32-bit) version.  See b/2931871 for
      details.
    -->
    <CustomAction Id='InstallIME' BinaryKey='CustomActions64'
        DllEntry='InstallIME' Execute='deferred' Impersonate='yes' />
    <CustomAction Id='InstallIMERollback'
        BinaryKey='CustomActions64' DllEntry='InstallIMERollback'
        Execute='rollback' Impersonate='yes' />
    <CustomAction Id='UninstallIME' BinaryKey='CustomActions64'
        DllEntry='UninstallIME' Execute='deferred' Impersonate='no' />
    <CustomAction Id='UninstallIMERollback'
        BinaryKey='CustomActions64' DllEntry='UninstallIMERollback'
        Execute='rollback' Impersonate='no' />
    <CustomAction Id='RegisterTIP32' BinaryKey='CustomActions32'
        DllEntry='RegisterTIP' Execute='deferred' Impersonate='no' />
    <CustomAction Id='RegisterTIPRollback32' BinaryKey='CustomActions32'
        DllEntry='RegisterTIPRollback' Execute='rollback' Impersonate='no' />
    <CustomAction Id='UnregisterTIP32' BinaryKey='CustomActions32'
        DllEntry='UnregisterTIP' Execute='deferred' Impersonate='no'
        Return='ignore' />
    <CustomAction Id='UnregisterTIPRollback32' BinaryKey='CustomActions32'
        DllEntry='UnregisterTIPRollback' Execute='rollback' Impersonate='no'
        Return='ignore' />
    <CustomAction Id='RegisterTIP64' BinaryKey='CustomActions64'
        DllEntry='RegisterTIP' Execute='deferred' Impersonate='no' />
    <CustomAction Id='RegisterTIPRollback64' BinaryKey='CustomActions64'
        DllEntry='RegisterTIPRollback' Execute='rollback' Impersonate='no' />
    <CustomAction Id='UnregisterTIP64' BinaryKey='CustomActions64'
        DllEntry='UnregisterTIP' Execute='deferred' Impersonate='no'
        Return='ignore' />
    <CustomAction Id='UnregisterTIPRollback64' BinaryKey='CustomActions64'
        DllEntry='UnregisterTIPRollback' Execute='rollback' Impersonate='no'
        Return='ignore' />
    <CustomAction Id='RefreshPolicy' BinaryKey='CustomActions32'
        DllEntry='RefreshPolicy' Execute='commit' Impersonate='no' />
    <CustomAction Id='OpenUninstallSurveyPage' BinaryKey='CustomActions32'
        DllEntry='OpenUninstallSurveyPage' Impersonate='yes' Return='ignore' />
    <CustomAction Id='ShutdownServer' BinaryKey='CustomActions32'
        DllEntry='ShutdownServer' Impersonate='yes' Return='ignore' />
    <CustomAction Id='RestoreUserIMEEnvironment' BinaryKey='CustomActions64'
        DllEntry='RestoreUserIMEEnvironment' Impersonate='yes' Return='ignore'/>
    <CustomAction Id='EnsureIMEIsDisabledForServiceAccountBeforeUninstall'
        BinaryKey='CustomActions64' Execute='deferred'
        DllEntry='EnsureIMEIsDisabledForServiceAccount' Impersonate='no'
        Return='ignore'/>
    <CustomAction Id='EnsureIMEIsDisabledForServiceAccountAfterInstall'
        BinaryKey='CustomActions64' Execute='deferred'
        DllEntry='EnsureIMEIsDisabledForServiceAccount' Impersonate='no'
        Return='ignore'/>
    <CustomAction Id='InitialInstallation' BinaryKey='CustomActions32'
        DllEntry='InitialInstallation' Execute='deferred'
        Impersonate='no' />
    <CustomAction Id='InitialInstallationCommit' BinaryKey='CustomActions32'
        DllEntry='InitialInstallationCommit' Execute='commit'
        Impersonate='no' />
    <CustomAction Id='HideCancelButton' BinaryKey='CustomActions32'
        DllEntry='HideCancelButton' Return='ignore' />
    <CustomAction Id='SaveCustomActionData' BinaryKey='CustomActions32'
        DllEntry='SaveCustomActionData' />
    <CustomAction Id='RestoreServiceState' BinaryKey='CustomActions32'
        DllEntry='RestoreServiceState' Impersonate='no' Execute='deferred'
        Return='ignore' />
    <CustomAction Id='StopCacheServiceForRollback' BinaryKey='CustomActions32'
        DllEntry='StopCacheService' Impersonate='no'
        Execute='rollback' Return='ignore' />
    <CustomAction Id='WriteApValue' BinaryKey='CustomActions32'
        DllEntry='WriteApValue' Execute='deferred' Impersonate='no' />
    <CustomAction Id='WriteApValueRollback' BinaryKey='CustomActions32'
        DllEntry='WriteApValueRollback' Execute='rollback' Impersonate='no' />
    <CustomAction Id="NewerVersionError" Error="4000"/>

    <InstallExecuteSequence>
      <Custom Action='HideCancelButton' After='InitialInstallation' />
      <Custom Action='InitialInstallation' After='InstallInitialize'>
        (NOT (REMOVE="ALL")) AND (NOT UPGRADING)
      </Custom>
      <Custom Action='SaveCustomActionData' Before='StopServices' >
        (NOT (REMOVE="ALL"))
      </Custom>
      <Custom Action='WriteApValueRollback' Before='WriteApValue' >
        (NOT (REMOVE="ALL"))
      </Custom>
      <Custom Action='WriteApValue' Before='SelfUnregModules' >
        (NOT (REMOVE="ALL"))
      </Custom>
      <SelfUnregModules />
      <Custom Action='RestoreUserIMEEnvironment' After='SelfUnregModules'>
        (REMOVE="ALL") AND (NOT UPGRADINGPRODUCTCODE)
      </Custom>
      <!--
        EnsureIMEIsDisabledForServiceAccountBeforeUninstall should be invoked
        before Mozc's KLID is removed, which means you should call this action
        before UninstallIME.
      -->
      <Custom Action='EnsureIMEIsDisabledForServiceAccountBeforeUninstall'
          After='RestoreUserIMEEnvironment' >
        (REMOVE="ALL") AND (NOT UPGRADINGPRODUCTCODE)
      </Custom>
      <!-- This action invoked only when removal of the old product failed. -->
      <Custom Action='UninstallIMERollback'
          After='EnsureIMEIsDisabledForServiceAccountBeforeUninstall' >
        (REMOVE="ALL") AND UPGRADINGPRODUCTCODE
      </Custom>
      <Custom Action='UninstallIME' After='UninstallIMERollback' >
        (REMOVE="ALL") AND (NOT UPGRADINGPRODUCTCODE)
      </Custom>
      <!-- This action invoked only when removal of the old product failed. -->
      <Custom Action='UnregisterTIPRollback64' After='UninstallIME' >
        (REMOVE="ALL") AND UPGRADINGPRODUCTCODE AND (VersionNT64) AND (VersionNT &gt;= 602)
      </Custom>
      <Custom Action='UnregisterTIP64' After='UnregisterTIPRollback64' >
        (REMOVE="ALL") AND (NOT UPGRADINGPRODUCTCODE) AND (VersionNT64) AND (VersionNT &gt;= 602)
      </Custom>
      <!-- This action invoked only when removal of the old product failed. -->
      <Custom Action='UnregisterTIPRollback32' After='UnregisterTIP64' >
        (REMOVE="ALL") AND UPGRADINGPRODUCTCODE AND (VersionNT &gt;= 602)
      </Custom>
      <Custom Action='UnregisterTIP32' After='UnregisterTIPRollback32' >
        (REMOVE="ALL") AND (NOT UPGRADINGPRODUCTCODE) AND (VersionNT &gt;= 602)
      </Custom>
      <Custom Action='OpenUninstallSurveyPage' After='UnregisterTIP32' >
        (REMOVE="ALL") AND (NOT UPGRADINGPRODUCTCODE) AND (UILevel &gt;= 3)
      </Custom>
      <SelfRegModules />
      <Custom Action='RefreshPolicy' After='SelfRegModules'>
        (NOT (REMOVE="ALL")) AND (VersionNT &gt;= 600)
      </Custom>
      <!--
        The InstallValidate action notifies the user
        if GoogleIMEJaConverter.exe and GoogleIMEJaRenderer.exe
        are currenly running. So the ShutdownServer action
        needs to be callled before the InstallValidate action.
      -->
      <Custom Action='ShutdownServer' Before='InstallValidate' >
        (REMOVE="ALL") AND (NOT UPGRADINGPRODUCTCODE)
      </Custom>
      <Custom Action='NewerVersionError' After='FindRelatedProducts'>
        NEWERVERSIONDETECTED
      </Custom>
      <!--
        RemoveExistingProducts needs to be scheduled between InstallExecute and
        InstallFinalize to correctly deal with errors which occur when the old
        product is removed on upgrade.
        http://msdn.microsoft.com/en-us/library/aa371197(VS.85).aspx
      -->
      <InstallExecute Before='RemoveExistingProducts' />
      <RemoveExistingProducts Before='StopCacheServiceForRollback' />
      <!--
        When the installer enters rollback mode, the cache service should be
        stopped before RemoveExistingProducts is invoked.
      -->
      <Custom Action='StopCacheServiceForRollback' Before='RestoreServiceState'>
        (NOT (REMOVE="ALL"))
      </Custom>
      <Custom Action='RestoreServiceState' Before='InstallIMERollback'>
        (NOT (REMOVE="ALL"))
      </Custom>
      <!--
        If error occurs after InstallIME,
        the registration needs to be canceled by registering the old product.
        So InstallIME needs to be scheduled after RemoveExistingProduct.
      -->
      <Custom Action='InstallIMERollback' Before='InstallIME' >
        (NOT (REMOVE="ALL")) AND (VersionNT &lt; 602) AND (NOT UPGRADING)
      </Custom>
      <Custom Action='InstallIME' Before='RegisterTIPRollback32' >
        (NOT (REMOVE="ALL")) AND (VersionNT &lt; 602)
      </Custom>
      <Custom Action='RegisterTIPRollback32' Before='RegisterTIP32' >
        (NOT (REMOVE="ALL")) AND (VersionNT &gt;= 602) AND (NOT UPGRADING)
      </Custom>
      <Custom Action='RegisterTIP32' Before='RegisterTIPRollback64' >
        (NOT (REMOVE="ALL")) AND (VersionNT &gt;= 602)
      </Custom>
      <Custom Action='RegisterTIPRollback64' Before='RegisterTIP64' >
        (NOT (REMOVE="ALL")) AND (VersionNT &gt;= 602) AND (VersionNT64) AND (NOT UPGRADING)
      </Custom>
      <Custom Action='RegisterTIP64'
          Before='EnsureIMEIsDisabledForServiceAccountAfterInstall' >
        (NOT (REMOVE="ALL")) AND (VersionNT &gt;= 602) AND (VersionNT64)
      </Custom>
      <Custom Action='EnsureIMEIsDisabledForServiceAccountAfterInstall'
          Before='InstallFinalize' >
        (NOT (REMOVE="ALL"))
      </Custom>
      <Custom Action='InitialInstallationCommit'
          After='EnsureIMEIsDisabledForServiceAccountAfterInstall'>
        (NOT (REMOVE="ALL")) AND (NOT UPGRADING)
      </Custom>
      <!-- show reboot dialog to execute pending file opartions -->
      <?if ($(var.VSConfigurationName) = "Release") ?>
        <ScheduleReboot After='InstallFinalize'>
          (REMOVE="ALL")
        </ScheduleReboot>
      <?endif?>
    </InstallExecuteSequence>
  </Product>
</Wix>
