code: 
  from manim import *
  
  
  
  class  lowerCAmelCase__   (       snake_case__       ):
  
  
  
    '''simple docstring'''
  
  
  
  
  
  
    def 		_lowerCamelCase	(self  : Union[str, Any]    )   ->       Optional[Any]:
          snake_case_						       =							Rectangle(height=0.5	, width=0.5    )
          snake_case_						       =							Rectangle(height=0.46	, width=0.46    ).set_stroke(width=0    )
          snake_case_						       =							Rectangle(height=0.25	, width=0.25    )
  
          snake_case_						       =							[mem.copy() for i in range(6    )]
          snake_case_						       =							[mem.copy() for i in range(6    )]
          snake_case_						       =							VGroup(*__snake_case    ).arrange(__snake_case	, buff=0    )
          snake_case_						       =							VGroup(*__snake_case    ).arrange(__snake_case	, buff=0    )
          snake_case_						       =							VGroup(__snake_case	, __snake_case    ).arrange(__snake_case	, buff=0    )
          snake_case_						       =							Text("CPU"	, font_size=24    )
          snake_case_						       =							Group(__snake_case	, __snake_case    ).arrange(__snake_case	, buff=0.5	, aligned_edge=__snake_case    )
          cpu.move_to([-2.5, -0.5, 0]    )
          self.add(__snake_case    )
  
          snake_case_						       =							[mem.copy() for i in range(4    )]
          snake_case_						       =							VGroup(*__snake_case    ).arrange(__snake_case	, buff=0    )
          snake_case_						       =							Text("GPU"	, font_size=24    )
          snake_case_						       =							Group(__snake_case	, __snake_case    ).arrange(__snake_case	, buff=0.5	, aligned_edge=__snake_case    )
          gpu.move_to([-1, -1, 0]    )
          self.add(__snake_case    )
  
          snake_case_						       =							[mem.copy() for i in range(6    )]
          snake_case_						       =							VGroup(*__snake_case    ).arrange(__snake_case	, buff=0    )
  
          snake_case_						       =							Text("Model"	, font_size=24    )
          snake_case_						       =							Group(__snake_case	, __snake_case    ).arrange(__snake_case	, buff=0.5	, aligned_edge=__snake_case    )
          model.move_to([3, -1.0, 0]    )
          self.add(__snake_case    )
  
          snake_case_						       =							[]
          snake_case_						       =							[]
  
          for i, rect in enumerate(__snake_case    ):
                rect.set_stroke(__snake_case    )
  
                snake_case_						       =							Rectangle(height=0.46 / 4	, width=0.46 / 3    ).set_stroke(width=0.0    ).set_fill(__snake_case	, opacity=0.7    )
  
                if i == 0:
                      cpu_target.next_to(cpu_left_col_base[0].get_corner(DOWN + LEFT    )	, buff=0.02	, direction=__snake_case    )
                      cpu_target.set_x(cpu_target.get_x() + 0.1    )
                elif i == 3:
                      cpu_target.next_to(model_cpu_arr[0]	, direction=__snake_case	, buff=0.0    )
                else:
                      cpu_target.next_to(model_cpu_arr[i - 1]	, direction=__snake_case	, buff=0.0    )
                self.add(__snake_case    )
                model_cpu_arr.append(__snake_case    )
  
          self.add(*__snake_case	, *__snake_case    )
  
          snake_case_						       =							[meta_mem.copy() for i in range(6    )]
          snake_case_						       =							[meta_mem.copy() for i in range(6    )]
          snake_case_						       =							VGroup(*__snake_case    ).arrange(__snake_case	, buff=0    )
          snake_case_						       =							VGroup(*__snake_case    ).arrange(__snake_case	, buff=0    )
          snake_case_						       =							VGroup(__snake_case	, __snake_case    ).arrange(__snake_case	, buff=0    )
          snake_case_						       =							Text("Disk"	, font_size=24    )
          snake_case_						       =							Group(__snake_case	, __snake_case    ).arrange(__snake_case	, buff=0.5	, aligned_edge=__snake_case    )
          disk.move_to([-4.0, -1.25, 0]    )
          self.add(__snake_case	, __snake_case    )
  
          snake_case_						       =							[]
  
          for i in range(6    ):
                snake_case_						       =							fill.copy().set_fill(__snake_case	, opacity=0.8    )
                target.move_to(disk_left_col_base[i]    ).scale(0.5    )
                cpu_disk_arr.append(__snake_case    )
  
          self.add(*__snake_case    )
  
          snake_case_						       =							Square(side_length=2.2    )
          key.move_to([-5, 2, 0]    )
  
          snake_case_						       =							MarkupText(
              f'''<b>Key:</b>\n\n<span fgcolor=\'{YELLOW}\'>●</span> Empty Model'''	, font_size=18	, )
  
          key_text.move_to([-5, 2.4, 0]    )
  
          self.add(__snake_case	, __snake_case    )
  
          snake_case_						       =							MarkupText(
              f'''<span fgcolor=\'{BLUE}\'>●</span> Checkpoint'''	, font_size=18	, )
  
          blue_text.next_to(__snake_case	, DOWN * 2.4	, aligned_edge=key_text.get_left()    )
          self.add(__snake_case    )
  
          snake_case_						       =							MarkupText(f'''The offloaded weights are all sent to the CPU.'''	, font_size=24    )
          step_a.move_to([2, 2, 0]    )
  
          self.play(Write(__snake_case	, run_time=3    )    )
  
          for i in range(6    ):
                snake_case_						       =							cpu_disk_arr[i]
                snake_case_						       =							rect.copy().set_fill(__snake_case	, opacity=0.8    ).scale(2.0    )
                cpa.generate_target()
                cpa.target.move_to(model_base[i]    )
  
                if i == 0:
                      rect.set_fill(__snake_case	, opacity=0.8    )
                      rect.generate_target()
                      rect.target.move_to(cpu_left_col_base[0]    ).scale(2.0    )
  
                      self.remove(
                          *__snake_case	, *__snake_case	, )
  
                else:
                      rect.generate_target()
                      rect.target.move_to(cpu_left_col_base[i]    ).scale(2.0    )
                self.play(MoveToTarget(__snake_case    )	, MoveToTarget(__snake_case    )	, model_base[i].animate.set_stroke(__snake_case    )    )
          self.play(FadeOut(__snake_case    )    )
  
          snake_case_						       =							MarkupText(
              f'''Finally, hooks are added to each weight in the model\nto transfer the weights from CPU to GPU\n\t\tand back when needed.'''	, font_size=24	, )
          step_a.move_to([2, 2, 0]    )
  
          self.play(Write(__snake_case	, run_time=3    )    )
  
          snake_case_						       =							[]
          snake_case_						       =							[]
          for i in range(6    ):
                snake_case_						       =							Arrow(start=__snake_case	, end=__snake_case	, color=__snake_case	, buff=0.5    )
                a.next_to(model_base[i].get_left()	, __snake_case	, buff=0.2    )
                arrows.append(__snake_case    )
                animations.append(Write(__snake_case    )    )
          self.play(*__snake_case    )
          self.wait()
  
  
style_context: 
  '''simple docstring'''
  
  
  
  
  
  def   snake_case_       (							_a     :							int = 1_000			):
        return sum(i for i in range(_a			) if i % 3 == 0 or i % 5 == 0			)
  
  
  if __name__ == "__main__":
       print(F"""{solution() = }""")
  
  