You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: ms15_051_client_copy_image.rb
    path of file: ./repos/metasploit-framework/modules/exploits/windows/local
    
    the code of the file until where you have to start completion: ##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

class MetasploitModule < Msf::Exploit::Local
  Rank = NormalRanking

  include Msf::Post::File
  include Msf::Post::Windows::Priv
  include Msf::Post::Windows::Process
  include Msf::Post::Windows::FileInfo
  include Msf::Post::Windows::ReflectiveDLLInjection

  def initialize(info = {})
    super(
      update_info(
        info,
        {
          'Name' => 'Windows ClientCopyImage Win32k Exploit',
          'Description' => %q{
            This module exploits improper object handling in the win32k.sys kernel mode driver.
            This module has been tested on vulnerable builds of Windows 7 x64 and x86, and
            Windows 2008 R2 SP1 x64.
          },
          'License' => MSF_LICENSE,
          'Author' => [
            'Unknown', # vulnerability discovery and exploit in the wild
            'hfirefox',        # Code released on github
            'OJ Reeves',       # msf module
            'Spencer McIntyre' # msf module
          ],
          'Arch' => [ ARCH_X86, ARCH_X64 ],
          'Platform' => 'win',
          'SessionTypes' => [ 'meterpreter' ],
          'DefaultOptions' => {
            'EXITFUNC' => 'thread'
          },
          'Targets' => [
            [ 'Windows x86', { 'Arch' => ARCH_X86 } ],
            [ 'Windows x64', { 
    
  def initialize(info = {})
    super(
      update_info(
        info,
        {
          'Name' => 'Windows ClientCopyImage Win32k Exploit',
          'Description' => %q{
            This module exploits improper object handling in the win32k.sys kernel mode driver.
            This module has been tested on vulnerable builds of Windows 7 x64 and x86, and
            Windows 2008 R2 SP1 x64.
          },
          'License' => MSF_LICENSE,
          'Author' => [
            'Unknown', # vulnerability discovery and exploit in the wild
            'hfirefox',        # Code released on github
            'OJ Reeves',       # msf module
            'Spencer McIntyre' # msf module
          ],
          'Arch' => [ ARCH_X86, ARCH_X64 ],
          'Platform' => 'win',
          'SessionTypes' => [ 'meterpreter' ],
          'DefaultOptions' => {
            'EXITFUNC' => 'thread'
          },
          'Targets' => [
            [ 'Windows x86', { 'Arch' => ARCH_X86 } ],
            [ 'Windows x64', { 'Arch' => ARCH_X64 } ]
          ],
          'Payload' => {
            'Space' => 4096,
            'DisableNops' => true
          },
          'References' => [
            ['CVE', '2015-1701'],
            ['MSB', 'MS15-051'],
            ['URL', 'https://www.fireeye.com/blog/threat-research/2015/04/probable_apt28_useo.html'],
            ['URL', 'https://github.com/hfiref0x/CVE-2015-1701'],
            ['URL', 'https://technet.microsoft.com/library/security/MS15-051']
          ],
          'DisclosureDate' => '2015-05-12',
          'DefaultTarget' => 0,
          'Notes' => {
            'Stability' => [ CRASH_OS_RESTARTS, ]
          }
        }
      )
    )
  end