'''simple docstring'''

from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


_A			:      Tuple					      =				{
    'configuration_deberta': ['DEBERTA_PRETRAINED_CONFIG_ARCHIVE_MAP', 'DebertaConfig', 'DebertaOnnxConfig'],
    'tokenization_deberta': ['DebertaTokenizer'],
}

try:
 if not is_tokenizers_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _A			:      Tuple					      =				['DebertaTokenizerFast']

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _A			:      Tuple					      =				[
     'DEBERTA_PRETRAINED_MODEL_ARCHIVE_LIST',
     'DebertaForMaskedLM',
     'DebertaForQuestionAnswering',
     'DebertaForSequenceClassification',
     'DebertaForTokenClassification',
     'DebertaModel',
     'DebertaPreTrainedModel',
 ]

try:
 if not is_tf_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _A			:      Union[str, Any]					      =				[
     'TF_DEBERTA_PRETRAINED_MODEL_ARCHIVE_LIST',
     'TFDebertaForMaskedLM',
     'TFDebertaForQuestionAnswering',
     'TFDebertaForSequenceClassification',
     'TFDebertaForTokenClassification',
     'TFDebertaModel',
     'TFDebertaPreTrainedModel',
 ]


if TYPE_CHECKING:
 from .configuration_deberta import DEBERTA_PRETRAINED_CONFIG_ARCHIVE_MAP, DebertaConfig, DebertaOnnxConfig
 from .tokenization_deberta import DebertaTokenizer

 try:
  if not is_tokenizers_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .tokenization_deberta_fast import DebertaTokenizerFast

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_deberta import (
      DEBERTA_PRETRAINED_MODEL_ARCHIVE_LIST,
      DebertaForMaskedLM,
      DebertaForQuestionAnswering,
      DebertaForSequenceClassification,
      DebertaForTokenClassification,
      DebertaModel,
      DebertaPreTrainedModel,
  )

 try:
  if not is_tf_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_tf_deberta import (
      TF_DEBERTA_PRETRAINED_MODEL_ARCHIVE_LIST,
      TFDebertaForMaskedLM,
      TFDebertaForQuestionAnswering,
      TFDebertaForSequenceClassification,
      TFDebertaForTokenClassification,
      TFDebertaModel,
      TFDebertaPreTrainedModel,
  )


else:
 import sys

 _A			:      Any					      =				_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)













"""simple docstring"""




import qiskit





def 						UpperCAmelCase__		(     _UpperCAmelCase ,					_UpperCAmelCase					):






  """simple docstring"""





  A_  :       Tuple										=  qiskit.Aer.get_backend('aer_simulator'					)

  A_  :       str										=  qiskit.QuantumCircuit(4 ,					2					)
  # encode inputs in qubits 0 and 1
  if bita == 1:
    qc_ha.x(0					)
  if bita == 1:
    qc_ha.x(1					)
  qc_ha.barrier()

  # use cnots to write XOR of the inputs on qubit2
  qc_ha.cx(0 ,					2					)
  qc_ha.cx(1 ,					2					)

  # use ccx / toffoli gate to write AND of the inputs on qubit3
  qc_ha.ccx(0 ,					1 ,					3					)
  qc_ha.barrier()

  # extract outputs
  qc_ha.measure(2 ,					0					)  # extract XOR value
  qc_ha.measure(3 ,					1					)  # extract AND value

  # Execute the circuit on the qasm simulator
  A_  :       Optional[Any]										=  qiskit.execute(_UpperCAmelCase ,					_UpperCAmelCase ,					shots=1000					)

  # Return the histogram data of the results of the experiment
  return job.result().get_counts(_UpperCAmelCase					)


if __name__ == "__main__":
   lowerCamelCase_     :						List[str]						=					half_adder(1, 1)
   print(F"Half Adder Output Qubit Counts: {counts}")